【发布时间】:2015-04-28 19:04:08
【问题描述】:
我使用 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();
容器旋转后在每个网格上,但没有结果。
有人知道该怎么做吗?
【问题讨论】:
标签: object rotation three.js mesh normals