使用Three.js从一侧看不见的面孔

时间:2014-05-13 19:35:16

标签: javascript 3d three.js

我有一个带有JPG纹理的OBJ文件加载到页面中 - 从一侧可以看到面部,但是从另一侧看它们是不可见的。

enter image description here

脸部可见(有点黑暗 - 对不起!)

enter image description here

其他方面 - 不可见。

我尝试添加model.doubleSided = true;,但这似乎无法改变任何内容。

2 个答案:

答案 0 :(得分:10)

在材质上添加双面标记。假设你有类似的东西:

material = new THREE.MeshLambertMaterial ({ color: 0xFF00FF });

添加:

material.side = THREE.DoubleSide;

或创建材料时:

material = new THREE.MeshLambertMaterial ({ color: 0xFF00FF, side: THREE.DoubleSide });

编辑:对于返回Object3D的OBJMTL加载器,我们需要遍历该对象以设置适当的标志:

if (object instanceof THREE.Object3D)
{
    object.traverse (function (mesh)
    {
        if (! (mesh instanceof THREE.Mesh)) return;

        mesh.material.side = THREE.DoubleSide;
    });
}

答案 1 :(得分:0)

尝试添加renderer.setFaceCulling( THREE.CullFaceNone );