我正在尝试绘制一颗星星(这是我第一次尝试 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/

10-13 06:13