我需要在 OpenGL 中画一条平滑的线,这是我所做的:
glEnable( GL_LINE_SMOOTH );
glEnable( GL_POLYGON_SMOOTH );
glHint( GL_LINE_SMOOTH_HINT, GL_NICEST );
glHint( GL_POLYGON_SMOOTH_HINT, GL_NICEST );
glBegin( GL_LINE_STRIP );
for( UINT uiPoint = 0; uiPoint < iNumPoints; ++uiPoint )
{
const Coord &Node = vecPoints[uiPoint];
glVertex3f( Node.x, Node.y, Node.z );
}
glEnd();
我还能做什么?
最佳答案
您还需要打开混合以使线条平滑工作。尝试:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
然后画线。将线宽设置为非整数宽度也可能有所帮助。
正如其他人所提到的,这不会平滑多边形边缘,但会创建抗锯齿线。
关于opengl - 如何使用抗锯齿在 OpenGL 中绘制平滑线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512456/