のドキュメントにTHREE.BufferGeometry
は次のように書かれています。
normal (itemSize: 3)
このジオメトリの各頂点の面または頂点法線ベクトルの x、y、および z コンポーネントを格納します。.fromGeometry() によって設定されます。
この変数はいつ頂点法線を保持し、いつ面法線を保持しますか?
THREE.MeshMaterial
aを使用すると法線が面法線として解釈され、aTHREE.LineMaterial
を使用すると法線が頂点法線として使用されるのと同じくらい単純ですか? それともそれよりも複雑ですか?
また、フラット シェーディングでメッシュをレンダリングするために使用できることも理解しTHREE.FlatShading
ました (面の法線はまっすぐ外側を向いています)。
geometry = new THREE.BoxGeometry( 1000, 1000, 1000 );
material = new THREE.MeshPhongMaterial({
color: 0xff0000,
shading: THREE.FlatShading
});
mesh = new THREE.Mesh( geometry, material );
法線はもう必要ないと思います。このような場合に、バッファ ジオメトリがTHREE.BoxGeometry
通常のアトリビュートを保持しているなどから作られているのはなぜですか? この情報はまだレンダリングに使用されていますか、それともバッファ ジオメトリからそれらを削除することで最適化できるのでしょうか?