反走樣演算法
對直線、圓及橢圓這些最基本元素的生成速度和顯示質量的改進,在圖形處理系統中具有重要的應用價值,但它們生成的線條具有明顯的“鋸齒形”即會發生走樣現象
走樣:
“鋸齒”是“走樣”的一種形式。而走樣是光柵顯示的一種固有性質。產生走樣現象的原因是畫素本質上的離散性
走樣現象:
1、光柵圖形產生的階梯形(鋸齒形)
2、圖形中包含相對微小的物體時,這些物體在靜態圖形中易被丟棄或忽略。小物體可能因“走樣”而“消失”。在動畫序列中時隱時現,產生閃爍。
矩形從左向右移動,當其覆蓋某些畫素中心時,矩形被顯示出來,當未覆蓋畫素中心時,矩形不被顯示。
簡單的說,如果對一個快速變化的訊號取樣頻率過低,所得樣本表示的會是低頻變化的訊號:原始訊號的頻率看起來被較低的“走樣”頻率所代替
反走樣技術:
可採用解析度更高的顯示裝置,對解決走樣現象有所幫助,因為可使鋸齒相對物體更小一些
對於在白色背景中的黑色矩形,通過在矩形的邊界附近摻入一些灰色畫素,可以柔化從黑到白的尖銳變化。從遠處觀看時,人眼能把這些緩和變化的暗影融合在一起,從而看到更加平滑的邊界
兩種反走樣方法:
1、非加權區域取樣方法
根據物體的覆蓋率計算畫素的顏色。覆蓋率是指某個畫素區域被物體覆蓋的比例
把這個多邊形放在方格線中,其中每個正方形的中心對應顯示器上一個畫素中心。被多邊形覆蓋了一半的畫素賦為1/2,覆蓋三分之一的畫素賦值為1/3;以此類推。
如果幀緩衝區的每個畫素有4個位元位,那麼0表示黑色……15表示白色
缺點:
- 畫素的亮度與相交區域的面積成正比,而與相交區域落在畫素內的位置無關,這仍然會導致鋸齒效應
- 直線條上沿理想直線方向的相鄰兩個畫素有時會有較大的灰度差
2、加權區域取樣方法
這種方法更符合人視覺系統對影象資訊的處理方式,反走樣效果更好
將直線段看作是具有一定寬度的狹長矩形;當直線段與畫素有交時,根據相交區域與畫素中心的距離來決定其對畫素亮度的貢獻
直線段對一個畫素亮度的貢獻正比於相交區域畫素中心的距離
設定相交區域面積與畫素中心距離的權函式(高斯函式)反映相交面積對整個畫素亮度的貢獻大小
利用權函式積分求相交區域面積,用它乘以畫素可設定的最大亮度值,即可得到該畫素實際顯示的亮度值
可利用離散計算方法:
將一個畫素劃分為n=3*3的子畫素,加權表可以取作:
加權方案:中心子畫素的加權是角子畫素的4倍,是其他畫素的2倍,對九個子畫素的每個網格所計算出的亮度進行平均,然後求出所有中心落在直線段內的子畫素,最後計算所有這些子畫素對原象素亮度貢獻之和