杜慧敏, 杜琴琴, 季凱柏, 蔣忭忭, 郭沖宇
(1.西安郵電大學(xué) 電子工程學(xué)院, 陜西 西安 710121; 2.西安郵電大學(xué) 計(jì)算機(jī)學(xué)院, 陜西 西安 710121)
后處理反走樣技術(shù)綜述
杜慧敏1, 杜琴琴2, 季凱柏1, 蔣忭忭1, 郭沖宇1
(1.西安郵電大學(xué) 電子工程學(xué)院, 陜西 西安 710121;2.西安郵電大學(xué) 計(jì)算機(jī)學(xué)院, 陜西 西安 710121)
摘要:簡(jiǎn)述計(jì)算機(jī)圖形學(xué)中走樣現(xiàn)象產(chǎn)生的原因、常見(jiàn)的走樣現(xiàn)象及延遲渲染技術(shù)。除介紹形態(tài)反走樣、實(shí)用性形態(tài)反走樣、子像素重建反走樣等算法的背景、理論和研究現(xiàn)狀外,重點(diǎn)討論適用于延遲渲染技術(shù)的各種后處理反走樣算法。通過(guò)對(duì)各種后處理反走樣算法的分析,探尋各種后處理反走樣技術(shù)的特點(diǎn)、應(yīng)用場(chǎng)合和發(fā)展趨勢(shì)。
關(guān)鍵詞:計(jì)算機(jī)圖形學(xué);延遲渲染;反走樣;后處理
計(jì)算機(jī)圖形學(xué)(Computer Graphics,CG)中的走樣(Aliasing)現(xiàn)象是伴隨著光柵化顯示器而出現(xiàn)的,采樣不充分引起的信息失真(即走樣)是造成顯示圖形出現(xiàn)“鋸齒(jaggies)”或“階梯狀(staircase)”現(xiàn)象的主要原因[1-3],為消除走樣而采用的技術(shù),被稱(chēng)為反走樣技術(shù)(Antialiasing,也可稱(chēng)為抗鋸齒、抗混疊等)[4]。
走樣主要包括幾何走樣[1-4]、紋理走樣[5-7],以及計(jì)算機(jī)動(dòng)畫(huà)中因幾何和紋理走樣產(chǎn)生的閃爍現(xiàn)象[3]。這些走樣現(xiàn)象嚴(yán)重地影響了圖形的顯示質(zhì)量,削弱了三維圖形的真實(shí)感,給人造成視覺(jué)上的不舒服,無(wú)法滿(mǎn)足人們對(duì)高質(zhì)量圖形追求,尤其是玩家對(duì)游戲品質(zhì)和速度的要求[8]。
1976年Franklin Crockett Crow[1]總結(jié)了走樣產(chǎn)生的原因和現(xiàn)象,1978年Edwin Catmull[4]第一次提出了反走樣概念并用隱藏面消除方法處理走樣。此后30多年來(lái),隨著信息論、半導(dǎo)體技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,工業(yè)界和學(xué)術(shù)界對(duì)反走樣技術(shù)進(jìn)行了深入的研究,提出了很多種反走樣算法以減少走樣現(xiàn)象的影響,來(lái)提高圖形的顯示質(zhì)量。目前,反走樣技術(shù)已被應(yīng)用到計(jì)算機(jī)動(dòng)畫(huà)、游戲、影視、虛擬現(xiàn)實(shí)應(yīng)用等多方面,尤其是動(dòng)漫行業(yè)的高額利潤(rùn)更是推動(dòng)了反走樣技術(shù)的發(fā)展。
人們對(duì)高品質(zhì)計(jì)算機(jī)圖形的追求永無(wú)止境,它推動(dòng)著計(jì)算機(jī)圖形學(xué)的發(fā)展,也促進(jìn)了圖形處理器(Graphic Processing Unit, GPU)性能不斷的改善。由于人們對(duì)數(shù)字圖像的走樣現(xiàn)象特別敏感,反走樣則可以平滑所顯示圖形的邊界,給人們提供較高畫(huà)質(zhì)感的顯示,因此,反走樣技術(shù)是計(jì)算機(jī)上顯示高品質(zhì)的圖形中的關(guān)鍵技術(shù)之一,受到了學(xué)術(shù)界和工業(yè)界的廣泛重視,也一直是計(jì)算機(jī)圖形學(xué)領(lǐng)域的研究熱點(diǎn)之一。
在計(jì)算機(jī)圖形學(xué)的發(fā)展過(guò)程中,先后出現(xiàn)前向渲染(forward shading)[9-10]和延遲渲染(deferred shading)[10-13]兩種圖形渲染模式,與渲染模式相應(yīng)的反走樣算法分別被稱(chēng)為前處理反走樣技術(shù)(包括幾何反走樣和紋理反走樣)[14-17]和后處理反走樣技術(shù)[18]。后處理反走樣可以通過(guò)編程的方式處理任何類(lèi)型的走樣,同時(shí)繼承了前處理反走樣算法思想的優(yōu)點(diǎn),具有較好的反走樣效果,是反走樣技術(shù)發(fā)展的主流方向。本文主要綜述后處理反走樣技術(shù)發(fā)展現(xiàn)狀,第2部分介紹計(jì)算機(jī)圖形學(xué)中走樣產(chǎn)生的原因,幾何走樣和紋理走樣現(xiàn)象;第3部分介紹前向渲染和延遲渲染的兩種渲染模式;第4部分論述后處理反走樣現(xiàn)有算法的原理和研究現(xiàn)狀;第5部分對(duì)后處理反走樣算法的優(yōu)缺點(diǎn)進(jìn)行了對(duì)比;最后展望反走樣技術(shù)的發(fā)展趨勢(shì)。
1走樣現(xiàn)象
計(jì)算機(jī)圖形學(xué)中走樣產(chǎn)生的實(shí)質(zhì)是采樣不足或采樣過(guò)多造成的信息失真,如圖1所示,其中黑色圓點(diǎn)表示采樣點(diǎn)。當(dāng)采樣條件不滿(mǎn)足奈奎斯特采樣間隔時(shí)會(huì)出現(xiàn)走樣現(xiàn)象[2-3],低頻率信號(hào)A和高頻率信號(hào)B得到完全一致的采樣點(diǎn),信號(hào)B采樣不足時(shí)就可能與信號(hào)A一樣,造成嚴(yán)重的走樣現(xiàn)象。計(jì)算機(jī)圖形學(xué)中根據(jù)走樣產(chǎn)生的階段可分為幾何走樣和紋理走樣。
圖1 采樣不足產(chǎn)生的走樣現(xiàn)象
1.1幾何走樣
計(jì)算機(jī)圖形學(xué)的圖形流水線[19]以圖元為基本單元,如圖2所示,圖元通常用頂點(diǎn)信息表示,基本的圖元包括點(diǎn)、線段或多邊形等,都屬于連續(xù)信息;片元是潛在的像素,包含位置、深度、顏色等離散信息。光柵化過(guò)程實(shí)質(zhì)是對(duì)連續(xù)的圖元進(jìn)行采樣得到離散片元的過(guò)程,也就是幾何走樣產(chǎn)生的過(guò)程。
圖2 圖形渲染框架
圖形本身所包含的頻率范圍是無(wú)限的,無(wú)論采樣頻率如何變化,都不可能滿(mǎn)足奈奎斯特采樣頻率,光柵化后必然存在走樣現(xiàn)象[2-3]。另外,理想的幾何圖形是由點(diǎn)、線、面等組成的,理想的點(diǎn)和線是沒(méi)有寬度的;光柵化后在顯示器上顯示的像素點(diǎn)是有大小的,便出現(xiàn)了現(xiàn)階梯狀或者鋸齒狀現(xiàn)象,即幾何走樣現(xiàn)象[14]。
階梯狀的直線走樣現(xiàn)象如圖3(a)所示。在繪制斜率較小的直線時(shí),因部分直線段無(wú)法被采樣從而造成斷裂現(xiàn)象[14],如圖3(b)所示。
(a) 階梯狀走樣現(xiàn)象 (b) 斷裂現(xiàn)象
圖3CG中的幾何走樣現(xiàn)象
當(dāng)被顯示的圖形相對(duì)較小時(shí),容易出現(xiàn)圖形的失真。圖4(a)矩形在像素中心點(diǎn)處,能夠采樣到被加寬顯示,圖4(b)矩形不能被采樣。這種細(xì)節(jié)丟失現(xiàn)象在計(jì)算機(jī)動(dòng)畫(huà)中就容易產(chǎn)生閃爍現(xiàn)象:當(dāng)前幀時(shí)矩形被加寬顯示,下一幀到來(lái)時(shí)矩形不顯示,這就會(huì)出現(xiàn)時(shí)隱時(shí)現(xiàn)的閃爍現(xiàn)象[1,9]。
(a) 當(dāng)前幀,細(xì)長(zhǎng)矩形被加寬顯示出來(lái)
(b) 下一幀到來(lái)時(shí),細(xì)長(zhǎng)矩形被丟棄
1.2紋理走樣
紋理走樣發(fā)生在紋理映射的過(guò)程,當(dāng)一個(gè)紋理映射到一個(gè)多邊形或曲面上并變換到屏幕坐標(biāo)時(shí),紋理的單個(gè)紋素很少與屏幕上的像素一一對(duì)應(yīng),根據(jù)所用變換和所用紋理映射,屏幕上單個(gè)像素可以對(duì)應(yīng)于一個(gè)紋素的一小部分(即放大,如圖5(a)所示)或一大批紋素(即縮小,如圖5(b)所示),通常會(huì)引起紋理走樣現(xiàn)象[5]。如圖5(c)中茶壺,就是紋素多余而且屏幕上的像素少所引起的。
(b) 紋理縮小
(c) 茶壺上的紋理走樣
紋理映射(也稱(chēng)紋理貼圖)[20]是用數(shù)組或者是數(shù)學(xué)函數(shù)表示的一維、二維或者三維紋理映射到三維表面的過(guò)程。一種常用的紋理映射方式是屏幕掃描方式也稱(chēng)逆向映射,該方式掃描每個(gè)屏幕坐標(biāo),計(jì)算每個(gè)屏幕坐標(biāo)所對(duì)應(yīng)的紋理坐標(biāo),然后將紋理坐標(biāo)對(duì)應(yīng)的紋素拷貝到屏幕上。如圖6所示,像素空間的單個(gè)像素B逆映射到紋理空間后變換為紋素即不規(guī)則的四邊形b(圖中淺色區(qū)域),像素空間該像素的采樣點(diǎn)C映射到紋理空間后變?yōu)榧y素中心點(diǎn)c,通過(guò)對(duì)紋理空間的區(qū)域b進(jìn)行采樣求得該紋素c的紋理參數(shù)。當(dāng)采用Mipmapping濾波[5-6]技術(shù)進(jìn)行采樣時(shí),根據(jù)最長(zhǎng)邊所圍成的方形區(qū)域(圖中區(qū)域a即圖中加粗邊正方形包圍的區(qū)域)進(jìn)行采樣,這樣就會(huì)造成采樣過(guò)多出現(xiàn)模糊現(xiàn)象[7,21]。但如果只對(duì)點(diǎn)c進(jìn)行采樣會(huì)造成欠采樣問(wèn)題,在計(jì)算機(jī)動(dòng)畫(huà)中就容易產(chǎn)生閃爍現(xiàn)象。
圖6 像素空間到紋理空間的逆映射
2渲染模式
為增加圖形真實(shí)感,通常在幾何處理后對(duì)圖形進(jìn)行紋理貼圖、光照計(jì)算、著色等處理,該過(guò)程被稱(chēng)為圖形渲染。常見(jiàn)渲染模式有前向渲染(即立即渲染)和延遲渲染。如圖7所示,VS表示頂點(diǎn)染色器(Vertex Shader),GS表示幾何染色器(Geometry Shader),F(xiàn)S表示片元染色器(Fragment Shader)。
(a) 前向渲染
(b) 延遲渲染
前向渲染是一種標(biāo)準(zhǔn)圖形渲染技術(shù),在支持這種技術(shù)的圖形加速引擎上,只要給加速引擎一個(gè)圖元,該圖元都需要經(jīng)過(guò)流水線的每一個(gè)渲染器,最后顯示到屏幕上。在前向渲染的頂點(diǎn)和片元染色器中,對(duì)每個(gè)光源,都要對(duì)每個(gè)頂點(diǎn)和每個(gè)片元進(jìn)行光照計(jì)算。幾何反走樣和紋理反走樣都是基于前向渲染實(shí)現(xiàn)的,被稱(chēng)為前處理反走樣。
延遲渲染[11-13]把幾何對(duì)象的渲染放到了圖形流水線的最后一級(jí),在渲染前增加了隱藏面消除,通過(guò)幾何緩沖區(qū)(G-Buffer)保存幾何對(duì)象的顏色、法線、世界空間坐標(biāo)等渲染信息,將光照計(jì)算一次完成。在圖形渲染中,光照計(jì)算是最復(fù)雜也是最耗時(shí)的一種運(yùn)算,延遲渲染只進(jìn)行一次光照計(jì)算,極大提高了渲染速度,目前已經(jīng)廣泛地應(yīng)用在實(shí)時(shí)場(chǎng)景渲染中。延遲渲染在流水線最后一級(jí)進(jìn)行光照計(jì)算,通常把這種基于延遲渲染的反走樣算法稱(chēng)為后處理反走樣,成為反走樣算法的發(fā)展主流。
3后處理反走樣
目前,后處理反走樣技術(shù)主要有邊緣反走樣技術(shù)[13,22-25]和混合反走樣技術(shù)[26-27]。邊緣反走樣算法的思想是先提取出圖像的邊緣信息,對(duì)邊緣信息進(jìn)行反走樣處理;混合反走樣算法是在邊緣反走樣算法的基礎(chǔ)上,利用像素細(xì)分為子像素的思想對(duì)提取出來(lái)的邊緣像素進(jìn)行反走樣處理。
3.1邊緣反走樣
最早的邊緣反走樣技術(shù)是2005年Shishkovtsov[13]提出的邊緣檢測(cè)(Edge-Detection)反走樣。Koonce[23]對(duì)該算法進(jìn)行了改進(jìn),得到的圖形質(zhì)量遠(yuǎn)遠(yuǎn)不如硬件反走樣技術(shù)得到的圖形,且處理速度也遠(yuǎn)遠(yuǎn)低于硬件反走樣處理的速度。2009年Intel工程師Alexander Reshetov[22]將形態(tài)學(xué)引入到計(jì)算機(jī)反走樣領(lǐng)域,出現(xiàn)了以形態(tài)反走樣(Morphological Antialiasing, MLAA)為代表的邊緣反走樣技術(shù),如快速近似反走樣(Fast Approximate Anti-Aliasing, FXAA)[28]、Jimenez提出的實(shí)用性形態(tài)反走樣(Practical Morphological Anti-Aliasing, J-MLAA)[29]、邊緣距離反走樣(Distance-to-edge Anti-Aliasing, DEAA)[18]、幾何緩存反走樣(Geometry Buffer Anti-Aliasing, GBAA)[18,30-32]和定向局部反走樣(Directionally Localized Anti-aliasing, DLAA)[33]等。
3.1.1MLAA
MLAA[22]是一種完全獨(dú)立于渲染管道的反走樣技術(shù),主要思想是用目標(biāo)像素與相鄰像素之間特征值的差異標(biāo)記出不連續(xù)像素,提取出圖像的輪廓像素,對(duì)輪廓像素和周?chē)南袼剡M(jìn)行混合,通過(guò)模糊邊緣像素達(dá)到反走樣的效果。
圖8 MLAA像素邊緣的幾何模式
MLAA對(duì)輪廓線的模式進(jìn)行預(yù)設(shè)置,如圖8所示可設(shè)置為L(zhǎng)-模式、U-模式和Z-模式,將提取出的輪廓邊緣與預(yù)設(shè)的模式進(jìn)行匹配,再根據(jù)相應(yīng)的混合方式進(jìn)行顏色混合。通常,U-模式和Z-模式可被分解為L(zhǎng)-模式(如圖8所示),因此只需討論L-模式的顏色混合方式。如圖9所示,虛線表示L-模式,連接L-模式兩條邊的中點(diǎn)V0和V2,線段V0V2把c5和d5兩個(gè)像素單元?jiǎng)澐譃閮蓚€(gè)梯形即灰色區(qū)域,通過(guò)梯形的面積可計(jì)算混合權(quán)重。計(jì)算公式為
cnew=(1-a)cold+acopposite,
其中a為梯形面積,cold為當(dāng)前像素的亮度值,copposite為相鄰像素的亮度值,cnew為混合后像素的亮度值。例如對(duì)黑白二值圖像,黑色亮度值為0,白色為1,每個(gè)像素的寬度為1,像素c5中梯形面積為 ,那么混合后像素c5的亮度值為
(1-1/3)×1+1/3×0=2/3。
圖9 MLAA相鄰像素的混合
MLAA最初是利用CPU進(jìn)行反走樣處理,速度較慢,隨后Intel公司在SIGGRAPH2010Talk上提出了適用于GPU處理的MLAA[29],在很大程度上提高了MLAA的運(yùn)行速度。MLAA優(yōu)點(diǎn)主要表現(xiàn)在以下幾個(gè)方面,MLAA只利用顏色信息進(jìn)行反走樣處理,計(jì)算相對(duì)簡(jiǎn)單;可完全并行且獨(dú)立于渲染管道,提高了處理器的利用率;MLAA得到的圖形質(zhì)量和四倍的超采樣(SuperSamplingAntialiasing,SSAA)相當(dāng)[22]。目前,MLAA已經(jīng)被應(yīng)用在游戲開(kāi)發(fā)平臺(tái)PS3中,開(kāi)發(fā)的游戲有WordofWarIII等。MLAA仍有不足之處,MLAA是對(duì)光柵化后的圖像進(jìn)行反走樣處理,對(duì)因采樣不足而造成的走樣現(xiàn)象MLAA無(wú)法處理;用基于顏色的邊緣檢測(cè)提取邊緣時(shí),光照的不同會(huì)造成對(duì)場(chǎng)景提取出邊緣的不同,因此對(duì)于實(shí)時(shí)性圖像而言,MLAA容易受到外界因素的影響。
3.1.2J-MLAA
針對(duì)MLAA的不足之處,JorgeJimenez在GPUPro2[34]中提出了J-MLAA。如圖10所示,J-MLAA的處理過(guò)程可分為3步,即邊緣提取、計(jì)算混合權(quán)值和像素混合,圖10(a)表示待處理的原始圖像,圖10(b)是提取出來(lái)的邊緣像素,灰色像素只有上方是邊緣像素,黑色像素只有左邊是邊緣像素,而框內(nèi)有白色圓圈的像素代表左方和上方都是邊緣像素,圖10(c)表示根據(jù)面積計(jì)算相應(yīng)的權(quán)值,圖10(d)將計(jì)算權(quán)值后的邊緣像素與原始圖像進(jìn)行混合得到最終的圖像。
(a) 原圖 (b) 檢測(cè)邊緣
(c) 計(jì)算混合面積 (d) 混合像素
第一步,邊緣提取。MLAA利用相鄰八個(gè)方向上(每個(gè)像素的上、下、左、右、左上角、左下角、右上角、右下角)的像素顏色信息進(jìn)行檢測(cè),計(jì)算量大且對(duì)透明場(chǎng)景處理效果較差。J-MLAA利用深度信息和亮度信息的檢測(cè),提高了反走樣效果;同時(shí),MLAA只對(duì)當(dāng)前像素的左方向像素和上方向像素進(jìn)行檢測(cè),避免像素的重復(fù)檢測(cè),減少了邊緣提取時(shí)間,如圖10(b)所示。
第二步,計(jì)算混合權(quán)值。MLAA逐像素進(jìn)行模式匹配,通過(guò)邊緣線與像素組成的面積作為權(quán)值進(jìn)行混合。對(duì)每個(gè)像素進(jìn)行距離搜索,速度過(guò)慢,對(duì)此J-MLAA提出用雙線性過(guò)濾的方式進(jìn)行搜索,以減少搜索時(shí)間(如圖11所示,灰色采樣點(diǎn)所在的像素表示邊緣像素,五角星標(biāo)記的是起始像素,每次檢測(cè)兩個(gè)像素標(biāo)記為菱形)。在模式檢測(cè)時(shí),易出現(xiàn)圖12(a)中模式混淆的情況,因此利用圖12(b)所示的改進(jìn)方案。同時(shí)用紋理取代幾何模式L-模式、U-模式和Z-模式,將像素混合所需要用到的面積進(jìn)行預(yù)先計(jì)算并存儲(chǔ),避免了大量的計(jì)算時(shí)間。預(yù)計(jì)算的面積有正負(fù)之分如L-模式,所以預(yù)先進(jìn)行紋理存儲(chǔ)時(shí)分為正負(fù)兩個(gè)通道,降低了處理時(shí)間。
圖11 雙線性過(guò)濾
(a) 雙線性檢測(cè)距離混淆情況
(b) 改進(jìn)方案
第三步,像素混合。將當(dāng)前像素與相鄰像素根據(jù)計(jì)算好的權(quán)值進(jìn)行混合,得到最終的圖像。J-MLAA相較于MLAA在速度上和質(zhì)量上都有所提高,然而與SSAA相比仍易產(chǎn)生模糊現(xiàn)象[18,26]。
3.1.3DEAA和FXAA
在MLAA算法思想的基礎(chǔ)上,DEAA[18]、FXAA[28]也相繼產(chǎn)生。DEAA與MLAA的不同之處在于兩者的顏色混合方式不同,MLAA根據(jù)重疊區(qū)域的面積進(jìn)行顏色混合,而DEAA是根據(jù)頂點(diǎn)與邊界之間的距離進(jìn)行顏色混合。FXAA[28]根據(jù)亮度提取邊緣,不需要考慮其他信息,因此FXAA的處理速度快,并且可對(duì)透明紋理的像素和著色后的像素進(jìn)行反走樣處理。FXAA也存在不足之處,F(xiàn)XAA是對(duì)像素進(jìn)行采樣而不是子像素,圖像的視覺(jué)效果不如多采樣(Multi-samplingAntialiasing,MSAA)和SSAA[18]。目前,F(xiàn)XAA已經(jīng)應(yīng)用到GTX480系列的顯卡所支持。
3.1.4GBAA和DLAA
繼FXAA算法之后,適用于延遲渲染技術(shù)的GBAA[18,30-31]和DLAA[18,33]分別被提出,其中GBAA是GPAA[28,32](Geometricpost-processanti-aliasing)的改進(jìn)算法。GPAA對(duì)渲染后的場(chǎng)景進(jìn)行幾何預(yù)處理提取出圖像的邊界線,利用邊界線水平方向和垂直方向上的采樣點(diǎn)與邊界線之間的距離進(jìn)行顏色混合。以垂直方向?yàn)槔?,如圖13所示,黑色直線段表示邊界線,如果邊界線附近垂直方向的采樣點(diǎn)與邊界線之間的距離小于0.5個(gè)像素寬度,則把該距離作為權(quán)重對(duì)相鄰像素進(jìn)行顏色混合,混合方式類(lèi)似于Wu算法[35]。
圖13 GPAA算法相鄰采樣點(diǎn)的混合處理
GPAA仍需要較大的內(nèi)存存儲(chǔ)圖像的幾何邊界線,并且對(duì)幾何密度較大的邊界線再次進(jìn)行混合渲染使問(wèn)題復(fù)雜化,因此Humus[18,30-31]在GPAA的基礎(chǔ)上提出了GBAA。GBAA通過(guò)幾何著色器把圖像的幾何信息以及邊界距離信息存儲(chǔ)在幀緩存中,再利用插值和頂點(diǎn)著色器找到離采樣點(diǎn)最近的邊界線,對(duì)于距離小于0.5個(gè)像素的采樣點(diǎn)進(jìn)行顏色混合,否則不做任何處理。為了防止圖像出現(xiàn)間隙,擴(kuò)大邊界線附近混合區(qū)域,增加采樣點(diǎn),從而減少失真現(xiàn)象。相比于GPAA,GBAA不需要進(jìn)行幾何預(yù)處理和光柵化操作,減少了內(nèi)存資源和硬件消耗。
DLAA是VisceralGames公司提出的一種后處理反走樣技術(shù),主要思想是先對(duì)圖像的水平和垂直邊進(jìn)行模糊處理,再?gòu)奶幚砗蟮膱D像中提取出邊緣信息,根據(jù)邊緣的長(zhǎng)邊和短邊分別進(jìn)行反走樣處理,具體實(shí)現(xiàn)可參考文獻(xiàn)[33]。目前,DLAA主要用于VisceralGames公司開(kāi)發(fā)的一系列游戲中,在PlayStation3(PS3)和X360游戲平臺(tái)上試驗(yàn)速度和質(zhì)量都有所提升。
3.2混合反走樣
混合反走樣算法主要包括子像素重建反走樣(SubpixelReconstructionAnti-aliasing,SRAA)[27]、子像素形態(tài)反走樣(SubpixelAnti-aliasing,SMAA)[26]以及自適應(yīng)邊緣反走樣技術(shù)[25]等。
3.2.1SRAA
SRAA[27]是NVIDIA公司針對(duì)延遲渲染和幾何邊緣產(chǎn)生的走樣現(xiàn)象而提出的后處理反走樣技術(shù)。首先,SRAA把MSAA的深度信息和法向量信息存儲(chǔ)到G-Buffer中,著色時(shí)對(duì)顏色緩存中的信息進(jìn)行采樣,把采樣點(diǎn)的顏色信息也存儲(chǔ)到G-Buffer;其次,SRAA對(duì)G-Buffer中的信息進(jìn)行雙線性過(guò)濾提取圖像的邊緣信息,這種邊緣提取的方法與J-MLAA的邊緣提取算法類(lèi)似;最后,SRAA對(duì)邊緣信息進(jìn)行子像素重建。
延遲渲染把采樣點(diǎn)的信息存儲(chǔ)在G-Buffer中,如果利用子像素的思想進(jìn)行采樣,G-Buffer中采樣點(diǎn)的信息會(huì)成倍增加。為了減少G-Buffer的負(fù)擔(dān),SRAA提出用G-buffer中的子像素著色信息重構(gòu)其他MSAA子像素的著色信息。SRAA將一個(gè)像素劃分成2n個(gè)子像素,這些子像素中包括一個(gè)著色采樣子像素(Shadedsample)和若干個(gè)幾何采樣子像素(Geometry),為了簡(jiǎn)單起見(jiàn),著色采樣子像素一般是MSAA中第一個(gè)幾何采樣子像素。幾何采樣點(diǎn)的顏色值是由鄰近像素中的著色采樣點(diǎn)的顏色值重構(gòu)的,如圖14所示。在SRAA算法中定義著色采點(diǎn)和重構(gòu)采樣點(diǎn)之間的距離為
max{d(P(x0,n0),x1),d(P(x1,n1),x0)},
其中P(xi,ni)表示由點(diǎn)xi,和向量ni確定的平面,d(P(x0,n0),x1)表示是點(diǎn)x1到平面P(xi,ni)的距離,d(P(x1,n1),x0)表示點(diǎn)x0到平面(P(x1,n1)距離,使用這個(gè)距離作為重構(gòu)濾波器的一個(gè)參數(shù)。
圖14 SRAA算法子像素重建過(guò)程
如圖14所示,每個(gè)像素被細(xì)分為4×4個(gè)子像素,每個(gè)幾何采樣點(diǎn)的顏色和著色信息由相鄰的著色采樣點(diǎn)共同決定,每個(gè)著色采樣點(diǎn)的權(quán)值與著色采樣點(diǎn)到幾何采樣點(diǎn)的距離成正比。SRAA利用低成本的幾何信息得到很好的著色效果和反走樣效果。SRAA把MLAA和MSAA相結(jié)合,在邊緣反走樣處理中應(yīng)用SRAA可獲得較高的圖像質(zhì)量,并具有較快的處理速度。但是由于SRAA只對(duì)幾何邊緣進(jìn)行反走樣處理,因此不能處理陰影邊緣走樣現(xiàn)象[18]。
3.2.2SMAA
SMAA[26]是Intel公司提出的一種將J-MLAA和SSAA/MSAA相結(jié)合的一種改進(jìn)算法,下面是SMAA算法的主要改進(jìn)之處。
(1) 為了避免檢測(cè)到人眼無(wú)法觀察到邊(稱(chēng)之為虛假邊緣),SMAA對(duì)待選像素4個(gè)方向上的相鄰像素設(shè)定雙向閾值,通過(guò)局部對(duì)比檢測(cè)實(shí)際需要進(jìn)行反走樣處理的邊緣,提高了時(shí)域穩(wěn)定性和圖像質(zhì)量。
(2)SMAA可以保持原有圖像中明顯的幾何邊緣,如兩條邊的相交處,而MLAA則將這種顯著的幾何邊緣變圓(roundingcorner)。鋸齒一般只有一個(gè)像素長(zhǎng)的交叉邊,而顯著的幾何邊緣一般具有兩個(gè)以上的像素,為了保持這種幾何形狀,SMAA用一個(gè)影響因子(roundfactor)來(lái)修正MLAA算法的計(jì)算的交叉區(qū)域的面積。
(3)J-MLAA根據(jù)垂直和水平方向的匹配模式,預(yù)存儲(chǔ)了進(jìn)行顏色混合的面積,SMAA增加了對(duì)角線模式的預(yù)計(jì)算面積,通過(guò)查找算法,有效地改善了對(duì)角線反走樣效果。
(4) 通過(guò)對(duì)水平和垂直方向上進(jìn)行雙向搜索,得到更加準(zhǔn)確的距離。
(5) 結(jié)合SSAA或MSAA對(duì)邊緣像素進(jìn)行子像素細(xì)分,能夠得到更好的反走樣效果。
(6)SMAA增加了時(shí)間二次投影(TemporalReprojection),消除了連續(xù)的動(dòng)畫(huà)幀中采樣線性混合顏色方式中產(chǎn)生的鬼影。
SMAA是一種質(zhì)量、性能及速度均相對(duì)較好的后處理反走樣算法。SMAA的模式相當(dāng)靈活,可根據(jù)實(shí)際場(chǎng)景選擇相應(yīng)的SMAA模式(如表1,x表示算法的改進(jìn)強(qiáng)度,例如SMAA1x就表示只在J-MLAA的基礎(chǔ)上進(jìn)行了模式處理方面的改進(jìn),而SMAAT2x則表示在SMAA1x的基礎(chǔ)上增加了時(shí)域SSAA)。
表1 SMAA的幾種模式
4后處理反走樣算法對(duì)比
目前,各種后處理反走樣算法被廣泛應(yīng)用在圖形顯卡和游戲開(kāi)發(fā)中,顯著提高了畫(huà)面效果,使得人們得到更好的視覺(jué)體驗(yàn),但對(duì)圖形細(xì)節(jié)的反走樣處理效果不夠理想,高品質(zhì)動(dòng)畫(huà)的制作過(guò)程仍出現(xiàn)閃爍現(xiàn)象。本部分總結(jié)了現(xiàn)有后處理反走樣算法的優(yōu)缺點(diǎn),如表2所示,人們可根據(jù)不同場(chǎng)景需求選取相應(yīng)的反走樣算法。
表2 后處理反走樣技術(shù)的優(yōu)缺點(diǎn)對(duì)比
5結(jié)束語(yǔ)
本文對(duì)計(jì)算機(jī)圖形學(xué)中的走樣現(xiàn)象、走樣產(chǎn)生的原因進(jìn)行了分析,對(duì)適用于延遲渲染的后處理反走樣算法進(jìn)行對(duì)比分析。伴隨著半導(dǎo)體工藝的發(fā)展,GPU的計(jì)算速度不斷提高,大型復(fù)雜場(chǎng)景的應(yīng)用也越來(lái)越多,因此高質(zhì)量的后處理反走樣算法將會(huì)得到進(jìn)一步的發(fā)展,尤其是與硬件相結(jié)合的后處理反走樣算法將受到更多的關(guān)注。由于人們對(duì)圖形質(zhì)量的要求越來(lái)越高,因此反走樣算法將更加關(guān)注對(duì)圖形細(xì)節(jié)的處理,如陰影、折痕、頭發(fā)、天線以及更加細(xì)小的三角形等產(chǎn)生的走樣;此外,更加高效率的實(shí)時(shí)圖形反走樣算法將隨著計(jì)算機(jī)動(dòng)畫(huà)的快速發(fā)展而得到進(jìn)一步的研究。
參考文獻(xiàn)
[1]CROWFC.Thealiasingproblemincomputer-synthesizedshadedimages[D/OL].SaltLakeCity:UinversityofUtah,1976:1-91[2015-02-01].http://www.cs.northwestern.edu/~ago820/cs395/Papers/Crow_1977.pdf.
[2]CROWFC.Thealiasingproblemincomputer-generatedshadedimages[J/OL].CommunicationsoftheAcm, 1997, 20(11): 799-805[2015-12-01].http://dl.acm.org/citation.cfm?id=359869&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/359863.359869.
[3]CROWFC.Acomparisonofantialiasingtechnique[J].IEEEComputerGraphics&Applications, 1981, 1(1):40-48.DOI: 10.1109/MCG.1981.1673810.
[4]CATMULLE.Ahidden-surfacealgorithmwithanti-aliasing[J/OL].AcmSiggraphComputerGraphics, 1978, 12(3): 6-11 [2015-12-01].http://dl.acm.org/citation.cfm?id=807360&CFID=575016272&CFTOKEN=76878742.DOI: 10.1145/965139.807360.
[5]EWINSJP,WALLERMD.MIP-maplevelselectionfortexturemapping[J/OL].IEEETransactionsonVisualizationandComputerGraphics, 1998, 4(4): 317-329[2015-12-01].http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=765326.DOI:10.1109/2945.765326.
[6]WILLIAMSL.Pyramidalparametrics[J/OL].ACMSIGGRAPHComputerGraphics, 1983, 17(3):1-11[2015-12-01].http://dl.acm.org/citation.cfm?id=801126&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/964967.801126.
[7]HECKBERTP.TextureMappingPolygonsinPerspective[EB/OL]. [2015-12-01].http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.65.5104&rep=rep1&type=pdf.
[8]LELERWJ.Humanvision,anti-aliasing,andthecheap4000linedisplay[J/OL].ACMSiggraphComputerGraphics, 1980, 14(3):308-313 [2015-12-01].http://dl.acm.org/citation.cfm?id=807509&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/965105.807509.
[9]OLSSONO,BILLETERM,ULFA.Tiledandclusteredforwardshading:supportingtransparencyandMSAA[C/OL]//ACMSIGGRAPH2012Talks, 2012:37[2015-12-01].http://dl.acm.org/citation.cfm?id=2343095&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/2343045.2343095.
[10]ADEERINGM,WINNERS,SCHEDIWYB.TheTriangleProcessorandNormalVectorShader:AVLSISystemforHighPerformanceGraphics[J/OL].ACMSIGGRAPHComputerGraphics, 1988, 22(4):21-30 [2015-12-01].http://dl.acm.org/citation.cfm?id=378468&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/378456.378468.
[11]SOLERC,HOELO,ROCHETF.Adeferredshadingpipelineforreal-timeindirectillumination[C/OL]//ACMSIGGRAPH2010Talks, 2010:18[2015-12-01].http://dl.acm.org/citation.cfm?id=1837049&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/1837026.1837049.
[12]HARGREAVESS,MARKH.DeferredShading[EB/OL]. [2015-12-01].http://amd.wpengine.com/wordpress/media/2012/10/D3DTutorial_DeferredShading.pdf.
[13]SHISHKOVTSOVO.DeferredShadinginS.T.A.L.K.E.R[M/OL].[2005-12-01].http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html.
[14]GOSSME,WUK.Studyofsupersamplingmethodsforcomputergraphicshardwareantialiasing[J/OL].[2015-12-01].http://www.hpl.hp.com/techreports/1999/HPL-1999-121R1.pdf.
[15]BEETSK,BARROND.Super-samplinganti-aliasinganalyzed[EB/OL].[2015-12-01].http://www.x86-secret.com/articles/divers/v5-6000/datasheets/FSAA.pdf.
[16]LAINES,AILAT.Aweightederrormetricandoptimizationmethodforantialiasingpatterns[J].ComputerGraphicsForum, 2006, 25(1): 83-94.
[17]YOUNGP.CoverageSampledAntialiasing[EB/OL].[2015-12-01].http://www.nvidia.com/object/coverage-sampled-aa.html.
[18]JIMENEZJ,GUTIERREZD,YANGJ,etal.Filteringapproachesforreal-timeanti-aliasing[C/OL]//ACMSIGGRAPH2011Courses, 2011:6[2015-12-01].http://dl.acm.org/citation.cfm?id=2037642&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/2037636.2037642.
[19]ANGELE,SHREINERD.InteractiveComputerGraphics:ATop-DownApproachwithShader-BasedOpenGL[M]. 6thed.SchweizAG:Pearson, 2011:1-768.
[20]HECKBERTPS.SurveyofTextureMapping[J/OL].ComputerGraphics&ApplicationsIEEE, 1986, 6(11): 56-67[2015-12-01].http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4056764.DOI:10.1109/MCG.1986.276672.
[21]CROWFC.Summed-areatablesfortexturemapping[J/OL].AcmSiggraphComputerGraphics, 1984, 18(3):207-212 [2015-12-01].http://dl.acm.org/citation.cfm?id=808600&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/964965.808600.
[22]RESHETOVA.MorphologicalAntialiasing[C/OL]//ConferenceonHighPerformanceGraphics, 2009: 109-116[2015-12-01].http://dl.acm.org/citation.cfm?id=1572787&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/1572769.1572787.
[23]KOONCER.DeferredShadinginTabulaRasa[M/OL].[2015-12-01].http://http.developer.nvidia.com/GPUGems3/gpugems3_ch19.html.
[24]LAURWH.Anefficientlow-costantialiasingmethodbasedonadaptivepostfiltering[J/OL].IEEETransactionsonCircuits&SystemsforVideoTechnology, 2003, 13(3):247-256[2015-12-01].http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1193041.DOI:10.1109/TCSVT.2003.809825.
[25]IOURCHAK,YANGJC,POMIANOWSKIA.Adirectionallyadaptiveedgeanti-aliasingfilter[C/OL]//ConferenceonHighPerformanceGraphics,2009:127-133.http://dl.acm.org/citation.cfm?id=1572789&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/1572769.1572789.
[26]JIMENEZJ,ECHEVARRIAJI,SOUSAT,etal.SMAA:EnhancedSubpixelMorphologicalAntialiasing[J].ComputerGraphicsForum, 2012, 31(2):355-364.http://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf.DOI:10.1111/j.1467-8659.2012.03014.x.
[27]CHAJDASMG,MCGUIREM,LUEBKED.Subpixelreconstructionantialiasingfordeferredshading[C/OL]//SymposiumonInteractive3dGraphics&Games, 2011:15-22[2015-12-01].http://dl.acm.org/citation.cfm?id=1944748&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/1944745.194474.
[28]LOTTEST.FXAA[EB/OL].[2015-12-01].http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf.
[29]BIRIV,HERUBELA,DEVERLY.PracticalmorphologicalantialiasingontheGPU[C/OL]//SiggraphAcmSiggraphTalks, 2010: 45[2015-12-01].http://dl.acm.org/citation.cfm?id=1837085&CFID=575016272&CFTOKEN=76878742.DOI: 10.1145/1837026.1837085.
[30]PERSSONE.GeometricAntialiasingMethods[M/OL].[2015-12-01]〉http://my.safaribooksonline.com/9781439887943/4_geometric_antialiasing_metho
[31]PERSSONE.GeometryBufferAnti-Aliasing(GBAA)[EB/OL].[2015-12-01].http://www.humus.name/index.php?page=3D&ID=87.
[32]PERSSONE.GeometricPost-processAnti-Aliasing(GPAA)[EB/OL].[2015-12-01].http://www.humus.name/index.php?page=3D&ID=86.
[33]ANDREEVD.Directionallylocalizedanti-aliasing(DLAA)[C/OL]//GameDevelopersConference2011.[2015-12-01].http://and.intercon.ru/releases/talks/dlaagdc2011/.
[34]JIMENEZJ,MASIAB,ECHEVARRIAJI,etal.PracticalMorphologicalAnti-Aliasing[M/OL].[2015-12-01].http://www.iryoku.com/mlaa.
[35]WUXL.Anefficientantialiasingtechnique[J/OL].AcmSiggraphComputerGraphics, 1991, 25(4): 143-152[2015-12-01].http://dl.acm.org/citation.cfm?id=807360&CFID=575016272&CFTOKEN=76878742.DOI:10.1145/127719.122734.
[責(zé)任編輯:陳文學(xué)]
Survey on the post-processing anti-aliasing techniques
DU Huimin1, DU Qinqin2, JI Kaibo1, JIANG Bianbian1, GUO Chongyu1
(1. School of Electronic Engineering ,Xi’an University of Posts and Telecommunications,Xi’an 710121,China;2. School of Computer Science, Xi’an University of Posts and Telecommunications,Xi’an 710121,China)
Abstract:The aliasing phenomenon, including why it comes and how it is treated, is discussed. The background, theory and research status of post-processing anti-aliasing such as Morphological Antialiasing, Subpixel Reconstruction Anti-aliasing, Practical Morphological Anti-Aliasing are introduced. Besides, the post-processing anti-aliasing algorithms suitable for deferred shading are figured out prominently. By analyzing various post-processing anti-aliasing algorithms, their characteristics, applications and future trends are systemically detected.
Keywords:computer graphics, deferred shading, anti-aliasing, post-processing.
doi:10.13682/j.issn.2095-6533.2016.01.002
收稿日期:2016-01-11
基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61136002);西安市科技發(fā)展計(jì)劃資助項(xiàng)目(CXY1440(10))
作者簡(jiǎn)介:杜慧敏(1966-),女,博士,教授,從事計(jì)算機(jī)體系結(jié)構(gòu)和計(jì)算機(jī)圖形學(xué)研究。E-mail: 228660529@qq.com 杜琴琴(1989-),女,碩士,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)。E-mail: 1024505032@qq.com
中圖分類(lèi)號(hào):TP399
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):2095-6533(2016)01-0007-09