您的位置:首页 > 运维架构

OpenGL 抗锯齿

2015-11-08 13:22 260 查看
我们先来绘制一条线段如下图:



我们可以看到在线段上有很多小锯齿一样的东西,我们可以用OpenGL的抗锯齿模式来减小这种影响

开启抗锯齿

// 开启抗锯齿
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glEnable(GL_POINT_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glEnable(GL_POLYGON_SMOOTH);
glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);


首先我们开启混合模式,并设置混合函数,混合在上一节中已讲过

glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

1.开启点平滑:

glHint(GL_POINT_SMOOTH,GL_NICEST); //告诉opengl以显示效果为重,速度不重要

glEnable(GL_POINT_SMOOTH);

2.开启线平滑

glHint(GL_LINE_SMOOTH,GL_NICEST);//告诉opengl以显示效果为重,速度不重要

glEnable(GL_LINE_SMOOTH);

3.开启面平滑

glHint(GL_POLYGON_SMOOTH,GL_NICEST);//告诉opengl以显示效果为重,速度不重要

glEnable(GL_POLYGON_SMOOTH);

关闭抗锯齿

// 关闭抗锯齿
glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);
glDisable(GL_POINT_SMOOTH);
glDisable(GL_POLYGON_SMOOTH_HINT);


下图是开启抗锯齿后的效果



锯齿没有那么明显了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: