我正在尝试绘制一颗星星(这是我第一次尝试 OpenGL),但底部和左侧绘制为平面,即使我为它们设置了顶点。我在这里缺少什么?
glBegin(GL_POLYGON);
glVertex2i(30,0);
glVertex2i(105,55);
glVertex2i(180,0);
glVertex2i(150,75);
glVertex2i(210, 90);
glVertex2i(135, 135);
glVertex2i(105, 210);
glVertex2i(75, 135);
glVertex2i(0, 90);
glVertex2i(55, 75);
glEnd();
最佳答案
用 GL_POLYGON
定义的多边形必须 是凸的。你不能用它做星星,因为它有凸凹部分。
绘制星星的正确方法是定义构成星星的所有三角形并将它们绘制在 GL_TRIANGLES
列表中。 GL_POLYGON
无论如何都已从现代 opengl 中弃用,因此明智的做法是不要过多关注它。
关于c++ - 为什么 OpenGL 多边形会忽略两个顶点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12487176/