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