5

COLLADAファイル形式用の簡単なリーダーを作成しましたが、問題なく動作するようです。これで、Blenderでエクスポートされた、エッジ分割および三角形分割されたキューブメッシュができたので、12個の三角形(面ごとに2個)、24個の頂点(面ごとに4個)、および36個のインデックス(面ごとに6個)が必要です。このメッシュには、通常のデータとUVマップもあります。

このCOLLADAファイルには、24の頂点、12の法線、および36のUVがあるため、法線は三角形ごとであり、UVはインデックスごとであると想定しています。三角形のpolylist数は12で、これは正しいです。また、にvcountは12個の「3」があるので、これも正しいです。現在、<p>インデックスリストであるは108のエントリがあり、0、3、6などは頂点インデックス、1、4、7などは通常のインデックス、2、5、8などはUVインデックスです。

頂点の内部構造体があります。これは、位置(vec3)、法線(vec3)、およびUV座標(vec2)で構成されています。メッシュを描画するために、OpenGLの頂点バッファーを使用し、インデックスの個別のリストを用意しています。

問題は、メッシュをロードした後、24個の頂点を持つべきではないということです。の108個のエントリは、<p>36個の頂点に変換されます。ここでのインデックスの問題は何ですか?

ここでは本当に単純なものが欠けているかもしれませんが、それを見ることができません。

COLLADAファイルはこちらです。

4

1 に答える 1

7

さて、私は解決策を見つけました、単純な飛行機で私の心をクリアしなければなりませんでした。すべての面が三角形であるため、頂点の最終的なカウントは、ポリリストのカウント属性に記述されているカウントの3倍でした。したがって、立方体の場合、24ではなく36でした。最終的に、36は立方体を正しく描画します。だから、それは主に私の脳が狂っているだけでした。

于 2013-02-16T16:38:53.217 に答える