我遵循了这个堆栈溢出示例:ThreeJS geometry flipping
我成功地反映了我的几何图形。但是现在我的几何图形是黑色的。我能在几何学的同时翻转我的法线来纠正这个问题吗?还是应该从一开始就用不同的方法来反映几何学?
编辑:
尝试将更新添加到此代码中,但仍然具有倒几何图形。
#transformation
mS.elements[5] = -1;
mesh.applyMatrix(mS);
#updates
mesh.geometry.verticesNeedUpdate = true;
mesh.geometry.normalsNeedUpdate = true;
mesh.geometry.computeBoundingSphere();
mesh.geometry.computeFaceNormals();
mesh.geometry.computeVertexNormals();

发布于 2014-09-14 14:39:33
mesh.geometry.verticesNeedUpdate = true;
mesh.geometry.normalsNeedUpdate = true;
mesh.geometry.computeBoundingSphere();
mesh.geometry.computeFaceNormals();
mesh.geometry.computeVertexNormals();发布于 2017-11-03 10:36:24
这是一个老问题,但对于那些仍然迷失的人来说:面正常是通过观察顶点的逆时针顺序来计算的。
因此,如果需要翻转法线,就必须重新排序分配给人脸的顶点。例如:
var tmp;
for(var f = 0; f < geometry.faces.length; f++) {
tmp = geometry.faces[f].clone();
geometry.faces[f].a = tmp.c;
geometry.faces[f].c = tmp.a;
}发布于 2014-09-17 14:08:14
你可以试试:
mesh.geometry.reverse(computeFaceNormals());
mesh.geometry.reverse(computeVertexNormals());https://stackoverflow.com/questions/25795538
复制相似问题