OpenGL GL_POLYGON仅在顺时针绘制时工作



我是OpenGL的新手,我尝试使用以下代码(GL_POLYGON(使用python绘制圆。但它似乎只在按顺时针方向添加点时绘制,否则,它就不会绘制

这成功地画了一个圆圈

p = self.pos + Y_VEC * self.height  # center of the circle
dv = self.dir_vec * self.radius  # vector point forward
rv = self.right_vec * self.radius  # vector point to right
sides = 20  # sides of the circle (circle is in fact polygon)
angle = 0
inc = 2 * math.pi / sides
glColor3f(0, 1, 0)
glPointSize(10.0)
glBegin(GL_POLYGON)  # GL_POLYGON drawn but not shown in top view? GL_LINE_LOOP works
# glVertex3f(*p)  # used for TRIANGLE_FAN
for i in range(sides+1):
pc = p + dv * math.cos(angle) + rv * math.sin(angle)
glVertex3f(*pc)
angle -= inc
glEnd()

没有呈现任何内容(只有"-="到"+="的改变(

angle = 0
inc = 2 * math.pi / sides
glColor3f(0, 1, 0)
glPointSize(10.0)
glBegin(GL_POLYGON)  # GL_POLYGON drawn but not shown in top view? GL_LINE_LOOP works
# glVertex3f(*p)  # used for TRIANGLE_FAN
for i in range(sides+1):
pc = p + dv * math.cos(angle) + rv * math.sin(angle)
glVertex3f(*pc)
angle += inc  # change here
glEnd()

这正常吗?我做错了什么?

确保使用glDisable(GL_CULL_FACE)禁用人脸剔除。

最新更新