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

3

我尝试从Blender导出GLTF模型到Three.js,它可以工作。但是在Three.js上有一些光照和绘画问题。我在Three.js中有线条和正方形,并且不知道为什么。

enter image description here

我在Blender中只使用Principled BSDF节点来绘制我的模型。如果我在Three.js中设置材质(MeshPhongMaterial),它可以很好地工作。但是不能使用来自Blender的Principled BSDF节点。有什么想法吗?

enter image description here

我正在尝试使对象投射阴影并对光照做出反应。这对于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;
            }
        })
1个回答

2

减少自身阴影伪影的常用方法是调整投射阴影光源的bias属性。可以尝试以下操作:

light.shadow.bias = - 0.002;

1
谢谢。它真的解决了我的问题。 - Egettl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接