反走样
由于取样过程将物体上的坐标点数字化为离散的整数像素位置,因此光栅算法生成的图元显示具有锯齿形或阶梯状外观。这种由于低频取样(不充分取样)而造成的信息失真称为走样(aliasing )。可以使用校正不充分取样过程的反走样(antialiasing)方法来改善所显示的光栅线的外观。
图4.46给出了不充分取样的效果。为了避免从这种周期性对象中丢失信息,必须把取样频率至少设置为对象中出现的最高频率的两倍,这个频率称为 Nyquist取样频率 (或Nyquist取样速率):
另一种说法是,取样间隔不应超过循环间隔(Nyquist取样间隔)的一半。对于x间隔取样,Nyquist
取样间隔△x为
其中:
在图4.46中,取样间隔是循环间隔的一倍半,因此取样间隔至少要三倍大。假如要为这个例子恢复所有的对象信息,那么就需要将图中的取样间隔缩小到三分之一。
增加光栅系统取样频率的一种方法是简单地以较高分辨率显示对象。但是,即使用当前技术能达到的最高分辨率,仍会在一定范围内出现锯齿形。由于在实现帧缓存的最大容量并且保持刷新频率在每秒60帧或以上等方面存在一定的限制,而且要用连续参数精确地表示对象,则需要任意小的取样间隔。因此,除非硬件技术能发展到实现任意大的帧缓存,仅仅增加屏幕分辨率还不能完全解决走样问题。
对于能显示两级以上亮度(颜色或灰度等级)的光栅系统,可以使用反走样方法来修改像素亮度。通过适当地改变沿图元边界的像素亮度,可以平滑边界以减小锯齿现象。
一种简单、直接的反走样方法,就是把屏幕看成由比实际更细的网格所覆盖,从而增加取样频率,然后根据这种更细网格,使用取样点来确定每个屏幕像素的合适亮度等级。这种在高分辨率下对于对象特性的取样并在较低分辨率上显示其结果的技术称为过取样(supersampling ),也称为后过滤(postfiltering,因为常用方法包括计算像素网格位置上的亮度,并且将结果进行组合而得到像
素亮度)。所显示的像素位置则为覆盖屏幕有限区域的光点,而非无限小的数学点。在画线和填充区域算法中,每个像素的亮度则是由对象边界上单个点的位置所决定的。通过使用过取样方法,可以根据多个点对一个像素总体亮度的作用而得到亮度信息。
可以代替过取样的另一种方法是,通过计算待显示的每个像素在对象上的覆盖区域来确定像素亮度。计算覆盖区域的反走样称为区域取样(area sampling;也称为前滤波,prefiltering ),因为像素亮度是作为一个整体来确定的,所以不用计算子像素亮度。像素覆盖区域通过确定对象边界与单个像素边界的相交位置而得到。
也可以移动像素区域的显示位置而实现光栅对象的反走样,这种技术称为像素移相(pixelphasing )。通过与对象几何形状相关的电子束的“微定位”来应用该技术。
由于取样过程将物体上的坐标点数字化为离散的整数像素位置,因此光栅算法生成的图元显示具有锯齿形或阶梯状外观。这种由于低频取样(不充分取样)而造成的信息失真称为走样(aliasing )。可以使用校正不充分取样过程的反走样(antialiasing)方法来改善所显示的光栅线的外观。
图4.46给出了不充分取样的效果。为了避免从这种周期性对象中丢失信息,必须把取样频率至少设置为对象中出现的最高频率的两倍,这个频率称为 Nyquist取样频率 (或Nyquist取样速率):
另一种说法是,取样间隔不应超过循环间隔(Nyquist取样间隔)的一半。对于x间隔取样,Nyquist
取样间隔△x为
其中:
在图4.46中,取样间隔是循环间隔的一倍半,因此取样间隔至少要三倍大。假如要为这个例子恢复所有的对象信息,那么就需要将图中的取样间隔缩小到三分之一。
增加光栅系统取样频率的一种方法是简单地以较高分辨率显示对象。但是,即使用当前技术能达到的最高分辨率,仍会在一定范围内出现锯齿形。由于在实现帧缓存的最大容量并且保持刷新频率在每秒60帧或以上等方面存在一定的限制,而且要用连续参数精确地表示对象,则需要任意小的取样间隔。因此,除非硬件技术能发展到实现任意大的帧缓存,仅仅增加屏幕分辨率还不能完全解决走样问题。
对于能显示两级以上亮度(颜色或灰度等级)的光栅系统,可以使用反走样方法来修改像素亮度。通过适当地改变沿图元边界的像素亮度,可以平滑边界以减小锯齿现象。
一种简单、直接的反走样方法,就是把屏幕看成由比实际更细的网格所覆盖,从而增加取样频率,然后根据这种更细网格,使用取样点来确定每个屏幕像素的合适亮度等级。这种在高分辨率下对于对象特性的取样并在较低分辨率上显示其结果的技术称为过取样(supersampling ),也称为后过滤(postfiltering,因为常用方法包括计算像素网格位置上的亮度,并且将结果进行组合而得到像
素亮度)。所显示的像素位置则为覆盖屏幕有限区域的光点,而非无限小的数学点。在画线和填充区域算法中,每个像素的亮度则是由对象边界上单个点的位置所决定的。通过使用过取样方法,可以根据多个点对一个像素总体亮度的作用而得到亮度信息。
可以代替过取样的另一种方法是,通过计算待显示的每个像素在对象上的覆盖区域来确定像素亮度。计算覆盖区域的反走样称为区域取样(area sampling;也称为前滤波,prefiltering ),因为像素亮度是作为一个整体来确定的,所以不用计算子像素亮度。像素覆盖区域通过确定对象边界与单个像素边界的相交位置而得到。
也可以移动像素区域的显示位置而实现光栅对象的反走样,这种技术称为像素移相(pixelphasing )。通过与对象几何形状相关的电子束的“微定位”来应用该技术。