インデックスバッファとGL_TRIANGLESを使用するだけです。この場合、4つの頂点とクワッドごとに6つのインデックスが必要です(6つの追加インデックスは大きなオーバーヘッドに聞こえるかもしれませんが、実際にはそうではありません-インデックスバッファを構築したら、再度タッチする必要はありません)。詳細については、このページを参照してください(glDrawElementsを検索)
簡単なサンプルコード:
GLfloat vertices[] = {-1, -1, 0, // bottom left corner
-1, 1, 0, // top left corner
1, 1, 0, // top right corner
1, -1, 0}; // bottom right corner
GLubyte indices[] = {0,1,2, // first triangle (bottom left - top left - top right)
0,2,3}; // second triangle (bottom left - top right - bottom right)
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, indices);
また、1つのクワッドだけを描画する場合、トライアングルストリップで描画するために必要な頂点は4つだけです(ウィキペディアに表示されています)が、すでにこれを知っていると思います。
3, 4,
}です。縮退三角形がある3,3,4
と3,4,4
。これをする価値はありますか?いいえ、四角形が共通のエッジを持つペア(またはそれ以上)になる傾向がある場合を除きます。2番目のクワッドが{3、2、4、5}の場合、ストリップは{0,1,3,2,5,4}
です。