Three.js:将面部法线从局部空间转换为世界空间

Typ*_*def 3 normals vertex three.js face

我有一个THREE.PlaneGeometry,有ComputeFaceNormals().我使用这个几何体创建了两个网格,并对它们应用了不同的旋转.我想计算相机和两个网格中心面法线之间的两个角度.它应该是 :

vLocalCamera = vCamera.position - mesh1.position;

mesh1.normal() . vLocalCamera = cos(angle);
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何使用three.js API在世界坐标(来自几何和网格旋转)中获得网格法线

Wes*_*ley 7

如果你想转换一个正常的面normal,从本地空间到世界空间,你可以这样做:

var normalMatrix = new THREE.Matrix3(); // create once and reuse
var worldNormal = new THREE.Vector3(); // create once and reuse

...

normalMatrix.getNormalMatrix( object.matrixWorld );

worldNormal.copy( normal ).applyMatrix3( normalMatrix ).normalize();
Run Code Online (Sandbox Code Playgroud)

three.js r.58