• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于稀疏超采樣的時間性反走樣算法

      2021-04-10 06:03:12陳文倩張嚴(yán)辭
      圖學(xué)學(xué)報 2021年1期
      關(guān)鍵詞:走樣掩碼緩沖區(qū)

      李 根,陳文倩,張嚴(yán)辭

      基于稀疏超采樣的時間性反走樣算法

      李 根,陳文倩,張嚴(yán)辭

      (四川大學(xué)視覺合成圖形圖像技術(shù)國防重點學(xué)科實驗室,四川 成都 610065)

      針對時間性反走樣算法在處理幀間復(fù)用時,若場景中有較多高頻顏色區(qū)域或精細(xì)模型會造成重影、模糊、閃爍及子像素細(xì)節(jié)丟失的問題,提出了基于稀疏超采樣的時間性反走樣算法?;舅枷胧?,在時間性反走樣算法的基礎(chǔ)上,對于無法復(fù)用歷史幀像素,重新引入空間域的超采樣,利用剔除算法以避免不必要的繪制開銷,實現(xiàn)對場景的稀疏超采樣。實驗結(jié)果表明,該算法能夠得到與超采樣算法媲美的反走樣效果,并具有更高的渲染效率,有效避免重影、模糊、閃爍及子像素細(xì)節(jié)丟失的問題。

      時間性反走樣算法;稀疏;超采樣;剔除;復(fù)用

      反走樣算法(anti-aliasing,AA)[1]在提高渲染畫面的視覺效果質(zhì)量方面有著重要的作用,因此在電影、游戲、虛擬現(xiàn)實等諸多領(lǐng)域具有極其重要的意義和價值。

      實時的AA可分為基于超采樣和后處理2大類[2]。超采樣反走樣(super-sampling anti-aliasing,SSAA)[3]通過對每個像素點計算多個子采樣點,以得到較好的反走樣效果,并能有效地減少由分辨率限制導(dǎo)致的幾何走樣和著色走樣問題,但在著色計算、內(nèi)存占用和傳輸帶寬方面有巨大的開銷。多重采樣反走樣(multi-sample anti-aliasing,MSAA)[4]將可見性函數(shù)從著色中分離,大大減少了計算量。MSAA對于幾何圖形光柵化導(dǎo)致的走樣問題有明顯的改進,但由于每個像素只進行一次著色計算,未能解決著色導(dǎo)致的走樣問題,且因為將每個像素的著色計算結(jié)果復(fù)制給子采樣點,也未解決SSAA的內(nèi)存高占用的問題。覆蓋采樣反走樣(coverage sampling aniti-aliasing,CSAA)[5]和增強質(zhì)量反走樣(enhanced quality anti-aliasing,EQAA)[6]以較高的分辨率存儲像素的覆蓋率,進一步將覆蓋率從可見性中分離,降低了帶寬及存儲開銷。但這些算法無法解決著色走樣問題且難以與延遲著色(deferred shading)[7]框架兼容。

      RESHETOV[8]提出形態(tài)學(xué)反走樣(morpho logical anti-aliasing,MLAA),將邊緣分為幾種特定的模式并在原始圖像中進行匹配,可根據(jù)各自的規(guī)則計算混合顏色值。但MLAA是在CPU上實現(xiàn),用了非常深的分支來判斷邊緣形狀,不適用GPU硬件。JIMENEZ等[9]提出了在GPU上實現(xiàn)MLAA,利用亮度和深度信息識別邊緣,提高了邊緣檢測的準(zhǔn)確性,并通過雙線性過濾減少搜索時間,同時用預(yù)計算紋理避免了大量的計算。但MLAA是對光柵化后的圖像進行反走樣處理,對采樣不足而造成的走樣現(xiàn)象無法處理。NVIDIA[10]于2009年提出快速近似反走樣(fast approximate anti-aliasing,F(xiàn)XAA),其具有局部對比度自適應(yīng)方向邊緣模糊、速度更快,但也導(dǎo)致了圖像的模糊。

      為了解決基于圖像分析的AA存在的鋸齒狀邊緣和過度模糊等問題,許多基于幾何輔助分析的AA被提出。杜文俊等[11]通過使用離散的場景原始三角面片來表示和記錄陰影遮擋信息,從而解決陰影圖中的走樣問題。PERSSON[12]提出的幾何后處理反走樣算法(geometric post-process nti-aliasing,GPAA)添加一個幾何預(yù)處理繪制遍,進行覆蓋率計算。PERSSON[13]以GPAA為基礎(chǔ),在主場景繪制時利用幾何著色器存儲幾何信息和邊界距離信息,避免了幾何預(yù)處理繪制遍。CHAJDAS等[14]提出了子像素重建反走樣算法(subpixel reconstruction anti-aliasing,SRAA),利用子像素的幾何信息對其顏色進行估計,能在幾何邊緣處得到較好的反走樣效果,但為了獲取超分辨率的幾何數(shù)據(jù),需要反復(fù)繪制場景,以及消耗大量的內(nèi)存空間以存儲其信息。DU等[15]通過高效地存儲三角形的信息及子像素與三角形的位置關(guān)系來降低算法所需的G-Buffer 大小?;趲缀屋o助分析的AA雖然能通過場景的幾何信息高效地重建出高質(zhì)量的反走樣邊緣。但需要額外地存儲和帶寬開銷,且無法有效地識別和處理非幾何邊界附近的走樣。

      最早的時間域上的AA是YANG等[16]的攤銷超采樣(amortized super-sampling),其將每個像素的子采樣點分?jǐn)偟讲煌瑤?,每幀只需繪制一個子采樣點,然后通過時域復(fù)用達到反走樣的目的。SOUSA[17]將時域復(fù)用應(yīng)用到SMAA中以提高時間穩(wěn)定性。DROBOT[18]將時間性反走樣、基于覆蓋的反走樣以及基于分析的反走樣相結(jié)合來重建高分辨率的圖像。杜文俊和馮結(jié)青[19]提出一種統(tǒng)一后處理反走樣算法,以三角形的幾何輔助算法對幾何邊界進行高質(zhì)量的反走樣重建,同時根據(jù)著色信息對顏色紋理的走樣進行形態(tài)學(xué)反走樣處理,最后使用時間域重投影的算法來處理時間域上的濾波。時間性反走樣算法因其高效且較為優(yōu)異的反走樣質(zhì)量被廣泛地應(yīng)用于Unity,CryENGINE 3和Unreal Engine等實時渲染引擎中。

      針對SSAA存在的計算量、內(nèi)存占用及傳輸帶寬的問題,本文基于時間域的超采樣算法,即時間性反走樣(temporal anti-aliasing,TAA)[20],將每個像素的子采樣點分?jǐn)偟讲煌瑤校繋焕L制一個子采樣點,并使用重投影技術(shù)和空間濾波器[21]進行時域復(fù)用,既解決了SSAA的效率問題,也能與延遲著色框架兼容。由于TAA核心是復(fù)用歷史幀的顏色,不能復(fù)用歷史幀顏色時,效果較差。針對該問題,本文在TAA基礎(chǔ)上,引入空間域的超采樣,提出了基于稀疏超采樣的TAA,能夠得到與SSAA算法媲美的反走樣效果,且具有更高的渲染效率。

      1 算法實現(xiàn)

      TAA通過復(fù)用歷史幀的顏色進行反走樣,能以較低的時間成本獲得較高的反走樣質(zhì)量。但在復(fù)用過程中,需要解決能否在當(dāng)前幀中復(fù)用歷史幀的顏色問題。TAA使用重投影技術(shù)來確定當(dāng)前幀像素在前一幀中的位置,并通過空間濾波來復(fù)用先前幀經(jīng)過光照計算和反走樣操作后的結(jié)果。由于復(fù)用了上一幀光照結(jié)果,因此在判斷是否能復(fù)用的過程中,除了要考慮前后幀的幾何對應(yīng)關(guān)系外,還必須考慮因視點變化、物體運動及光源變化等一切可能引起光照變化的因素。TAA使用Neighborhood Clipping 來解決復(fù)用問題,將歷史顏色限制在當(dāng)前幀的鄰域像素的顏色范圍內(nèi),若其不在軸向包圍盒(axis-aligned bounding box,AABB)[22]內(nèi)時,根據(jù)歷史顏色與AABB計算出一個新的歷史顏色,確保其處于AABB內(nèi)。但當(dāng)場景中存在較多高頻顏色區(qū)域或精細(xì)模型時,Neighborhood Clipping可能導(dǎo)致重影、模糊、閃爍和子像素細(xì)節(jié)丟失問題。TAA的幀間復(fù)用思想,解決了SSAA的效率問題,并在絕大多數(shù)的像素上得到了與SSAA媲美的反走樣質(zhì)量,所以本文選擇以TAA為主,對其復(fù)用問題進行改進。稀疏超采樣是本文提出的算法,剔除復(fù)用成功的部分,只對復(fù)用失效像素進行超采樣。

      1.1 算法概述

      本文算法共包含7個繪制遍,以圖形渲染管線中的繪制遍的執(zhí)行順序來進行描述。

      (1) 延遲著色的幾何階段繪制遍。渲染整個場景,生成G-buffer,其中存儲位置、法線、運動向量和網(wǎng)格ID等信息。

      (2) 延遲著色的著色階段繪制遍。讀取G-Buffer中的場景信息進行光照計算。

      (3) TAA繪制遍。除了傳統(tǒng)TAA的步驟外,還進行了復(fù)用有效性檢測,將檢測結(jié)果存儲到分割掩碼紋理中,用于網(wǎng)格和片元的剔除判斷。

      (4) 生成復(fù)用有效性緩沖區(qū)繪制遍。在計算著色器中,使用網(wǎng)格ID紋理和分割掩碼紋理生成復(fù)用有效性緩沖區(qū),高效地將復(fù)用有效性信息從片元反饋給網(wǎng)絡(luò)。

      (5) 生成深度多重紋理繪制遍。在基于屏幕空間的繪制遍中,通過分割掩碼紋理為提前深度測試生成一張深度多重紋理(depth muti-texture)。

      (6) 稀疏超采樣繪制遍。根據(jù)復(fù)用有效性緩沖來決定每個網(wǎng)格是否需要向GPU提交繪制命令,旨在稀疏超采樣繪制前剔除復(fù)用成功的網(wǎng)格;并使用Depth Multi-texture來執(zhí)行提前深度測試,旨在片元著色器執(zhí)行前剔除復(fù)用成功的片元,生成稀疏超采樣結(jié)果。

      (7) 混合繪制遍。通過分割掩碼紋理將TAA的結(jié)果和稀疏超采樣的結(jié)果混合,得到最終的反走樣結(jié)果。

      1.2 實現(xiàn)細(xì)節(jié)

      1.2.1 片元剔除

      為了實現(xiàn)對場景的稀疏超采樣,可在片元著色器的光照計算前剔除復(fù)用成功的片元。同一像素位置可能會對應(yīng)多個片元,可使用提前深度測試剔除不可見的片元。但提前深度測試需要一個額外的深度預(yù)處理繪制遍來生成一張深度紋理,使整個場景重新過一遍圖形渲染管線,影響算法性能。本文提出基于分割掩碼紋理和提前深度測試的片元剔除方法,創(chuàng)建一張分割掩碼紋理來存儲屏幕中像素的復(fù)用有效性,并通過該紋理為提前深度測試生成一張Depth Multi-texture,在片元著色器執(zhí)行前,剔除復(fù)用成功的片元。

      1.2.1.1 標(biāo)記復(fù)用失效的像素

      TAA中復(fù)用失效的原因有2種:①場景中視點的變化或運動的物體導(dǎo)致片元的前后幀可見性發(fā)生變化;②場景中光照環(huán)境的改變導(dǎo)致的片元前后幀著色變化。針對上述情況,本文提出了基于顏色的復(fù)用有效性檢測方法,相鄰兩幀間,同一個片元的顏色不會發(fā)生太大的變化,根據(jù)式(1)對像素的復(fù)用有效性進行判斷,即

      其中,C為當(dāng)前幀的像素顏色;C為重投影得到的歷史顏色;m為常量閾值。滿足該式則為復(fù)用成功,反之失效。雖然該方法不能識別顏色變化較小的前后幀可見性發(fā)生變化的片元,但由于像素顏色接近,對最終結(jié)果的影響很小。

      本文在TAA繪制遍中進行復(fù)用有效性檢測,在其他繪制遍中也可使用,如圖1所示的分割掩碼紋理可記錄復(fù)用有效性信息,其中黃色代表復(fù)用失敗,藍色代表復(fù)用成功。分割掩碼紋理為屏幕分辨率大小的二維紋理,本文算法在TAA繪制遍中,使用了多渲染目標(biāo)技術(shù)(multiple render targets,MRT)將每個像素的復(fù)用有效性存儲到分割掩碼紋理中,在后續(xù)繪制遍中,可直接根據(jù)片元的屏幕坐標(biāo)讀取片元的復(fù)用有效性。

      1.2.1.2 生成Depth Multi-texture

      為了在提前深度測試時剔除所有復(fù)用成功的片元,本文使用分割掩碼紋理為提前深度測試生成一張Depth Muti-texture。通過對分割掩碼紋理進行最近鄰采樣,來準(zhǔn)確讀取在分割掩碼紋理中的復(fù)用有效性。如果采樣分割掩碼紋理得到的值為復(fù)用成功(藍色),則將Depth Muti-texture中對應(yīng)位置的深度值設(shè)為最小值0.0,否則設(shè)為最大值1.0。為了成功地剔除所有復(fù)用成功的片元,在提前深度測試時,使用GL_LESS深度函數(shù),將深度值為0.0的位置上所有片元因未通過提前深度測試而被丟棄。

      圖1 分割掩碼紋理

      1.2.2 網(wǎng)格剔除

      為了實現(xiàn)對場景的稀疏超采樣,可以在稀疏超采樣繪制遍前剔除復(fù)用成功的網(wǎng)格。網(wǎng)格的復(fù)用有效性由光柵化生成的所有片元決定,為了得到網(wǎng)格的復(fù)用有效性信息,需要先得到光柵化生成的所有片元。因此本文在延遲著色的幾何階段利用MRT技術(shù)生成一張網(wǎng)格ID紋理,記錄離屏幕最近的片元所對應(yīng)的網(wǎng)格ID,避免在進行復(fù)用有效性判斷時,讀取到被遮擋片元的復(fù)用信息。本文算法還通過一個額外的復(fù)用有效性緩沖區(qū)來高效地查找網(wǎng)格ID紋理中對應(yīng)的所有的片元。創(chuàng)建一個復(fù)用緩沖區(qū),用于儲存場景所有網(wǎng)格的有效性,通過一次遍歷網(wǎng)格ID紋理和分割掩碼紋理來更新緩沖區(qū)中的數(shù)據(jù),避免了每一個網(wǎng)格都需要遍歷一次網(wǎng)格ID紋理來獲取有效性。同時,本文算法的有效性緩沖區(qū)的生成充分利用了GPU并行計算的高效優(yōu)勢,使用計算著色器能高效地將復(fù)用有效性信息從片元反饋到網(wǎng)格。由于在CPU端讀取復(fù)用有效性緩沖區(qū)數(shù)據(jù)時,可能會造成隱式同步問題,采取了雙緩沖技術(shù)來解決。

      1.2.2.1 生成網(wǎng)格ID紋理

      為了識別場景中的不同網(wǎng)格,在模型加載階段,為每個網(wǎng)格分配了唯一的ID。在延遲著色的幾何階段繪制遍中,每繪制一個網(wǎng)格,使用uniform緩沖對象將其ID傳入片元著色器,并通過MRT技術(shù)輸出到網(wǎng)格ID紋理中。最終得到如圖2所示的網(wǎng)格ID紋理,并記錄離屏幕最近的片元所對應(yīng)網(wǎng)格的ID。

      圖2 生成網(wǎng)格ID紋理

      1.2.2.2 生成復(fù)用有效性緩沖區(qū)

      為了避免多次遍歷網(wǎng)格ID紋理,通過一個額外的復(fù)用有效性緩沖區(qū)來存儲場景中每個網(wǎng)格的復(fù)用有效性,并使用網(wǎng)格ID作為索引進行訪問。分割掩碼紋理標(biāo)記了離屏幕最近的片元的復(fù)用有效性,用網(wǎng)格ID 紋理標(biāo)記了離屏幕最近的片元對應(yīng)的網(wǎng)格ID,且通過計算著色器讀取這2張紋理來更新復(fù)用有效性緩沖區(qū),可避免多次查找網(wǎng)格ID紋理,得到所有網(wǎng)格的復(fù)用有效性。

      對于網(wǎng)格而言,只要對應(yīng)的片元有一個復(fù)用失效,為了得到該片元的超采樣結(jié)果,就需要對該網(wǎng)格繪制。生成復(fù)用有效性緩沖區(qū)時,需將所有的網(wǎng)格都標(biāo)記為復(fù)用成功,當(dāng)遍歷分割掩碼紋理時,對于復(fù)用失效的片元,使用相同的坐標(biāo)去采樣網(wǎng)格ID紋理,且更新復(fù)用有效性緩沖區(qū),將緩沖區(qū)中對應(yīng)的網(wǎng)格記為復(fù)用失效。如圖3所示,在分割掩碼紋理中,紅框為復(fù)用失效(黃色)的片元,因此使用相同的紋理坐標(biāo)采樣網(wǎng)格ID紋理,得到該片元屬于網(wǎng)格3,并在復(fù)用有效性緩沖區(qū)中將值改為0,表示其為復(fù)用失效的網(wǎng)格,不用剔除。

      圖3 生成復(fù)用有效性緩沖區(qū)

      1.2.2.3 雙緩沖技術(shù)

      在CPU端讀取緩沖區(qū)數(shù)據(jù)時,使用雙緩沖技術(shù)來避免隱式同步問題。創(chuàng)建2個復(fù)用有效性緩沖區(qū)對象,并在相鄰幀中循環(huán)使用,在相鄰2幀中寫不同的緩沖區(qū),且延遲一幀讀取緩沖區(qū)中的數(shù)據(jù)來避免隱式同步問題。然后對繪制遍進行調(diào)整,并應(yīng)用于本算法。由于需要在稀疏超采樣glMapBuffer函數(shù)讀取復(fù)用有效性緩沖區(qū),且通過延遲一幀讀取緩沖區(qū)中的數(shù)據(jù)來避免隱式同步,因此需要將稀疏超采樣以及后續(xù)的繪制遍延遲一幀執(zhí)行,如圖4所示。

      圖4 繪制遍順序((a)原始繪制遍順序; (b)更改后的繪制遍順序)

      1.2.3 三角形剔除

      為了實現(xiàn)對場景的稀疏超采樣,可以在超采樣繪制遍的幾何著色器中剔除復(fù)用成功的三角形。一個三角形圖元經(jīng)過光柵化可以生成若干個片元,在光柵化前剔除復(fù)用成功的片元,可以減少光柵化階段及片元著色器開銷。為了得到三角形的復(fù)用有效性信息,需要得到三角形光柵化生成的所有片元,若通過3個頂點坐標(biāo)進行計算,計算量大,本文通過三角形的邊界矩形來實現(xiàn)。因此,需要采樣其邊界矩形覆蓋所有片元的復(fù)用有效性,對算法性能產(chǎn)生影響,使用層次化的分割掩碼紋理解決該問題。本文算法從RáKOS[23]的層次化深度圖中得到啟發(fā),構(gòu)造了一張層次化分割掩碼紋理。其每個層級的1個紋素都總結(jié)了上一層級所對應(yīng)的2×2個紋素的復(fù)用有效性,因此通過采樣層次化分割掩碼紋理的對應(yīng)LOD層級中覆蓋邊界矩形的2×2個紋素,即可保守地估計邊界矩形覆蓋的所有片元的復(fù)用有效性。

      1.2.3.1 生成三角形邊界矩形

      構(gòu)造及使用三角形的邊界矩形作為其包圍體進行復(fù)用有效性檢測。矩形在屏幕空間的大小為

      其中,BB分別為邊界矩形在屏幕空間中的寬和高;max和min分別為三角形3個頂點在裁剪坐標(biāo)系下的坐標(biāo)的最大和最小值;max和min分別為坐標(biāo)下的最大、最小值;VV分別為視口的寬和高。

      1.2.3.2 構(gòu)造層次化分割掩碼紋理

      層次化分割掩碼紋理是一個Mip-mapped的屏幕分辨率,mipmap level中的每個紋素的復(fù)用有效性都有mipmap level-1中所對應(yīng)的2×2個紋素決定。如圖5所示,mipmap level 0的紅色框內(nèi)的2×2個紋素中有一個為復(fù)用失效(黃色),則mipmap level 1中對應(yīng)的紅色框中的紋素也復(fù)用失效;而mipmap level 0的白色框中2×2個紋素中全為復(fù)用成功(藍色),則mipmap level 1中對應(yīng)的白色框的紋素也復(fù)用成功(藍色)。

      1.2.3.3 三角形的復(fù)用有效性判斷

      本文利用采樣層次化分割掩碼紋理的對應(yīng)LOD層級中覆蓋三角形邊界矩形的2×2個紋素,可判斷三角形的復(fù)用有效性。其中,邊界矩形用途包括:①確定了對層次化分割掩碼紋理進行查找時用的LOD層級;②定義了用紋理查找的2×2個坐標(biāo)。

      由式(3)和式(4)確定最終的LOD層級。根據(jù)式(3)計算得到的層級滿足式(5),因此該層級的2×2個紋素可以包裹住三角形的邊界矩形。然而,可出現(xiàn)圖6所示的3種情況,圖中橙色代表邊界矩形,黃色代表邊界矩形覆蓋的紋素,綠色邊框代表式(3)計算得到的mipmap level。3種情況下邊界矩形覆蓋的紋素個數(shù)不同,紋理采樣的次數(shù)也不同。為了統(tǒng)一紋理采樣次數(shù),使用式(3)計算最終的LOD層級,得到如圖7所示的紋理采樣次數(shù)相同的3種情況,其中藍色邊框代表mipmap level+1。

      其中,T為分割掩碼紋理中mipmap level的一個紋素大小。

      其中,為邊界矩形在分割掩碼紋理中的mipmap level l中覆蓋X軸方向紋素的數(shù)量;為邊界矩形在分割掩碼紋理的mipmap level l中覆蓋Y軸方向紋素的數(shù)量。

      圖6 邊界矩形和mipmap level l的紋素的3種情況 ((a) 4個紋素;(b) 6個紋素;(c) 9個紋素)

      圖7 統(tǒng)一紋理采樣次數(shù)((a) 4次;(b) 6次變4次; (c) 9次變?yōu)?次)

      由式(3)和(4)確定LOD之后,本文的三角形剔除方法使邊界矩形4個頂點位于裁剪坐標(biāo)系中,在層次化分割掩碼紋理的LOD層級上進行最近鄰采樣,如果4個采樣點的值均為復(fù)用成功(藍色),則將其剔除。如圖8所示,根據(jù)計算得到采樣的LOD為2,因此使用邊界矩形的4個頂點對層次化分割掩碼紋理的mipmap level 2進行最近鄰采樣,其中有一個為復(fù)用失效(黃色),則該三角形為復(fù)用失效,不剔除。

      圖8 三角形復(fù)用有效性檢測

      2 實驗結(jié)果

      本文實驗環(huán)境為:Intel(R) Core(TM) i5-4460k @3.20 GHz,8 GB內(nèi)存,NVIDIA Geforce GTX-960 顯卡。

      采用如圖9所示的客廳場景來驗證算法,場景中分布3個點光源,不考慮陰影問題,采用的屏幕分辨率為1920×1080。

      圖9 客廳場景

      將本文算法與文獻[1]的TAA算法進行渲染效果對比,同時采用8×SSAA算法作為參照算法,分別從重影、模糊以及子像素特征處理3個方面驗證本文算法對TAA的改進。

      圖10為視點移動過程中吊燈的反走樣效果,可以看出本文算法可有效避免TAA算法出現(xiàn)的重影問題,并且可得到與參照算法SSAA接近的結(jié)果;圖11為視點移動過程中的吊燈,TAA算法中出現(xiàn)的模糊效果,本文算法能有效避免,得到與參照算法SSAA接近的結(jié)果;而圖12展示了靜態(tài)場景的花瓶反走樣效果,相對于TAA算法而言,本文算法可以有效處理子像素特征,避免子像素細(xì)節(jié)丟失的問題,得到類似于參照算法SSAA的結(jié)果。

      圖10 吊燈反走樣的重影效果對比((a) TAA算法; (b)本文算法;(c) SSAA算法)

      根據(jù)圖13的效果可以看到本文算法相比于TAA渲染效果具有一定的提升,能夠達到接近于參考算法SSAA的渲染效果。同時,本文算法的效率明顯優(yōu)于SSAA算法。通過對比在客廳場景中TAA算法、SSAA算法和本文算法的幀率,可見TAA算法的效率最高,幀率達到了149.6;其次是本文算法,幀率為108.7;效率最低的為SSAA算法,幀率為65.6。

      圖11 吊燈反走樣的模糊效果對比((a) TAA算法;(b)本文算法;(c) SSAA算法)

      圖12 花瓶子像素缺失反走樣效果對比 ((a) TAA算法;(b)本文算法;(c) SSAA算法)

      圖13 不同反走樣算法下客廳場景的渲染效果對比 ((a) TAA算法;(b)本文算法;(c) SSAA算法)

      本文提出了3種級別的剔除方法,均能在不對最終的渲染結(jié)果產(chǎn)生影響的情況下,提升算法的渲染效率。圖14為在未使用剔除方法和分別使用3種級別的剔除方法的情況下,本文算法的渲染效果,通過人眼對比無明顯差別。表1使用均方根誤差(root mean squared error,RMSE)[24],定量分析得出未使用和分別使用三角形剔除方法和網(wǎng)格剔除方法得到的渲染結(jié)果無差異,而使用剔除網(wǎng)格的方法僅有非常小的差異。

      圖14 不同級別的剔除方法下效果對比((a)未使用剔除方法;(b)使用網(wǎng)格剔除方法;(c)使用三角形剔除方法;(d)使用片元剔除方法)

      表1 不使用與分別使用不同級別的剔除方法的本文算法的渲染效果差異

      由表2可知,單獨使用3種級別的剔除方法均能提升本文算法的幀率,但2種級別的剔除方法組合策略6卻高于其他剔除策略。不同級別的剔除方法間存在影響,三角形剔除方法在光柵化前剔除復(fù)用成功的三角形,會影響到光柵化生成的片元數(shù)量,而片元剔除方法所節(jié)省的開銷遠高于三角形剔除法。因此選取幀率最高的剔除策略,片元和網(wǎng)格組合作為最終的剔除策略。

      基于顏色的復(fù)用有效性檢測方法的閾值μ,由圖15和圖16可知,μ值越小,渲染效果越好、效率越低,因此,權(quán)衡渲染效果和效率,本文設(shè)定μ值為0.2。

      表2 不同剔除策略下本文算法的渲染幀率對比

      圖15 不同μ下本文算法的渲染效果變化

      圖16 不同μ下本文算法的渲染幀率變化

      考慮到G-Buffer也是評估后處理AA的重要指標(biāo)之一。由于本文算法是基于TAA改進的,對比本文和TAA算法的G-Buffer,還和實時反走樣中效率比較高的FXAA進行對比,見表3。其中位置向量、法線、反照率、粗糙度和金屬度都是在后續(xù)的延遲著色繪制中著色需要的。運動向量是TAA算法和本文算法重投影到歷史幀所需的,而網(wǎng)格ID是本文算法在構(gòu)建復(fù)用有效性緩沖時需要的。

      表3 TAA算法、本文算法和FXAA算法GBuffer具體存儲內(nèi)容和所需存儲空間大小

      通過比較可以發(fā)現(xiàn),本文算法由于引入剔除策略,會比FXAA和TAA算法的G-buffer更大一些,但仍在可接受范圍內(nèi)。

      3 結(jié) 論

      針對TAA在處理復(fù)用問題上不夠完善,當(dāng)場景中存在較多高頻顏色區(qū)域和精細(xì)的物體時,可能導(dǎo)致重影、模糊、閃爍和子像素細(xì)節(jié)丟失現(xiàn)象。本文提出了一種基于稀疏超采樣的時間性反走樣算法,在TAA的基礎(chǔ)上針對復(fù)用失效的位置使用超采樣,得到了與SSAA媲美的反走樣結(jié)果,并且通過網(wǎng)格剔除和片元剔除算法,提高了算法的效率。但為了得到復(fù)用失效位置的超采樣結(jié)果,需要將場景重新過一遍圖形渲染關(guān)系,并通過對場景進行稀疏超采樣避免不必要的繪制開銷,如果能在場景過一次圖形渲染管線的基礎(chǔ)上,同時得到延遲著色和超采樣所需要的場景數(shù)據(jù),可能會大幅度提高本文算法的效率。但兩者所需的場景數(shù)據(jù)分辨率不同,并且對于超采樣而言,僅需復(fù)用失效位置的場景數(shù)據(jù),因此如何對場景進行光柵化,以及如何高效地組織場景數(shù)據(jù),可以在未來的研究中嘗試。

      [1] AKENINE-M?LLER T, HAINES E, HOFFMAN N. Real-time rendering,fourth edition[M]. Natick: A K Peters/CRC Press, 2018: 130-148.

      [2] THOMAN P. Diving into anti-aliasing[EB/OL]. [2020-08-10]. https://www.beyond3d.com/content/articles/12 2/6.

      [3] Wikipedia. Supersampling[EB/OL]. [2020-06-05]. https://en.wikipedia.org/wiki/Supersampling.

      [4] AKELEY K. Reality Engine graphics[C]//The 20th Annual Conference on Computer Graphics and Interactive Techniques – SIGGRAPH’93. New York: ACM Press, 1993: 109-116.

      [5] YOUNG P. Coverage-sampled anti-aliasing[R].Santa Clara: NVIDIA Corporation, 2006.

      [6] DEVELOPER RELATIONS A. EQAA modes for AMD 6900 series graphics cards[R]. Sunnyvale: AMD Inc., 2011.

      [7] ANDREW L. Deferred rendering for current and future rendering pipelines[EB/OL]. [2020-06-05]. https://software. intel.com/sites/default/files/m/d/4/1/d/8/lauritzen_deferred_shading_siggraph_2010.pdf.

      [8] RESHETOV A. Morphological antialiasing[C]//The 1st ACM Conference on High Performance Graphics – HPG’09. New York: ACM Press, 2009: 109-116.

      [9] JIMENEZ J, MASIA B, ECHEVARRIA J I, et al. Practical morphological antialiasing[M]//GPU Pro 360 Guide to Rendering. Boca Raton: A K Peters/CRC Press, 2018: 135-153.

      [10] NVIDIA T L. Fast approximate anti-aliasing[R]. Santa Clara: NVIDIA Corporation, 2009.

      [11] 杜文俊, 馮結(jié)青, 楊寶光, 等. 三角形重建的幾何陰影圖算法[J]. 計算機輔助設(shè)計與圖形學(xué)學(xué)報, 2016, 28(2): 208-217. DU W J, FENG J Q, YANG B G, et al.Geometric shadow mapping via triangle-based reconstruction[J].Journal of Computer-Aided Design & Computer Graphics, 2016, 28(2): 208-217 (in Chinese).

      [12] PERSSON E. Geometric post-process anti-aliasing [EB/OL]. [2020-06-05]. http://www.humus.name/index.php?page=3D&ID=86.

      [13] PERSSON E. Geometric buffer anti-aliasing[EB/OL]. [2020-06-05]. http://www.humus.name/index.php?page=3D&ID=87.

      [14] CHAJDAS M G, MCGUIRE M, LUEBKE D. Subpixel reconstruction antialiasing for deferred shading[C]//I3D’11, Symposium on Interactive 3D Graphics and Games. New York: ACM Press, 2011: 15-22.

      [15] DU W J, FENG J Q, YANG B G. Sub-pixel anti-aliasing via triangle-based geometry reconstruction[J]. Computer Graphics Forum, 2014, 33(7): 81-90.

      [16] YANG L, NEHAB D, SANDER P V, et al. Amortized supersampling[J]. ACM Transactions on Graphics, 2009, 28(5): 1-12.

      [17] SOUSA T. Graphics gems from cryengine 3[EB/OL]. [2020-06-05]. https://www.slideshare.net/TiagoAlexSousa/graphics-gems-from-cryengine-3-siggraph-2013.

      [18] DROBOT M. Hybrid reconstruction anti-aliasing [EB/OL]. [2020-06-05]. https://michaldrobot.com/2014/08/13/hraa-siggraph-2014-slides-available/.

      [19] 杜文俊, 馮結(jié)青. 面向延遲著色的統(tǒng)一反走樣算法[J]. 計算機輔助設(shè)計與圖形學(xué)學(xué)報, 2016, 28(1): 58-67.DU W J, FENG J Q.A unified anti-aliasing method for deferred shading[J]. Journal of Computer-Aided Design & Computer Graphics, 2016, 28(1): 58-67 (in Chinese).

      [20] PEDERSEN L J F. Temporal reprojection anti-aliasing in inside[EB/OL]. [2020-06-05].https://www.gdcvault.com/play/1022970/Temporal-Reprojection-Anti-Aliasing-in.

      [21] NEHAB D, SANDER P V, LAWRENCE J, et al. Accelerating real-time shading with reverse reprojection caching[C]//The 22nd ACM SIGGRAPH/EUROGRAPHICS Symposium on Graphics Hardware. New York: ACM Press, 2007: 25-35.

      [22] WIKIPEDIA. Minimum bounding box[EB/OL]. [2020-06-05]. https://en.wikipedia.org/wiki/Minimum_ bounding_box.

      [23] RáKOS D. Hierarchical-z map based occlusion culling[EB/OL]. [2020-06-05]. http://rastergrid.com/blog/2010/10/hierarchical-z-map-based-occlusion-culling/.

      [24] DU R F, CHUANG M, CHANG W, et al. Montage4D: interactive seamless fusion of multiview video textures[C]// 13D’18, Symposium on Interactive 3D Graphics and Games. New York: ACM Press, 2018: 124-133.

      Temporal anti-aliasing algorithm based on sparse super-sampling

      LI Gen, CHEN Wen-qian, ZHANGYan-ci

      (National Key Laboratory of Fundamental Science on Synthetic Vision, Sichuan University, Chengdu Sichuan 610065, China)

      In order to deal with the problems of the temporal anti-aliasing algorithm, such as ghosting, blurring, flickering, and loss of sub-pixel details when processing multiplexing between frames, in the cases of many high-frequency color regions or fine models in the scene, this paper proposed the temporal anti-aliasing algorithm based on sparse super-sampling. The core idea was that, based on the temporal anti-aliasing algorithm, for pixels that cannot reuse historical frames, super-sampling in the spatial domain was re-introduced, and the culling algorithm proposed in this paper was employed to avoid unnecessary drawing overhead and achieve sparse super-sampling. Experimental results show that the algorithm in this paper can obtain the anti-aliasing effect comparable to the super-sampling algorithm, and achieve higher rendering efficiency, which can effectively avoid the problems of ghosting, blurring, flickering, and loss of sub-pixel details.

      temporal anti-aliasing algorithm; sparse; super-sampling; culling; reuse

      TP 391

      10.11996/JG.j.2095-302X.2021010101

      A

      2095-302X(2021)01-0101-09

      2020-07-26;

      26 July,2020;

      2020-08-10

      10 August,2020

      國家自然科學(xué)基金面上項目(61472261);國家高技術(shù)研究發(fā)展計劃(863計劃)(2015AA016405)

      :National Natural Science Foundation of China (61472261); The National High Technology Research and Development Program of China (2015AA016405)

      李 根(1996-),男,四川成都人,碩士研究生。主要研究方向為計算機圖形學(xué)。E-mail:ligen@stu.scu.edu.cn

      LI Gen (1996–), male, master student. His main research interest covers computer graphics. E-mail:ligen@stu.scu.edu.cn

      張嚴(yán)辭(1975–),男,四川成都人,教授,博士,碩士生導(dǎo)師。主要研究方向為實時計算機圖形繪制算法、大規(guī)模動態(tài)場景并行繪制、3D游戲技術(shù)、虛擬現(xiàn)實、基于GPU的通用并行計算等。E-mail:yczhang@scu.edu.cn

      ZHANG Yan-ci (1975-), male, professor, Ph.D. His main research interests covercomputer graphics rendering algorithms, parallel rendering of large-scale dynamic scenes, 3D game technology, virtual reality, GPU-based general parallel computing, etc. E-mail:yczhang@scu.edu.cn

      猜你喜歡
      走樣掩碼緩沖區(qū)
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
      “雙減”,如何確保落地實施不走樣
      教育家(2022年18期)2022-05-13 15:42:15
      基于G-Buffer的深度學(xué)習(xí)反走樣算法
      低面積復(fù)雜度AES低熵掩碼方案的研究
      唐氏綜合征是因為“拷貝”走樣了
      基于布爾異或掩碼轉(zhuǎn)算術(shù)加法掩碼的安全設(shè)計*
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      基于掩碼的區(qū)域增長相位解纏方法
      基于掩碼的AES算法抗二階DPA攻擊方法研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計與實現(xiàn)
      克什克腾旗| 台山市| 广灵县| 临朐县| 珠海市| 河北省| 嘉兴市| 乡城县| 陵川县| 交城县| 东丽区| 依安县| 广灵县| 河北区| 建宁县| 松潘县| 邓州市| 虎林市| 明星| 台北县| 清流县| 郓城县| 全州县| 凉城县| 苍梧县| 元谋县| 达拉特旗| 长宁县| 潞西市| 江华| 浑源县| 长武县| 三都| 东丰县| 辽中县| 洛浦县| 平利县| 耒阳市| 新沂市| 元氏县| 泾源县|