0

のドキュメントにTHREE.BufferGeometryは次のように書かれています。

normal (itemSize: 3)
このジオメトリの各頂点の面または頂点法線ベクトルの x、y、および z コンポーネントを格納します。.fromGeometry() によって設定されます。

この変数はいつ頂点法線を保持し、いつ法線を保持しますか?

THREE.MeshMaterialaを使用すると法線が面法線として解釈され、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通常のアトリビュートを保持しているなどから作られているのはなぜですか? この情報はまだレンダリングに使用されていますか、それともバッファ ジオメトリからそれらを削除することで最適化できるのでしょうか?

4

1 に答える 1