2016-04-28 3 views
0

インデックスバッファで頂点バッファを使用し、法線を適用できますか?法線は頂点の属性よりも顔の属性に似ているようです。 F.e.キューブ内では、各頂点は顔に応じて3つの法線を持ちます。インデックス付きジオメトリを使用した法線の処理

インデックス付きジオメトリを持つ法線を使用するスマートな方法はありますか?または、私は頂点バッファのみを構築し、インデックスバッファの使用を止めなければなりませんか?

ありがとうございます。

+1

法線は頂点属性です。メッシュが滑らかではないと思われる頂点を複製する必要があります。 (立方体では、各コーナーには3つの頂点があり、それぞれの "normal"に1つの頂点があります。) – molbdnilo

+0

@molbdniloだから、この場合は8個ではなく24個の頂点を持つでしょうか?さて、私は複雑な人間の顔のメッシュを持っている場合はどうですか? –

+0

人間の顔は自然の中のほとんどのもののように滑らかです。 – molbdnilo

答えて

1

はい、インデックスフェイスを使用することは可能ですし、さらに優れています。 Normalsは、それぞれVertexの場合、Positionsのように格納されます。

キューブの場合、ノーノーマルモデルと比較してより多くの頂点が存在します。しかし、Sphereでは、同じ頂点の量(隣接するFacesの共通のNormal)があります。

ソースのジオメトリを知っているときに法線を計算する方が良い場合は、結果が信頼できない場合があります。例えば、円滑な円柱とプリズムは同じ位置を持つことができます。

+0

私は既に法線を持っていると仮定します(例:ブレンダーのOBJファイルから)。法線がなければ、私は8個の照合点と24個の指標を持ちます。この例では、Indexed Facesをどのように使用できますか? 1つのNormal per Vertexを使用すると、顔に応じて異なるシェードが適用されるため、不正確になります。 –

+1

同じ位置と異なる法線を持つ多くの頂点があります。 noramlsがposition(.OBJのように)でない場合は、PositionIndexとNormalIndexのすべてのユニークなペアを見つける必要があります。 –

+0

よかった、ありがとう。ですから、基本的にキューブは悪い例です。24個の固有の頂点があるからです。 :P Sphearはより良く動作するでしょう、これは正しいですか? –

関連する問題