【问题标题】:Most efficient way to store normals in gltf files?在 gltf 文件中存储法线的最有效方法是什么?
【发布时间】:2020-09-15 07:45:34
【问题描述】:

我正在寻找在 gltf 文件中存储法线的最有效方法,我们希望将它们用于 webgl 1 平坦和平滑的着色。 是否支持不同的法线精度? 我们宁愿不复制所有顶点以获得法线,因为或网格很大。

我刚刚发现了这个 KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes

NORMAL "VEC3" 5126 (FLOAT) 归一化 XYZ 顶点法线

所以我假设只有一种方法?

感谢您的帮助

【问题讨论】:

    标签: gltf


    【解决方案1】:

    平面法线:存储平面法线的最有效方法是完全忽略它们。来自 glTF 规范,在the Meshes section

    “当未指定法线时,客户端实现应计算平面法线。”

    平滑法线:你说得对,核心 glTF 规范要求法线使用 5126 / float32 精度。如果您需要其他选项,请在您的模型上启用 KHR_mesh_quantization 扩展 (extension spec),它允许其他类型(int16 规范化或 int8 规范化)。 gltfpack 库可以自动应用这些优化,也可以直接修改模型。

    【讨论】:

    • 如果你在 cesium 中不幸的是不支持自动人脸法线...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2010-11-09
    • 2010-09-24
    • 1970-01-01
    相关资源
    最近更新 更多