我在使用THREE.js时遇到了顶点法线的问题(参考版本为58)。出于各种原因,我想在设置几何体时先计算面的顶点法线,然后可以自由地进行变换、合并等操作。
虽然我知道法线取决于顶点,而顶点在应用矩阵时会被转换,但是我认为geometry.applyMatrix也可以将它们转换。然而,尽管以下代码可以正常工作:
geometry.applyMatrix(new THREE.Matrix4().makeScale(1, -1, 1));
geometry.computeFaceNormals();
geometry.computeVertexNormals();
以下操作顺序会导致反向顶点法线:
geometry.computeFaceNormals();
geometry.computeVertexNormals();
geometry.applyMatrix(new THREE.Matrix4().makeScale(1, -1, 1));
所以我想知道,这是否按照预期工作?在计算顶点法线之前,我需要先对几何体进行所有转换吗?