三角形、四角形、五角形を表示する OpenGL 4.3 を使用した簡単なプログラムを作成しました。次の配列で頂点を定義しました。
vec2 vertices[NumPoints] = {
vec2(-1, -0.75), vec2(-0.75, -0.25), vec2(-0.5, -0.75), //Triangle
vec2(0, -0.25), vec2(0.5, -0.25), vec2(0.5, -0.75), vec2(0, -0.75), //Quad
vec2(0.25, 0.25), vec2(0.5, 0.5), vec2(0.75, 0.25), vec2(0.65, 0), vec2(0.35, 0) // pentagon
};
簡潔にするために、定型コードのほとんどを省略します。私の表示機能には、次のコードがあります。
glDrawArrays(GL_TRIANGLES, 0, 3); // draw the points
glDrawArrays(GL_TRIANGLE_FAN, 3, 4); //quad
glDrawArrays(GL_TRIANGLE_FAN, 7, 5); //polygon
すべて正常に動作し、問題はありません。ただし、事前に必要な頂点の数を正確に把握する必要がある場合、複雑なシーンを作成するのはかなり面倒でほとんど不可能に思えます。ここで何か不足していますか?また、円を作成する必要がある場合、GL_TRIANGLES だけを使用してどのように作成すればよいでしょうか?