在光柵顯示器上顯示斜線的45º角時常會發生鋸齒狀,請考慮減少鋸齒狀效果的各種方法並說明採用這些方法的代價。
在光柵圖形顯示器上顯示斜線時常會發生鋸齒,這是由於直線或多邊形邊界在光柵圖形顯示器的對應圖形都是由一系列相同亮度的離散象素構成的。這種用離散量表示連續亮引起的失真稱為走樣,而用於減少或消除這種效果的技術,稱為反走樣。
一般而言,減少鋸齒有三種方法,下面以直線掃描轉換為例,分別介紹三種方法:
(1) 提高解析度
假設把顯示器的解析度提高一倍,雖然直線經過2倍的象素,鋸齒也會增加一倍。但由於每個鋸齒在X方向和Y方向都只有低解析度的一半,所以效果看起來會好一些,這種改進方法是以4倍的儲存器代價和4倍的掃描轉換時間獲得的。因此增加解析度是不經濟的方法,它只能減輕,不能消除鋸齒。
(2) 簡單的區域取樣
在直線掃描演算法假定象素是數學上的一個點,象素的顏色是由對應於象素中心的圖形中一點的顏色決定的。但是,實際上象素不是一個點,而是一個有限區域。螢幕上所畫的直線段不是數學意義上的無寬度的理想線段,而是一個寬度至少為一個象素單位的線條。因此,把螢幕上的直線看成是長方條形更為合理。在繪製直線條時,所有與該長方條相交的象素都採用適當的寬度給予顯示。這要求顯示器各象素可以用多灰度顯示。例,設象素中心是在網格點上的不相交的正方形,象素的灰度與它落在直線條內的面積成正比。在多灰度黑白顯示器上,若一個象素整個落線上條上,則將它置成前景色。若一個象素與線條部分相交,根據相交部分的大小來選擇不同的灰度,相交部分大的象素前景色成分更多一些,相交部分小的象素前景色成分更少一些。這種方法將產生模糊的邊界,以此來減輕鋸齒效應。在實際應用中,常採用盒式濾波器
(3) 加權區域取樣
加權區域取樣方法採用更為最佳化的圓錐形濾波器。圓錐的底圓中心在當前象素中心,底圓半徑為一個單位,錐高為1。當直線條經過該象素時,該象素的灰度值是在二者相交區域上對濾波器進行積分的積分值。用這種圓錐形濾波器有如下特點:一是接近理想直線的象素將被分配更多的灰度值。二是相鄰兩個象素的濾波器相交,所以直線條經過該相交區域時,將對這兩個象素分配給適當的灰度值,這有利於縮小直線條上相鄰象素的灰度差。
在光柵顯示器上顯示斜線的45º角時常會發生鋸齒狀,請考慮減少鋸齒狀效果的各種方法並說明採用這些方法的代價。
在光柵圖形顯示器上顯示斜線時常會發生鋸齒,這是由於直線或多邊形邊界在光柵圖形顯示器的對應圖形都是由一系列相同亮度的離散象素構成的。這種用離散量表示連續亮引起的失真稱為走樣,而用於減少或消除這種效果的技術,稱為反走樣。
一般而言,減少鋸齒有三種方法,下面以直線掃描轉換為例,分別介紹三種方法:
(1) 提高解析度
假設把顯示器的解析度提高一倍,雖然直線經過2倍的象素,鋸齒也會增加一倍。但由於每個鋸齒在X方向和Y方向都只有低解析度的一半,所以效果看起來會好一些,這種改進方法是以4倍的儲存器代價和4倍的掃描轉換時間獲得的。因此增加解析度是不經濟的方法,它只能減輕,不能消除鋸齒。
(2) 簡單的區域取樣
在直線掃描演算法假定象素是數學上的一個點,象素的顏色是由對應於象素中心的圖形中一點的顏色決定的。但是,實際上象素不是一個點,而是一個有限區域。螢幕上所畫的直線段不是數學意義上的無寬度的理想線段,而是一個寬度至少為一個象素單位的線條。因此,把螢幕上的直線看成是長方條形更為合理。在繪製直線條時,所有與該長方條相交的象素都採用適當的寬度給予顯示。這要求顯示器各象素可以用多灰度顯示。例,設象素中心是在網格點上的不相交的正方形,象素的灰度與它落在直線條內的面積成正比。在多灰度黑白顯示器上,若一個象素整個落線上條上,則將它置成前景色。若一個象素與線條部分相交,根據相交部分的大小來選擇不同的灰度,相交部分大的象素前景色成分更多一些,相交部分小的象素前景色成分更少一些。這種方法將產生模糊的邊界,以此來減輕鋸齒效應。在實際應用中,常採用盒式濾波器
(3) 加權區域取樣
加權區域取樣方法採用更為最佳化的圓錐形濾波器。圓錐的底圓中心在當前象素中心,底圓半徑為一個單位,錐高為1。當直線條經過該象素時,該象素的灰度值是在二者相交區域上對濾波器進行積分的積分值。用這種圓錐形濾波器有如下特點:一是接近理想直線的象素將被分配更多的灰度值。二是相鄰兩個象素的濾波器相交,所以直線條經過該相交區域時,將對這兩個象素分配給適當的灰度值,這有利於縮小直線條上相鄰象素的灰度差。