各円の中心となるポイントの頂点バッファーがあります (三角形ファン)。これらをどのように取得するか、この点の周りに 10 個の三角形を描き、次の点に移動するとします。サンプルコードを見つけることができませんでした。
2 に答える
古いパイプラインを使用している場合はglEnd()
、そうする必要があります。glBegin()
ドローコールを発行している場合は、新しいプリミティブの開始としてインデックスを指定できるプリミティブ再起動関数を使用できます。それを指摘してくれたdatenwolfの功績はすべて、私の記憶からはっきりと消し去りました。
ただし、個人的には、インデックス付きの三角形を使用する方が良いと思います。そうすれば、いつでも必要な頂点を再利用できます。それはより簡単で、ドライバー/ハードウェアはそれを感謝します.
(つまり、使用しないでください。使用するGL_TRIANGLE_FAN
だけGL_TRIANGLES
です。いずれにせよ、すべてのハードウェア ドローです)。
これは、プリミティブ リスタート インデックスを使用して行うことができます。特別なインデックス値を設定します (通常、インデックス作成に使用される型で表現可能な最大数)。次に、このインデックスがインデックス バッファで検出されるたびに、あたかも glDraw… への複数の呼び出しが発行されたかのように、新しいプリミティブが開始されます。
http://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml