我使用3D对象作为几个网格的容器。我正在使用正交相机。我将容器垂直旋转90°,如下所示:
meshContainer.rotation.x = 0;
meshContainer.rotation.y = - 90 * Math.PI / 180;
meshContainer.rotation.z = 0;
camera.updateProjectionMatrix();
我必须对容器内的网格进行操作,具体取决于它们相对于相机的方向。所以,我做了这个测试:
var vector = new THREE.Vector3( 0, 0, -1 );
vector.applyQuaternion(camera.quaternion);
if (vector.dot(geom.faces[i].normal) < 0) { ... }
goem是容器内一个网格的几何形状。
我只想检查每张脸是否都在“看着”相机。当我使用鼠标控件旋转容器但没有上面的旋转时,它工作正常。当我查看网格几何时,看起来当我进行容器旋转时,面的法线不会被更新。
我试过了:
mesh[value].geometry.computeFaceNormals();
mesh[value].geometry.computeVertexNormals();
容器旋转后在每个网格上,但没有结果。
有人知道该怎么办吗?
答案 0 :(得分:0)
必须更改相机位置,但不能更改网格容器,一切都很好