Anti-Aliasing
MSAA:(MultiSampling Anti-Aliasing), 通過提取像素界面周圍的顏色信息,通過混合顏色信息來消除高對比界面所產(chǎn)生的鋸齒。只對多邊形的邊緣進行抗鋸齒處理。
MSAA的做法也很容易理解,我們依然同樣會分采樣點,但是只會去計算究竟有幾個采樣點會被三角形cover,計算顏色的時候只會利用像素中心坐標(biāo)計算一次顏色(即所有的信息都會被插值到像素中心然后取計算顏色),如下圖:
FXAA:(Fast Approximately -Aliasing), FXAA原理與MSAA相同,其原理是通過提取像素界面周圍的顏色信息,通過混合顏色信息來消除高對比界面所產(chǎn)生的鋸齒。但是,FXAA將像素的提取和混合過程交由GPU 內(nèi)的ALU(arithmetic and logic unit,算術(shù)邏輯單元)執(zhí)行,所占用的顯存帶寬會 << 傳統(tǒng)的MSAA。
SMAA:(Enhanced Subpixel Morphological), SMAA 與 FXAA類似,性能消耗小,但是相比FXAA更清晰。SMAA是后處理抗鋸齒技術(shù)的一種,它的基本處理流程建立在Jimenez優(yōu)化改造后的MLAA(形態(tài)學(xué)抗鋸齒)算法之上。原始的MLAA是由英特爾實驗室提出的抗鋸齒技術(shù),這項技術(shù)代表著后處理式抗鋸齒蓬勃發(fā)展的開端。最初,MLAA是為CPU設(shè)計的,Jimenez對其進行改造并移植到GPU上,使其適用于實時渲染。SMAA則是在此基礎(chǔ)上進一步發(fā)展而來的。
CSAA:(Coverage Sampling Anti-Aliasing), 將邊緣多邊形里需要采樣的子像素坐標(biāo)覆蓋掉,將原像素坐標(biāo)強制安置在硬件和驅(qū)動程序預(yù)告算好的坐標(biāo)中。這就好比采樣標(biāo)準統(tǒng)一的MSAA,能夠最高效率地執(zhí)行邊緣采樣,交通提升非常明顯,同時資源占用也比較低。幾何體的邊緣在理論上來說是無限細致的,因為是用數(shù)學(xué)公式表達的。所以如果投影到光柵屏幕上的話,無論如何都會有細節(jié)損失的,只不過是不是明顯罷了。當(dāng)屏幕分辨率增加或者屏幕分辨率不變,而每個像素的采樣點增多的時候,這種細節(jié)會更好的表現(xiàn)在用戶面前,所以解決AA的一個最直觀的辦法就是通過增加分辨率。如果在圖像的長度和寬度都增加2倍的條件下(4 X SSAA ),再次渲染圖像。然后做一個downfiltering,那么圖像的細節(jié)會表現(xiàn)的更好一些,鋸齒會明顯的減少。這種辦法就是SSAA了,挺Brute Force的辦法。這種方法的好處在于可以更完美的表現(xiàn)畫面,不過問題在于其計算代價是與屏幕分辨率成正比的。4 x SSAA 的速度要比沒有AA慢4倍左右的時間,對于大多數(shù)應(yīng)用來說,是得不償失的。從性能角度而言,SSAA是不實際的。
當(dāng)然,即使確定了SSAA算法后,也還有一些其他的細節(jié)需要考慮。例如,16 x SSAA可以被理解為每個像素有十六個采樣點,而采樣點的分布是
而這種分布對于反走樣并不是特別有效的,可以采用如下幾種分布來替換
從左到右依次是隨機分布,泊松分布和Jittered分布。隨即分布的問題在于采樣點數(shù)量不多的時候,算法的結(jié)果不是特別穩(wěn)定。泊松分布的問題在于并不能輕易計算出泊松分布的位置,而且位置計算代價很大。當(dāng)然還有很多其他的分布,這里就不多介紹了。不同的采樣點分布算法可以不同程度的改變反走樣的效果。
原文鏈接:https://blog.csdn.net/codeboycjy/article/details/6312758
https://blog.csdn.net/MumuziD/article/details/105672823
總結(jié)
以上是生活随笔為你收集整理的Anti-Aliasing的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python shp地理坐标系转换平面
- 下一篇: SQL截取字符串substring