2016-12-12 7 views
0

私のゲームでは、ハードポリゴンの多いポリゴンを使用しています。つまり、1つの頂点位置は、複数の法線とUV座標を使用します。 したがって、Vertex Positions、Normals、およびUVを3つの別々の配列に分割し、頂点ごとに3つのインデックスを使用してメッシュを構築することが適切です。 骨格のアニメーション、ライト、テクスチャ、マテリアルをすべてサポートするメッシュ用のデータフォーマットはありますか?それらを別々にインデックス、ポジション、法線、UVでインデックス付けしますか?それとも、3Dエディタ(Blender)でデータを保存するかという疑問ですか?どのメッシュデータフォーマットが、位置、法線、UV座標のインデックスを個別に提供していますか?

答えて

2

悲しいことに、位置、法線、UVなどに異なるインデックスを使用する効率的な方法はありません。すべての組み合わせは別々の頂点でなければなりません。

Thisスレッドではこの問題について説明していますが、一般に個々の頂点を使用する方が効率的です。

3Dエディタから.obj形式にエクスポートする場合、各頂点はファイルとともにデータと共に提供されます。

This videoは、BlenderからOpenGLまでのすべての方法で.objファイルをロードする完全な例を示しています。

+0

また、.objファイルが頂点を格納するこの方法を使用していることにも気付きました。位置、法線、uvがすべてあり、顔は3 * 3の整数で構成されています。 残念ながら、objには私が必要とする機能がすべてありません。今は.daeに固執することに決めました。次に、3つの別々の配列をロードして、メッシュをロードするときにインデックスを作成します。この方法で私はシェーダーに多くのデータを送る必要はなく、私のプログラムは最初にグラフィックカードを動かさないので、グラフィックカードに計算の多くを移すことができます。 ありがとう! – stimulate

+0

@stimulateいいえ、答えとしてマークすることを忘れないでください:) – SporreKing

+0

hehe greedy old geezer; – stimulate

関連する問題