面向延遲著色的統(tǒng)一反走樣方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)圖形學(xué)反走樣領(lǐng)域,具體設(shè)及一種面向延遲著色的統(tǒng)一反走樣 方法。
【背景技術(shù)】
[0002] 反走樣是計(jì)算機(jī)圖形學(xué)中的核屯、問(wèn)題之一,廣泛應(yīng)用于=維計(jì)算機(jī)游戲、計(jì)算機(jī) 動(dòng)畫、虛擬現(xiàn)實(shí)、影視后期制作等諸多應(yīng)用中。它能有效地消除或減少圖像中的走樣瑕疵, 從而提高圖像視覺(jué)質(zhì)量。傳統(tǒng)的超采樣反走樣算法(SSAA)通常對(duì)屏幕上的每個(gè)像素計(jì)算 多個(gè)采樣點(diǎn)的著色結(jié)果,然后計(jì)算它們的加權(quán)平均。該方法反走樣效果好但計(jì)算代價(jià)較高。 多重采樣反走樣算法(MSAA)有效減少了像素著色程序的執(zhí)行次數(shù),W其高效性在很長(zhǎng)時(shí) 間內(nèi)成為了最為流行的反走樣算法。然而,MSAA和近年來(lái)實(shí)時(shí)應(yīng)用中主流的延遲著色繪制 技術(shù)并不兼容。延遲著色是一種把=維繪制對(duì)象轉(zhuǎn)化到二維圖像空間進(jìn)行處理的技術(shù),在 處理復(fù)雜光照條件和多光源的繪制應(yīng)用中具有強(qiáng)大的性能優(yōu)勢(shì)。但由于它的實(shí)際著色操作 對(duì)象是二維的幾何緩存佑-buffer),MSAA會(huì)由于場(chǎng)景幾何信息的丟失而退化為SSAA,從而 喪失其優(yōu)勢(shì)。
[0003] 近年來(lái),后期處理的反走樣算法因其與延遲著色技術(shù)的良好兼容性,越來(lái)越多地 成為研究和應(yīng)用的熱點(diǎn)。該類方法的核屯、思想是把場(chǎng)景信息W二維紋理的形式存儲(chǔ),并借 助該些信息進(jìn)行場(chǎng)景的反走樣重建。該類算法主要可W分為兩類:基于圖像分析的反走樣 算法(ReshetovA.Morphologicalantialiasing[C].ProceedingsoftheConference onHi曲PerformanceGraphics2009.New化rk;ACMPress,2009:109-116)和基于幾何 輔助分析的反走樣算法(QiajdasMG,McGuireM,LuebkeD.Subpixelreconstruction antialiasingfordeferredshading[C].SymposiumonInteractive3DGraphicsand Games.NewYork;ACMPress,2011 ;15-22)。前者大多使用啟發(fā)式的形態(tài)學(xué)分析方法來(lái)確定 圖像邊界的形狀和長(zhǎng)度,具有簡(jiǎn)單高效的優(yōu)勢(shì),但會(huì)因?yàn)闉V波的方向受邊界方向模板的限 制而導(dǎo)致邊界估計(jì)得不平滑。后者使用幾何信息更加準(zhǔn)確地重構(gòu)場(chǎng)景的幾何邊界,缺點(diǎn)是 需要存儲(chǔ)和訪問(wèn)額外的G-buffer,并且無(wú)法有效地識(shí)別和處理顏色紋理的走樣。
[0004] 兩類算法分別在處理幾何邊界走樣和顏色紋理走樣上具有各自的優(yōu)勢(shì),但是如何 有機(jī)地把兩者結(jié)合使用W處理各種走樣現(xiàn)象,存在如下挑戰(zhàn);1)高效地組織兩種算法所需 的G-buffer,使得存儲(chǔ)開銷盡可能??;2)由于像素級(jí)別的圖像分析反走樣方法和子像素級(jí) 別的幾何輔助反走樣方法的方法原理和尺度不一致,可能導(dǎo)致在動(dòng)態(tài)場(chǎng)景中兩者交界處會(huì) 產(chǎn)生像素之間過(guò)渡不平滑的問(wèn)題;3)基于圖像分析的方法可能會(huì)在動(dòng)態(tài)場(chǎng)景中存在像素 閃爍的現(xiàn)象,即時(shí)間域上的走樣。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明針對(duì)現(xiàn)有反走樣技術(shù)不足,提供一種能夠有效地結(jié)合基于圖像分析的反走 樣和基于幾何輔助分析的反走樣兩類算法優(yōu)勢(shì),且減輕兩類算法結(jié)合后導(dǎo)致的像素之間過(guò) 渡不平滑、動(dòng)態(tài)場(chǎng)景中存在像素閃爍的現(xiàn)象出現(xiàn),同時(shí)還能確保G-buffer的存儲(chǔ)開銷小的 面向延遲著色的統(tǒng)一反走樣方法。
[0006] 為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
[0007] 一種面向延遲著色的統(tǒng)一反走樣方法,包括:
[000引 (1)W屏幕分辨率繪制場(chǎng)景,并把屏幕像素的顏色、深度、面片序號(hào)W及S角形幾 何信息存入G-buffer;
[0009] (2)對(duì)屏幕像素按幾何邊界和非幾何邊界進(jìn)行分類;
[0010] (3)使用基于=角形的反走樣濾波對(duì)幾何邊界像素進(jìn)行反走樣處理;使用基于子 像素形態(tài)學(xué)分析的反走樣濾波對(duì)非幾何邊界像素進(jìn)行反走樣處理;
[0011] (4)對(duì)步驟(3)反走樣處理后的結(jié)果使用重投影算法對(duì)所有屏幕像素進(jìn)行時(shí)間域 上的濾波。
[0012] 所述=角形幾何信息包括覆蓋=角形與對(duì)應(yīng)屏幕像素附近的子像素之間的位置 關(guān)系。且像素顏色和深度、面片序號(hào)可存儲(chǔ)為較低精度的格式。
[001引本發(fā)明所述的G-buffer信息存儲(chǔ)如下;
[0014] 對(duì)于每個(gè)屏幕像素,記錄覆蓋其像素中屯、的離視點(diǎn)最近的=角形(簡(jiǎn)稱覆蓋=角 形)與像素附近的子像素之間的位置關(guān)系。本發(fā)明方法沒(méi)有存儲(chǔ)覆蓋=角形的幾何,而是 利用高效地shader計(jì)算,存儲(chǔ)S角形覆蓋信息,進(jìn)而W很小的時(shí)間代價(jià)(>〇. 1ms),降低了 G-buffer的存儲(chǔ)空間代價(jià)和訪存代價(jià)。
[0015]G-buffer所存儲(chǔ)的數(shù)據(jù)中,像素中屯、的顏色和深度、覆蓋S角形及其面片序號(hào)、深 度在覆蓋S角形上的偏導(dǎo)等信息都可W從GPU繪制流水線中獲取。而步驟(1)中提到的深 度、法向等幾何信息僅僅用于步驟(3)中幾何邊界提取和采樣信息的篩選,并不用于精確 地計(jì)算,因此可W存儲(chǔ)為較低精度的格式,并不影響算法的結(jié)果。而歷史像素顏色應(yīng)用于步 驟(4)中重投影的時(shí)間域反走樣算法時(shí),存儲(chǔ)前一帖的像素顏色,W便對(duì)當(dāng)前帖進(jìn)行顏色 平滑。
[0016] 本發(fā)明所述的屏幕像素分類如下:
[0017] 幾何邊界像素通常出現(xiàn)在幾何不連續(xù)的區(qū)域,在多邊形網(wǎng)格構(gòu)成的場(chǎng)景中表現(xiàn) 為;輪廓線邊界、網(wǎng)格邊緣邊界和折皺邊界等形式,為了對(duì)屏幕像素按幾何邊界和非幾何邊 界進(jìn)行分類,作為優(yōu)選,步驟(2)中分類時(shí),是根據(jù)相鄰屏幕像素之間的深度和法向的差異 來(lái)進(jìn)行檢測(cè)的。
[0018] 作為優(yōu)選,相鄰屏幕像素之間的深度和法向的差異檢測(cè)方法為:
[0019] 檢測(cè)當(dāng)前屏幕像素與4個(gè)相鄰屏幕像素的深度和法向的差異,當(dāng)差異大于用戶設(shè) 定的闊值時(shí),該屏幕像素為幾何邊界像素;否則,該屏幕像素為非幾何邊界像素。判斷公式 如下:
[0020] IZ-ZneighborI I>K
[002U 1-| In ? rineighbJ I > tn
[0022] 其中,z表示屏幕像素的深度;
[002引Znei郵。r表示其相鄰像素的深度;
[0024] n表示屏幕像素的法向;
[002引rinei郵。r表示其相鄰像素的法向。
[0026] 公式中t,取值取決于場(chǎng)景模型的尺度和精細(xì)程度,t。的取值決定了場(chǎng)景中折皺邊 界提取的完整程度。
[0027] 為了對(duì)幾何邊界像素進(jìn)行反走樣處理,作為優(yōu)選,步驟(3)中基于=角形的反走 樣濾波方法為:
[002引針對(duì)目標(biāo)子像素,將其所在的屏幕像素W及屏幕像素的八連通像素區(qū)域作為9個(gè) 顏色采樣點(diǎn),從中選取和目標(biāo)子像素具有幾何相關(guān)性的屏幕像素,根據(jù)選取出的屏幕像素 的顏色信息進(jìn)行插值計(jì)算,得到目標(biāo)子像素的顏色;
[0029] 針對(duì)每個(gè)待處理的屏幕像素,將其包含的所有子像素顏色進(jìn)行混合得到該屏幕像 素反走樣的像素顏色。
[0030] 選取和目標(biāo)子像素具有幾何相關(guān)性的屏幕像素的步驟為:讀取9個(gè)顏色采樣點(diǎn)對(duì) 應(yīng)的覆蓋=角形,根據(jù)各覆蓋=角形與目標(biāo)子像素的關(guān)系,W及與目標(biāo)子像素的顏色差異 對(duì)顏色采樣點(diǎn)進(jìn)行過(guò)濾;
[0031] 然后比較保留顏色采樣點(diǎn)對(duì)應(yīng)的面片序號(hào),并驗(yàn)證保留顏色采樣點(diǎn)是否對(duì)應(yīng)同一 覆蓋S角形。
[0032] 為了對(duì)非幾何邊界像素進(jìn)行反走樣處理,作為優(yōu)選,步驟(3)中基于子像素形態(tài) 學(xué)分析的反走樣濾波方法如下:
[0033] 針對(duì)待處理屏幕像素中的目標(biāo)子像素,沿上、下、左、右四個(gè)方向檢測(cè)像素顏色,直 到找到與當(dāng)前像素顏色不同的像素或達(dá)到最大捜索距離為止;
[0034] 根據(jù)四個(gè)方向上的捜索距離得到四個(gè)方向上的對(duì)應(yīng)的權(quán)值使用該權(quán)值混合 目標(biāo)子像素上、下、左、右四個(gè)相鄰像素的顏色值,作為目標(biāo)子像素反走樣顏色的計(jì)算值;
[0035] 當(dāng)一個(gè)屏幕像素內(nèi)所有子像素的顏色值確定后,取平均值作為該屏幕像素最終的 反走樣顏色結(jié)果。
[0036] 作為優(yōu)選,在計(jì)算捜索距離時(shí),根據(jù)捜索結(jié)果得到四個(gè)方向上像素級(jí)別的捜索長(zhǎng) 度后,使用=角形覆蓋信息判斷目標(biāo)子像素和其所在像素的中屯、是否對(duì)應(yīng)同一覆蓋=角 形;
[0037] 若目標(biāo)子像素和其所在像素的中屯、對(duì)應(yīng)同一覆蓋=角形,根據(jù)目標(biāo)子像素相對(duì)于 像素中屯、