3

我正在尝试绘制星形(这是我第一次尝试 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();
4

1 回答 1

7

定义的多边形GL_POLYGON 必须是凸的。你不能用它做星星,因为它有凸有凹的部分。

绘制星星的正确方法是定义构成星星的所有三角形并将它们绘制在GL_TRIANGLES. GL_POLYGON无论如何,现代opengl已弃用,因此明智的做法是不要过多关注它。

于 2012-09-19T01:00:22.427 回答