对直线、圆及椭圆这些最基本元素的生成速度和显示质量的改进,在图形处理系统中具有重要的应用价值,但它们生成的线条具有明显的“锯齿形”即会发生走样现象

走样:

“锯齿”是“走样”的一种形式。而走样是光栅显示的一种固有性质。产生走样现象的原因是像素本质上的离散性

反走样算法

走样现象:

1、光栅图形产生的阶梯形(锯齿形)

2、图形中包含相对微小的物体时,这些物体在静态图形中易被丢弃或忽略。小物体可能因“走样”而“消失”。在动画序列中时隐时现,产生闪烁。

反走样算法

矩形从左向右移动,当其覆盖某些像素中心时,矩形被显示出来,当未覆盖像素中心时,矩形不被显示。

简单的说,如果对一个快速变化的信号采样频率过低,所得样本表示的会是低频变化的信号:原始信号的频率看起来被较低的“走样”频率所代替

反走样算法

反走样技术:

可采用分辨率更高的显示设备,对解决走样现象有所帮助,因为可使锯齿相对物体更小一些

反走样算法

对于在白色背景中的黑色矩形,通过在矩形的边界附近掺入一些灰色像素,可以柔化从黑到白的尖锐变化。从远处观看时,人眼能把这些缓和变化的暗影融合在一起,从而看到更加平滑的边界

反走样算法

两种反走样方法:

1、非加权区域采样方法

根据物体的覆盖率计算像素的颜色。覆盖率是指某个像素区域被物体覆盖的比例

反走样算法

把这个多边形放在方格线中,其中每个正方形的中心对应显示器上一个像素中心。被多边形覆盖了一半的像素赋为1/2,覆盖三分之一的像素赋值为1/3;以此类推。

如果帧缓冲区的每个像素有4个比特位,那么0表示黑色……15表示白色

缺点:

  • 像素的亮度与相交区域的面积成正比,而与相交区域落在像素内的位置无关,这仍然会导致锯齿效应
  • 直线条上沿理想直线方向的相邻两个像素有时会有较大的灰度差

2、加权区域采样方法

这种方法更符合人视觉系统对图像信息的处理方式,反走样效果更好

反走样算法

将直线段看作是具有一定宽度的狭长矩形;当直线段与像素有交时,根据相交区域与像素中心的距离来决定其对像素亮度的贡献

直线段对一个像素亮度的贡献正比于相交区域像素中心的距离

设置相交区域面积与像素中心距离的权函数(高斯函数)反映相交面积对整个像素亮度的贡献大小

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


可利用离散计算方法:

反走样算法

将一个像素划分为n=3*3的子像素,加权表可以取作:反走样算法

加权方案:中心子像素的加权是角子像素的4倍,是其他像素的2倍,对九个子像素的每个网格所计算出的亮度进行平均,然后求出所有中心落在直线段内的子像素,最后计算所有这些子像素对原象素亮度贡献之和




相关文章: