我在 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));
所以我只是想知道,这是否按预期工作?在计算顶点法线之前,是否需要先对几何体进行所有转换?