OpenGL - 圆圈没有画出光滑

时间:2014-03-12 19:13:52

标签: c opengl

我正在使用OpenGL绘制一个圆圈,其中一组调用是:

float delta_theta = 0.001;
glBegin(GL_POLYGON); // OR GL_LINE_LOOP


glEnable( GL_LINE_SMOOTH );
glHint( GL_LINE_SMOOTH_HINT, GL_NICEST );
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);


for (angle = 0; angle < 2*3.1415; angle += delta_theta)
   glVertex3f( radius*cos(angle), radius*sin(angle), 0 );

glEnd();

问题是圆圈不平滑。我沿着轴移动(平移)圆圈;在某些方面,它变得平滑,但大多数情况下,它就像一个污点,请参阅附带的截图。

有什么建议我可以做些什么来平滑圆圈?Nonsmooth circle

1 个答案:

答案 0 :(得分:2)

我建议你不要尝试使用直线或填充多边形来实现这一点。

使用一个GL_POINT并启用GL_POINT_SMOOTH。这会将点光栅化为实心圆而不是正常方形。如果您使用实现支持的抗锯齿点(通常在NV实现上高达〜 63.5 ,在其他实现上更多),它将更有效率。

相关问题