2021年3月24日星期三

OpenGL GL_POLYGON only works when drawing clockwise?

I'm new to OpenGL and I try to use the following code (GL_POLYGON) to draw a circle using python. But it seems like it only draws it when the points are added in a clockwise manner, otherwise, it just draws nothing

This successfully draws a circle

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()  

Nothing rendered (only change is "-=" to "+=")

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()  

Is this normal? What am I doing wrong?

https://stackoverflow.com/questions/66792266/opengl-gl-polygon-only-works-when-drawing-clockwise March 25, 2021 at 10:36AM

没有评论:

发表评论