图形学(7)反走样技术

本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明、李振波两位老师,感谢他们录制该门课程供大家学习!

其实,在之前绘制直线算法中,画出来的直线经放大会有明显的“锯齿”,这就是俗称的走样(Liasing)现象。下面介绍如何通过特定算法降低这种不友好现象的影响

反走样技术

 

走样

产生原因

光栅显示器的固有性质,走样产生的原因是像素本质上的离散性。比如,想要用离散的点表示连续的直线,就必然会有“锯齿”现象出现,这是走样的形式之一。

 

走样形式

除了上面的直线锯齿之外,微小物体的显示问题也是一个令人头痛的事。如果图形相对微小,一些部分占不满半个像素,那么就会被四舍五入“舍”掉。而且,小物体在快速移动过程中的闪烁问题也是走样的形式之一,具体情况如下图所示:

 图形学(7)反走样技术_第1张图片

 

 

反走样技术

为了解决上述问题,研究人员开发出了一些用于减少或消除走样效果的技术,称为反走样(Antialiasing)随现在对图形质量要求越来越高,几乎所有图形处理系统都需要对基本图形进行反走样处理

 

提高分辨率

简单粗暴,但是开销巨大。比如显示器长宽分辨率各加一倍,则要以4(2*2)的存储器代价和扫描转换时间解决问题,且对硬件要求提高,无法适应更高要求的反走样。

“模糊”

通过模糊,我们可以淡化锯齿,从而产生更平滑的图像。比如在白色背景下绘制黑色直线时,可以通过在直线周围添加一些灰色像素来柔化黑色到白色的锐变。“模糊”的方式有以下两种。

 

非加权区域采样方法

根据物体的覆盖了吧计算像素颜色,即某个像素区域被物体覆盖的比例决定颜色参数的大小。

这个方法计算较简单,但缺点也比较明显:

  1. 像素亮度只与相交区域面积大小成正比,而与相交区域在像素内的位置无关,这仍然会导致锯齿的出现。
  2. 直线条上沿直线方向上的相邻两个像素有时色差会很明显

两个不足之处出现的本质原因是每个像素的权值相同

 

加权区域采样方法

更符合人视觉系统对图像信息的处理方式,效果更好。

将直线段看作具有一定宽度的狭长矩形。当直线段与像素有交时,根据相交区域与像素中心的距离(即通过计算一次点到直线距离)来决定其对象素亮度的贡献。

  1. 像素中心离直线段越近,权值越大,亮度就高;
  2. 设置相交区域面积与像素中心距离的权函数(高斯函数)反映相交面积对整个像素亮度的贡献大小

这样,利用权函数积分求相交区域面积,乘以像素可设置的最大亮度值,就得到该像素实际亮度。

加权区域采样方法的计算

在计算时,由于像素点的离散型,其实并不需要算出很精确的权值,可以将像素分成3*3的子像素,然后做出加权表如下:

 图形学(7)反走样技术_第2张图片

这样,在计算时只要求出所有中心位于直线狭长矩形的子像素,然后加权计算就可以算出亮度权值了。

关于更多对反走样技术的改进与研究,知网中有如下文章:

 图形学(7)反走样技术_第3张图片

你可能感兴趣的:(计算机图形学)