opengl - 如何使用抗锯齿在 OpenGL 中绘制平滑线?

标签 opengl line antialiasing

我需要在 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/

相关文章:

Android 谷歌地图 SDK 用虚线绘制折线

php - 在 PHP 中的特定行的开头添加文本

algorithm - 在线算法上绘制箭头

iphone - UIImage ScaleToFit 禁用抗锯齿?

matlab - openCV 双三次 imresize 创建负值

performance - 当绘制顺序很重要时批处理多个绘制调用

c++ - OpenGL ping pong 一次通过,而不是两次

opengl - 什么导致基于状态的顶点着色器的 GLSL 重新编译?

c++ - 如何使用openGL绘制要点?(C++)

android - Paint.setAntiAlias(false) 没有效果?