我使用 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 来做到这一点?