【发布时间】:2014-05-16 03:14:55
【问题描述】:
我在页面中加载了一个带有 JPG 纹理的 OBJ 文件 - 从一侧可以看到面,但从另一侧看是不可见的。
面部可见(有点暗 - 抱歉!)
另一面 - 面不可见。
我尝试添加model.doubleSided = true;,但这似乎没有任何改变。
【问题讨论】:
标签: javascript 3d three.js
我在页面中加载了一个带有 JPG 纹理的 OBJ 文件 - 从一侧可以看到面,但从另一侧看是不可见的。
面部可见(有点暗 - 抱歉!)
另一面 - 面不可见。
我尝试添加model.doubleSided = true;,但这似乎没有任何改变。
【问题讨论】:
标签: javascript 3d three.js
在材质上添加双面标志。假设你有类似的东西:
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;
});
}
【讨论】:
尝试添加renderer.setFaceCulling( THREE.CullFaceNone );
【讨论】: