Javascript Three.js:ExtrudeGeometry:为正面和背面设置不同材质时出现问题
我正在创建一个六边形的挤出计量,并尝试为正面和背面设置不同的材质,如中所述 现在的问题是,这种方法(在面上迭代并查找那些Javascript Three.js:ExtrudeGeometry:为正面和背面设置不同材质时出现问题,javascript,three.js,Javascript,Three.js,我正在创建一个六边形的挤出计量,并尝试为正面和背面设置不同的材质,如中所述 现在的问题是,这种方法(在面上迭代并查找那些正常的面。z==1)不能正确地用于挤出计量学。数量=0.05。值0.1可以正常工作 是否有另一种方法为正面和背面设置不同的材质,还是我做得不对 谢谢你的帮助 问题是由于四舍五入造成的。而是这样做 if ( face.normal.z < - 0.99999 ) { // instead of == - 1 face.materialIndex = 2; }
正常的面。z==1
)不能正确地用于挤出计量学。数量=0.05
。值0.1
可以正常工作
是否有另一种方法为正面和背面设置不同的材质,还是我做得不对
谢谢你的帮助 问题是由于四舍五入造成的。而是这样做
if ( face.normal.z < - 0.99999 ) { // instead of == - 1
face.materialIndex = 2;
}
if(face.normal.z<-0.99999){//而不是==-1
face.materialIndex=2;
}
此外,背面法线在理论上是(0,0,-1)
更新小提琴:
three.js r.84提示:
环境光
不应该像你在小提琴上设置的那样亮。将“强度”设置为0.2,然后向场景添加一个方向光
,或向摄影机添加一个点光
。或者只使用不响应灯光的MeshBasicMaterial
。谢谢@WestLangley的提示。在我真正的应用程序中,我的abientLight为0.1,directionalLight为0.5,pointLight为0.8,但我真的不是闪电方面的专家。^^可以如此逻辑和简单。非常感谢。
if ( face.normal.z < - 0.99999 ) { // instead of == - 1
face.materialIndex = 2;
}