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));
だから私はただ疑問に思っています、これは意図したとおりに機能していますか? 頂点法線を計算する前に、まずジオメトリのすべての変換を行う必要がありますか?