2

glDrawElementsがそのインデックスをどのように使用するのか興味があります。GL_TRIANGLESによって描画されたインデックス{1、2、3、4、5、6}の配列があるとしましょう。私の質問は、それがインデックス「123」、「456」によって2つの三角形を形成するのか、それとも「123」、「234」、「345」、「456」の4つの三角形を形成するのかということです。.objモデルをインポートしていますが、データは正常に読み込まれますが、レンダリングが混乱します。

4

2 に答える 2

5

使用する場合GL_TRIANGLESはになります123, 456。使用する場合GL_TRIANGLE_STRIPSはになります123, 234, 345, 456

于 2012-02-09T17:02:03.207 に答える
4

モードではGL_TRIANGLES、三角形ごとに3つの頂点が必要であるため、一度に3つのインデックスが描画されます(したがって、インデックスが1、2、3、4、5、6の2つの三角形が描画されます)。

もちろん、隣接している場合や三角ストリップを描いている場合は、異なる数字が適用されます。

また、OBJファイルをインポートしていると述べたので、OBJファイルの頂点とテクスチャ座標および/または法線に異なるインデックスがある可能性があることに注意してください。
これはバグではなく、機能です。これはOBJで許容され、多くのエクスポータは、スペースを節約するために、サーフェスが滑らかなシェーディング(つまり、2つの面が法線を共有する)のときにこれを行います。それぞれが独自の法線、texcoordなどを持つ一意の
頂点 のリストを作成し、これらのインデックスを使用する必要があります。

于 2012-02-09T17:02:46.030 に答える