将绘制的模型从 Blender 导出到 Three.js

Export painted model from Blender to Three.js

我尝试将 GLTF 模型从 Blender 导出到 Three.js。有用。但是我在 Three.js 上有一些带有照明和绘画的人工制品。我在 Three.js 中有线条和方块,我不知道为什么。

我只使用 Blender 中的 Principled BSDF 节点来绘制我的模型。如果我在 Three.js (MeshPhongMaterial) 中设置 material 它工作正常。但不是来自 Blender 的 Principled BSDF 节点。有什么想法吗?

我正在尝试让对象投射阴影并对光照做出反应。这适用于 MeshPhongMaterial 和 Principled BSDF。但是在第二个选项中,我不喜欢这些黑色条纹。

const INITIAL_MTL = new THREE.MeshPhongMaterial( { color: 0x575757, shininess: 10 } );
...
let theModel = gltf.scene;

        theModel.traverse((o) => {
            if (o.isMesh) {
                if (o.name == 'Foundation') {
                    o.material = INITIAL_MTL //Left part on screenshot with MeshPhongMaterial
                }
                o.castShadow = true;
                o.receiveShadow = true;
            }
        })

减轻 self-shadowing 伪影的常用方法是调节 shadow-casting 光的 bias 属性。试试看:

light.shadow.bias = - 0.002;