【问题标题】:GLTF Exporter Lighting IssueGLTF 出口商照明问题
【发布时间】:2019-06-04 22:16:12
【问题描述】:

刚刚从旧的 GLTF Blender 导出器切换到新的导入/导出版本。这样做后,我的网格明显变暗了,我不知道为什么。

网格照明示例:

左边是旧的 Blender > GLTF 导出器,右边是较新的。 Gamma 设置为 true,并且我在 Blender 中使用了各种选项,以及 three.js 照明强度等(将强度提高以使其看起来合理会使阴影消失)。它在 Mccurdy 的 GLTF 查看器中呈现相同的效果,并且没有一个照明滑块可以接近先前 GLTF 导出器的照明。我需要将新版本用于动画和变形播放目的。一如既往地感谢您的任何建议。

【问题讨论】:

    标签: three.js blender gltf


    【解决方案1】:

    以防万一它对其他人有帮助,显然较新的 Blender > GLTF 导出器默认为 THREE.MeshStandardMaterial。我换成THREE.MeshLambertMaterial,问题就解决了。

                const oldMat = child.material;
                const newMat = new THREE.MeshLambertMaterial({
                    color: oldMat.color, 
                    map: oldMat.map
                });
                child.material = newMat;
    

    【讨论】:

    • 嗯,我很惊讶这解决了这个问题。我不认为有任何版本的 glTF Blender 导出器可以创建 Lambert 材料......设置material.roughness = 1 怎么样 - 这有帮助吗?如果没有,您能否向出口商提出问题?
    • 您好,澄清一下,导出器默认创建了 THREE.MeshStandard 材质。在我的 .js 脚本中,我在加载器函数内的 for 循环中使用上面的代码 sn-p 强制替换标准材料。
    • 尝试将纹理编码切换为 sRGB 而不是线性?
    • 您好,谢谢。如果您的意思是将 Blender 内部的色带设置为 RGB 模式,我试过了,但没有发现任何区别。我会多玩一点,但至少上面的方法让我回到了原来的位置......
    • MeshStandard 似乎是加载器代码中的默认值:github.com/mrdoob/three.js/blob/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多