• 
    

    
    

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

      基于著色器的LOD紋理混合與反走樣平滑過渡關(guān)鍵技術(shù)研究

      2022-02-21 03:19:06姜展李梅孫振明毛善君
      關(guān)鍵詞:著色器走樣蒙版

      姜展 李梅,? 孫振明 毛善君

      基于著色器的LOD紋理混合與反走樣平滑過渡關(guān)鍵技術(shù)研究

      姜展1李梅1,?孫振明2毛善君1

      1.北京大學(xué)遙感與地理信息系統(tǒng)研究所, 北京 100871; 2.中國礦業(yè)大學(xué)(北京)能源與礦業(yè)學(xué)院, 北京 100083;?通信作者, E-mail: mli@pku.edu.cn

      針對場景切換時(shí)產(chǎn)生的 LOD (level of detail)紋理突變和走樣問題, 提出一種基于著色器的 LOD 紋理混合與反走樣平滑過渡算法。該算法根據(jù)三維模型和視點(diǎn)的距離, 運(yùn)用基于 Alpha 測試的不透明蒙版算法和加權(quán)鄰幀反走樣算法, 在 LOD 間生成過渡材質(zhì), 實(shí)現(xiàn)三維模型 LOD 切換的平滑過渡, 不僅能夠改善紋理質(zhì)量, 而且能夠保證三維場景加載的流暢性與真實(shí)性。實(shí)驗(yàn)結(jié)果表明, 與 Unreal Engine 4 (UE4)自帶的平滑算法相比, 算法的 GPU 平均耗時(shí)減少 8%以上, 幀率提高 8%以上。與現(xiàn)有紋理平滑過渡方法相比, 該算法能夠優(yōu)化GPU 渲染性能, 穩(wěn)定并提高畫面幀率, 保持良好的視覺效果, 有效地解決 LOD 層級(jí)切換時(shí)的突變問題。

      紋理突變; LOD 平滑過渡; Alpha 測試; 幾何走樣; 著色走樣; 時(shí)間反走樣(TAA)

      隨著計(jì)算機(jī)圖形硬件和渲染能力的快速發(fā)展, 三維虛擬建模技術(shù)已廣泛應(yīng)用于工業(yè)、建筑、商業(yè)和教育等各個(gè)領(lǐng)域[1]。在構(gòu)建虛擬場景過程中, 為了加速模型顯示速度, 一般采用 LOD (level of detail)技術(shù)[2]來降低模型渲染數(shù)據(jù)量, 提高場景漫游的流暢性。但是, 三維模型切換 LOD 層級(jí)時(shí)會(huì)產(chǎn)生明顯的形狀和紋理突變(popping)[3], 場景中的模型也會(huì)存在鋸齒現(xiàn)象。

      如何在保證良好的視覺效果和較低的性能開銷前提下解決三維模型 LOD 突變和反走樣問題, 是圖形渲染領(lǐng)域的研究熱點(diǎn)。三維模型 LOD 平滑過渡方法主要分為紋理方法和幾何方法兩大類, 幾何方法主要通過漸進(jìn)網(wǎng)格[4]對模型進(jìn)行簡化, 但處理后的模型數(shù)據(jù)結(jié)構(gòu)較為復(fù)雜; 紋理方法主要包括Mip-Map[5]、模型貼圖漸進(jìn)過渡[6]、紋理合并[7]等技術(shù), 普遍存在貼圖文件過大、視覺效果差和性能開銷高的問題。隨著可編程管線的著色器(Shader)技術(shù)的普及, 基于 Shader 的 Alpha 混合和 Alpha 測試技術(shù)能有效地減少貼圖文件大小, 提升視覺效果。其中, Alpha 混合技術(shù)通過混合相鄰的兩個(gè)LOD 透明度實(shí)現(xiàn)平滑過渡[8], 這種方式需要考慮對象的渲染順序, 并且 Shader 復(fù)雜度極高, 性能消耗極大; Alpha 測試技術(shù)不需考慮渲染順序, 性能消耗相對較小。目前主流游戲引擎 UE4 和 Unity 3D 也內(nèi)置 LOD 平滑過渡模塊, 采用基于著色器的抖動(dòng)和透明度交叉淡化算法實(shí)現(xiàn) LOD 平滑過渡, 但隨著場景規(guī)模和模型復(fù)雜度增加, 使用 LOD 平滑方法會(huì)降低畫面幀率, 增加渲染壓力。

      在 LOD 平滑過渡過程中, 還會(huì)出現(xiàn)反走樣[9]問題。反走樣是一種消除圖形邊緣凹凸鋸齒的技術(shù), 算法包括前采樣和后處理兩大類。延遲渲染[10-11]采用后處理技術(shù), 是目前主流的實(shí)時(shí)渲染方式, 該方法將所有物體繪制到屏幕空間的幾何緩沖區(qū)(G-Buffer)[12], 逐光源對該緩沖區(qū)進(jìn)行著色, 避免因深度測試丟棄的片元著色而產(chǎn)生不必要的開銷。延遲渲染是先進(jìn)行深度測試, 再進(jìn)行著色計(jì)算, 將三維空間的光照通過計(jì)算轉(zhuǎn)換到二維空間進(jìn)行處理。相比前向渲染, 延遲渲染的開銷和復(fù)雜度更小, 渲染效率更高, 在存在大量光源的場景中尤為適用。后處理主要包括快速近似反走樣(FXAA)[13]和時(shí)間性反走樣(TAA)[14-16]等算法。FXAA 渲染效率雖高, 但由于采用顏色衰減方式重建反走樣顏色, 普遍存在圖像過度模糊問題; TAA 則采用分?jǐn)偠鄮蜁r(shí)域復(fù)用技術(shù)實(shí)現(xiàn)更加精確的反走樣效果, 以相對較低的開銷得到高品質(zhì)畫面, 廣泛地應(yīng)用于 Unity 3D, CryENGINE 3 和 UE4 等實(shí)時(shí)渲染引擎中。

      虛幻引擎 5 采用 Nanite (虛擬幾何體)技術(shù), 直接導(dǎo)入數(shù)以億計(jì)的三角形面數(shù)模型, 并渲染所有的三角面, 對高質(zhì)量模型進(jìn)行實(shí)時(shí)流送和縮放, 因此無需考慮三角形數(shù)量、內(nèi)存和 LOD 突變等問題。但是, 該技術(shù)的實(shí)現(xiàn)需要巨大的存儲(chǔ)空間以及與之相配的高速 CPU 和 SSD 等硬件設(shè)備, 龐大的三角形構(gòu)成對光線跟蹤也造成一定的影響。

      本文針對當(dāng)前存在的紋理突變和反走樣問題, 考慮設(shè)備性能的局限性, 提出一種基于著色器的LOD 紋理混合與反走樣平滑過渡技術(shù)。結(jié)合 UE4開發(fā)平臺(tái), 根據(jù)三維模型和視點(diǎn)的距離, 運(yùn)用基于Alpha 測試的不透明蒙版算法和加權(quán)鄰幀反走樣算法, 在 LOD 間生成過渡材質(zhì), 達(dá)到 LOD 間平滑過渡和反走樣的目的, 能夠兼容延遲著色技術(shù), 有效地重建幾何、紋理、運(yùn)動(dòng)等各種細(xì)節(jié), 提高場景的制作質(zhì)量和加載的流暢性, 達(dá)到優(yōu)化渲染性能和提升用戶視覺體驗(yàn)的目的。

      1 基于著色器 LOD 紋理混合與反走樣平滑過渡算法設(shè)計(jì)

      基于 Shader 的可視化編程管線需要將三維模型經(jīng)過著色器進(jìn)行一系列處理。首先, 頂點(diǎn)著色器(vertex shader)接收三維模型的位置、貼圖和法線等頂點(diǎn)信息, 進(jìn)行坐標(biāo)轉(zhuǎn)換; 然后, 片元著色器(fragment shader)對三維模型進(jìn)行圖元處理和光柵化, 計(jì)算紋理像素顏色和透明度等信息, 填充到圖形像素中[17-18]。

      根據(jù)計(jì)算機(jī)圖形渲染機(jī)制, 本文提出基于片元著色器(fragment shader) Alpha 測試的不透明蒙版算法和加權(quán)混合鄰幀反走樣算法。根據(jù)視距和對象半徑等參數(shù)的變化, 動(dòng)態(tài)地計(jì)算 LOD 透明度, 將材質(zhì)像素映射噪聲貼圖像素, Alpha 用來調(diào)整噪聲紋理比例, 之后使用加權(quán)鄰幀反走樣算法, 經(jīng)過對鄰幀像素的重投影、修正和加權(quán)混合, 將其繪制到屏幕上, 總體流程如圖1所示。

      2 算法實(shí)現(xiàn)與改進(jìn)

      基于著色器的 LOD 紋理混合與反走樣平滑過渡算法的關(guān)鍵技術(shù)包括兩項(xiàng), 即 Alpha 測試的不透明蒙版算法和加權(quán)鄰幀反走樣算法。將要平滑的相鄰兩層 LOD 材質(zhì)在片元著色器上實(shí)時(shí)計(jì)算, 得到新的平滑過渡 LOD 層級(jí), 直接進(jìn)行屏幕繪制。

      2.1 基于 Alpha 測試的不透明蒙版算法

      2.1.1 Alpha 測試算法

      Alpha 測試是一種不考慮渲染順序的開銷較低的半透明處理方式, 其原理如式(1)所示:

      Visibility = clip (.Alpha ?), (1)

      其中,∈[0, 1],為當(dāng)前像素, Alpha為透明度。clip函數(shù)用來檢查參數(shù)是否小于零, 如果為負(fù)數(shù)(即像素的透明度Alpha小于設(shè)定閾值), 則舍棄當(dāng)前像素, 大于閾值的像素則按照Alpha=1.0渲染到屏幕上。蒙版(masked)是Alpha測試對應(yīng)的材質(zhì)混合模式, 用來控制材質(zhì)顯示的范圍。當(dāng)材質(zhì)混合模式設(shè)置為蒙版后, 將開啟不透明蒙版(opacity mask)通道, 僅使用Alpha通道值, 其他通道(RGB)會(huì)被忽略, 在其中設(shè)置Alpha測試閾值來決定像素的可見性visibility。

      圖1 著色器LOD紋理混合與反走樣平滑過渡技術(shù)流程

      2.1.2 基于Alpha測試的不透明蒙版算法

      基于 Alpha 測試的不透明蒙版算法的計(jì)算過程如下。

      1)獲取攝像機(jī)到物體位置的距離 Dist。

      2)根據(jù)距離、兩級(jí) LOD 屏幕大小以及物體半徑等參數(shù), 設(shè)置材質(zhì)參數(shù) Local。

      3)設(shè)定距離閾值: 比較當(dāng)前距離與閾值大小,并返回布爾值, 線性插值結(jié)果為 1 或隨著距離改變的 Local, 將此返回值賦給 Alpha, 得到在一定范圍內(nèi)隨距離動(dòng)態(tài)改變的透明度 Alpha。由于第二層與第一層設(shè)置相反, 最終得到兩個(gè)隨距離變化趨勢相反的 Alpha1和 Alpha2。

      得到隨距離動(dòng)態(tài)變化的兩個(gè) Alpha 后, 使用噪聲紋理混合算法為材質(zhì)疊加噪聲貼圖[19], 通過控制像素顯示的數(shù)量來改變模型的可見性。以一張 2D噪聲紋理貼圖為基準(zhǔn), 將貼圖每個(gè)像素映射到噪聲紋理對應(yīng)的像素上, 將像素的透明度與蒙版預(yù)先設(shè)置好的閾值進(jìn)行比較, 丟棄小于閾值的像素。像素的可見性:3×[0, 1]→{true, false}可用式(2)計(jì)算。

      分別將新 LOD 層級(jí)隨距離動(dòng)態(tài)變換的兩個(gè)Alpha 輸入此函數(shù), 此時(shí)的 Alpha 值與丟棄像素的數(shù)量比例成反比, 即 Alpha 越小, 顯示的像素點(diǎn)越少。由于兩個(gè) Alpha 值變化趨勢相反, 新 LOD 兩層材質(zhì)隨距離的變化將呈現(xiàn)交替過渡的效果。使用的噪聲紋理貼圖與模型噪聲紋理比例變化示意如圖 2 所示。

      基于 Alpha 測試的不透明蒙版算法偽代碼如下。

      Input: The radius of the model in the scene, ObjRadiu The set of Shader Material,M,M; Screen start and end sizes, ScreenStart, ScreenEnd; The distance from the camera to the object, Dist; The Opacity of the first LOD, Alpha1, Alpha2; The spatial coordinates of the pixel,; Threshold value,; Pixel visibility, visibility;

      Output:The visibility of per pixel, visibility;

      圖2 2D噪聲紋理貼圖與丟棄貼圖像素比例變化示意圖

      1:M=M*(1-M)+M;

      2: float Start= ObjRadiu*M/ScreenStart;

      3: float Distance= ObjRadiu*M/ScreenEnd-Start;

      4: float smooth=((Dist-Start-Distance/2)/ Distance*2);

      5: float Local1=1-smooth ;

      6: float Local2=(Dist-Start)/Distance*2 ;

      7: Alpha1=lerp(1, Local1, (float)(Dist>(Start+Distance/ 2)));

      8: Alpha2=lerp(local2, 1, (float)(Dist>(Start+Distance)));

      9: Map each pixel to the pixel corresponding to the noise texture map according to;

      10: Alpha1and Alpha2are used to control the noise texture ratio;

      11: visibility=clip(pixel.Alpha-);

      12: return visibility。

      2.2 加權(quán)鄰幀反走樣算法

      走樣主要分為幾何走樣(geometric aliasing)和著色走樣(shading aliasing)兩大類。幾何走樣是由光柵化時(shí)對邊緣像素采樣位置不同和精度不夠?qū)е? 體現(xiàn)為幾何邊緣的鋸齒現(xiàn)象; 著色走樣是由渲染時(shí)的采樣不足導(dǎo)致, 體現(xiàn)為畫面出現(xiàn)部分像素點(diǎn)閃爍或噪點(diǎn)。反走樣算法中的前采樣包括超級(jí)采樣反走樣(SSAA)[20-21]、多重投影反走樣(MSAA)[22]、覆蓋采樣反走樣(CSAA)[23]和增強(qiáng)質(zhì)量反走樣(EQAA)[24]等, 通過超采樣幾何邊緣達(dá)到模糊邊緣的效果。反走樣效果雖好, 但計(jì)算開銷過高, 所采用的前向渲染[25]思想非常依賴渲染管線, 只能緩解幾何走樣, 無法解決著色走樣問題。近年來, 游戲引擎中最常用的反走樣方法是后處理中的時(shí)間性反走樣(TAA)方法, 能夠有效地緩解幾何走樣和著色走樣問題。

      TAA 的核心思想是把樣本分?jǐn)偟竭^去的幀中, 即每幀只繪制一個(gè)像素點(diǎn), 對每個(gè)像素執(zhí)行單次采樣和單次著色的計(jì)算, 隨著幀的累計(jì), 將產(chǎn)生個(gè)采樣像素, 再通過加權(quán)混合個(gè)采樣點(diǎn)達(dá)到反走樣效果[26], 過程如式(3)和圖 3 所示。

      其中, 第幀的像素值為P, 當(dāng)前第幀的像素值為C, 加權(quán)值為ω

      同時(shí), 每幀像素還需要做一定的抖動(dòng)(jitter)處理, 否則不同幀在相同位置的像素值完全相同, 會(huì)失去分?jǐn)偠鄮囊饬x。隨著時(shí)間推移, 每個(gè)像素會(huì)包含周圍大范圍的顏色信息, 導(dǎo)致嚴(yán)重的模糊現(xiàn)象。當(dāng)畫面完全靜止時(shí), 前后兩幀的像素值無明顯變化, 這種累計(jì)結(jié)果僅會(huì)導(dǎo)致圖像模糊; 如果模型運(yùn)動(dòng)或環(huán)境變化等因素使前后兩幀的顏色信息發(fā)生完全變化, 將產(chǎn)生重影(ghosting)現(xiàn)象。

      針對這些問題, 本文提出一種加權(quán)鄰幀反走樣算法來處理圖形, 通過重投影[27-29]、檢驗(yàn)修正和加權(quán)混合鄰幀算法進(jìn)行優(yōu)化, 達(dá)到提升渲染效率和反走樣的目的。

      2.2.1 加權(quán)混合鄰幀采樣原理

      傳統(tǒng)的 TAA 同時(shí)保存多幀的方式開銷相對較高, 且容易出現(xiàn)模糊和重影問題。本文采用加權(quán)混合鄰幀采樣的方法進(jìn)行處理, 僅將相鄰兩幀的像素值進(jìn)行加權(quán)混合, 將混合結(jié)果作為當(dāng)前幀的像素值, 再與下一幀像素值進(jìn)行混合, 最終得到分?jǐn)偠鄮蓸咏Y(jié)果, 過程如式(4)所示。

      2.2.2 重投影

      實(shí)際項(xiàng)目中, 畫面并不是完全靜止的, 每幀渲染時(shí)都存在一定程度的像素抖動(dòng)、模型運(yùn)動(dòng)和渲染環(huán)境變化(例如光照條件)等問題。如圖 4 所示, 由于模型運(yùn)動(dòng), 當(dāng)前幀的像素點(diǎn) ABC 與前一幀?1對應(yīng)的位置′′′出現(xiàn)偏差, 這就需要進(jìn)行重投影, 計(jì)算當(dāng)前幀像素點(diǎn)在前一幀?1 所處的坐標(biāo), 并獲取其像素值。

      圖3 TAA分?jǐn)偛蓸舆^程

      圖4 模型運(yùn)動(dòng)導(dǎo)致的像素位置偏差問題

      其中,代表當(dāng)前幀的投影矩陣和視點(diǎn)矩陣,-1和-1代表上一幀的投影矩陣和視點(diǎn)矩陣。

      2.2.3 檢驗(yàn)和修正

      其中,為調(diào)節(jié)有效檢驗(yàn)嚴(yán)格程度的閾值。

      經(jīng)檢驗(yàn), 有效的像素重投影坐標(biāo)被存入 G-Buffer中, 無效的坐標(biāo)被標(biāo)記, 不進(jìn)入下一個(gè)后處理的重投影坐標(biāo)計(jì)算。如圖 5 所示, 當(dāng)鏡頭以一定的速度移動(dòng)時(shí), 采用傳統(tǒng) TAA 算法的場景會(huì)產(chǎn)生重影問題, 而使用重投影和檢驗(yàn)修正處理后的畫面渲染正常。

      綜上所述, 加權(quán)鄰幀反走樣算法流程如圖 6 所示。首先開啟抖動(dòng)補(bǔ)償渲染場景, 將運(yùn)動(dòng)模型的運(yùn)動(dòng)矢量存至速度緩存。在一個(gè)后處理過程中, 重投影當(dāng)前幀像素在前一幀中的位置和像素值, 并進(jìn)行檢驗(yàn)修正, 將當(dāng)前幀像素與前一幀像素加權(quán)混合, 結(jié)果輸出到下一幀并保存到歷史記錄緩沖區(qū)后, 準(zhǔn)備顯示到屏幕上。

      圖6 加權(quán)鄰幀反走樣技術(shù)流程

      Input: The projection matrix of the current frame and the previous frame,P,P-1; The viewpoint matrix of the current frame and the previous frame,V,V-1; The coordinate of the current frame pixel and the previous frame pixel,,′; The current frame and the previous frame,,-1; The position of the pixel,,′; The pixel value,S(),f-1(′); The weighted value,; The viewpoint depth of the current frame pixel and reprojection of the previous frame,d,d-1; The threshold value of the degree of inspection,;

      加權(quán)鄰幀反走樣算法偽代碼如下。

      Output: The result of weighted adjacent frames,f();

      2: if |1-d/d-1|

      3: The reprojection coordinate of the pixel is stored in G-buffer;

      4: else

      5: Discard the reprojection coordinate;

      6: end if

      7:f()=()S()+(1-)f-1(′);

      8: returnf()。

      3 實(shí)驗(yàn)分析與結(jié)論

      本文實(shí)驗(yàn)使用的電腦配置為 Windows10 操作系統(tǒng), 32G 內(nèi)存, CPU 采用Intel(R) Core(TM) i7-9700 3.00GHz, GPU 為 NVIDIA GeForce RTX 2070 SUPER, 8 G 顯存, 分辨率為 1920x1080?;?UE4 4.23 版本和 Visual Studio 2019 開發(fā)平臺(tái), 采用 C++編程語言, 將基于著色器 LOD 紋理混合與反走樣平滑過渡算法以插件形式嵌入引擎。從反走樣質(zhì)量、LOD 平滑效果和 LOD 平滑性能開銷 3 個(gè)方面進(jìn)行對比。

      3.1 LOD平滑過渡和反走樣質(zhì)量分析

      分別使用無反走樣、傳統(tǒng) TAA 和本文算法對場景模型進(jìn)行處理, 圖 7 顯示 3 種方式的效果對比圖??梢钥闯? 無反走樣處理的模型邊緣鋸齒明顯, 經(jīng)過傳統(tǒng) TAA 和本文算法處理后的場景鋸齒明顯得到緩解, 并且本文算法處理的場景比傳統(tǒng) TAA更加清晰, 有效地緩解傳統(tǒng) TAA 的模糊問題。

      使用無 LOD 平滑、UE4 自帶 LOD 平滑和本文算法 3 種方式對場景中的模型進(jìn)行處理, 測試其切換 LOD 時(shí)的平滑過渡效果。圖 8 顯示 3 種方式的效果對比可以看出, 不使用 LOD 平滑的模型存在突變問題; UE4 自帶方法與本文算法處理的模型均有LOD 平滑過渡效果, 但本文算法過渡層級(jí)細(xì)節(jié)更高, 效果更好, 而 UE4 的方法切換過快, 過渡效果不明顯。

      3.2 算法性能對比

      利用 3Ds Max 軟件創(chuàng)建某地表建筑和樹木模型, 并導(dǎo)入 UE4 中, 在地表建筑物模型數(shù)量固定的情況下, 將樹木數(shù)量作為區(qū)分場景規(guī)模大小的標(biāo)準(zhǔn), 兩種場景的頂點(diǎn)數(shù)、面數(shù)和模型數(shù)量見表 1, 兩個(gè)不同場景規(guī)模見圖 9。使用 UE4 的自動(dòng) LOD 生成系統(tǒng), 分別生成場景模型的 LOD, 在兩個(gè)場景中使用相同的漫游路線, 分別記錄在不同場景漫游時(shí)使用本算法、UE4 自帶的 LOD 平滑方式和不使用 LOD平滑 3 種方式的性能開銷。

      分別記錄使用 3 種方式處理后兩個(gè)場景中進(jìn)行

      圖7 無反走樣、傳統(tǒng)TAA和本文算法反走樣效果對比

      圖8 無LOD平滑、UE4自帶方法和本文算法的LOD平滑過渡效果對比

      表1 不同規(guī)模場景的數(shù)據(jù)量對比

      漫游的 GPU 處理每幀的耗時(shí)gpu和生成每幀的耗時(shí)frame, 結(jié)果如圖 10 所示??梢钥闯? 使用本算法平滑 LOD 的場景 GPU 處理每幀的耗時(shí)和生成每幀的耗時(shí)相對較少, 且穩(wěn)定在一個(gè)低值; 其他兩種方式的場景耗時(shí)普遍偏高, 且出現(xiàn)數(shù)個(gè)突變值和高值開銷段。這是由于在漫游過程中, 各個(gè)模型頻繁切換 LOD 層級(jí), 不使用 LOD 平滑的方式會(huì)出現(xiàn)明顯的形狀和紋理突變現(xiàn)象, 產(chǎn)生幀數(shù)跳躍和高開銷問題; UE4 自帶的平滑方式過渡效果較差, 過渡時(shí)間過快, 也會(huì)導(dǎo)致突變現(xiàn)象; 本算法采用的著色器LOD 紋理混合與反走樣的平滑過渡技術(shù), 使LOD層級(jí)過渡更加平滑, 畫面質(zhì)量更加穩(wěn)定。因此, 與其他兩種方式相比, 本文算法的 GPU 性能優(yōu)化效率更高, 能保持穩(wěn)定的畫面幀數(shù)和良好的視覺效果。

      圖9 兩種不同規(guī)模場景示意圖

      圖10 3種方式性能的開銷對比

      計(jì)算實(shí)驗(yàn)時(shí)間內(nèi) GPU 處理每幀的平均耗時(shí)g_avg、生成每幀的平均耗時(shí)f_avg以及平均幀率fps, 結(jié)果如表 2 所示??梢钥闯? 運(yùn)用本算法在GPU 處理每幀和生成每幀的平均耗時(shí)和平均幀率方面都有較大的性能優(yōu)勢。與不使用 LOD 平滑方式相比, 兩個(gè)場景 GPU 處理每幀和生成每幀的平均耗時(shí)分別減少 10%和 15%以上, 平均幀率提高 12% 和 17%以上; 與 UE4 自帶的 LOD 平滑方式相比, 兩個(gè)場景的 GPU 處理每幀和生成每幀的平均耗時(shí)分別減少 12%和 8%以上, 幀率提高 14%和 8%以上??梢? 使用本算法處理 LOD 的性能開銷明顯低于UE4 自帶的方式; 與不使用 LOD 平滑方式相比, 場景復(fù)雜度越高, 本算法 LOD 平滑方式的性能優(yōu)化效率越高。

      表2 平均性能開銷對比

      根據(jù)上述實(shí)驗(yàn)結(jié)果可知, 與不使用 LOD 過渡和 UE4 自帶的平滑方式相比, 使用本文算法進(jìn)行三維模型 LOD 間平滑過渡的性能優(yōu)化效率更高, 更能保持穩(wěn)定的畫面幀數(shù)和良好的視覺過渡效果; 與傳統(tǒng)的 TAA 相比, 本文算法能夠消除運(yùn)動(dòng)模型的重影現(xiàn)象, 反走樣質(zhì)量更高, 畫面更清晰, 從而增加虛擬場景漫游的真實(shí)感與流暢性。

      4 總結(jié)與展望

      本文提出一種基于著色器的 LOD 紋理混合與反走樣平滑過渡算法, 根據(jù)三維模型和視點(diǎn)的距離, 運(yùn)用基于 Alpha 測試的不透明蒙版算法和加權(quán)鄰幀反走樣算法, 在 LOD 間生成過渡材質(zhì), 能夠解決LOD 切換時(shí)形狀和紋理的突變以及反走樣問題。與現(xiàn)有紋理平滑過渡方法相比, 該算法性能開銷較低, 反走樣質(zhì)量較高, 能穩(wěn)定和提高畫面幀率, 并保持良好的視覺效果, 提高三維虛擬場景的制作質(zhì)量和加載的流暢性, 提升用戶交互體驗(yàn)。

      本文算法能在相對低配的硬件環(huán)境中, 以較低的開銷解決 LOD 的突變問題, 實(shí)現(xiàn) LOD 切換的平滑過渡, 但在一定程度上會(huì)增大紋理貼圖文件體積, 導(dǎo)致內(nèi)存占用率升高。隨著未來 UE5 的廣泛應(yīng)用以及硬件設(shè)備的更新?lián)Q代, Nanite 技術(shù)或?qū)⒊蔀殇秩救S場景采取的主流手段, 徹底解決 LOD 突變及走樣問題。

      [1]謝林霞.基于三維虛擬技術(shù)的城市環(huán)境規(guī)劃系統(tǒng)設(shè)計(jì).現(xiàn)代電子技術(shù), 2020, 43(13): 99-102

      [2]Clark J H.Hierarchical geometric models for visible surface algorithms.Communications of the ACM, 1976, 19(10): 547-554

      [3]Ripolles O, Chover M, Gumbau J, et al.Rendering continuous level-of-detail meshes by masking strips.Graphical Models, 2009, 71: 184-195

      [4]Hoppe H.Progressive meshes // Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques.New York, 1996: 99-108

      [5]杜瑩, 武玉國, 游雄.全球虛擬地形環(huán)境中Mipmap紋理技術(shù)研究.測繪科學(xué)技術(shù)學(xué)報(bào), 2006, 23(5): 355-358

      [6]張瑞秋, 褚原峰, 李晨, 等.Web環(huán)境下產(chǎn)品虛擬展示系統(tǒng)的場景優(yōu)化.計(jì)算機(jī)系統(tǒng)應(yīng)用, 2015, 24(3): 38-43

      [7]宋歌, 楊紅雨.基于紋理集的大規(guī)模場景模型優(yōu)化算法.計(jì)算機(jī)工程與設(shè)計(jì), 2011, 32(9): 3119-3122

      [8]Giegl M, Wimmer M.Unpopping: solving the image-space blend problem for smooth discrete LOD tran-sitions // Computer graphics forum.Oxford: Black-well Publishing Ltd, 2007: 46-49

      [9]杜文俊, 馮結(jié)青.面向延遲著色的統(tǒng)一反走樣算法.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2016, 28(1): 58-67

      [10]宋歌, 張子亞, 潘衛(wèi)軍.基于延遲著色與動(dòng)態(tài)目標(biāo)光效應(yīng)的航空場景反走樣算法.計(jì)算機(jī)應(yīng)用研究, 2021, 38(2): 625-630

      [11]王斌, 吳玉培, 吳志紅.基于 SRAA 延遲渲染反走樣.四川大學(xué)學(xué)報(bào)(自然科學(xué)版), 2015, 52(6): 1230-1236

      [12]Liktor G, Dachsbacher C.Decoupled deferred shading for hardware rasterization // Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games.Costa Mesa, 2012: 143-150

      [13]Engel W.GPU Pro 360 Guide to Rendering.New York: CRC Press, 2018

      [14]李根, 陳文倩, 張嚴(yán)辭.基于稀疏超采樣的時(shí)間性反走樣算法.圖學(xué)學(xué)報(bào), 2021, 42(1): 101-109

      [15]Xiao K, Liktor G, Vaidyanathan K.Coarse pixel shading with temporal supersampling // Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games.Montreal, 2018: 1-7

      [16]Karis B.High-quality temporal supersampling // Ad-vances in Real-Time Rendering in Games.Vancouver, 2014: 2614028-2615455

      [17]Wang P H, Chen Y M, Yang C L, et al.A predictive shutdown technique for GPU shader processors.IEEE Computer Architecture Letters, 2009, 8(1): 9-12

      [18]葉迎萍, 吳文江, 胡毅, 等.基于著色器 LOD 的模型間平滑過渡技術(shù).組合機(jī)床與自動(dòng)化加工技術(shù), 2018(11): 1-3

      [19]Scherzer D, Wimmer M.Frame sequential interpola-tion for discrete level-of-detail rendering // Computer graphics forum.Oxford: Blackwell Publishing Ltd, 2008: 1175-1181

      [20]Jiang X, Sheng B, Lin W, et al.Image anti-aliasing techniques for Internet visual media processing: a review.Journal of Zhejiang University-SCIENCE C, 2014, 15(9): 717-728

      [21]Jimenez J, Echevarria J I, Sousa T, et al.SMAA: en-hanced subpixel morphological antialiasing // Compu-ter graphics forum.Oxford: Blackwell Publishing Ltd, 2012: 355-364

      [22]Almeida T, Pereira J M, Jorge J.Evaluation of antia-liasing techniques on mobile devices // 2019 Interna-tional Conference on Graphics and Interaction (ICGI).Faro, 2019: 64-71

      [23]羅德寧, 張建偉.基于延遲著色技術(shù)的大場景反走樣渲染架構(gòu)設(shè)計(jì).工程科學(xué)與技術(shù), 2017, 49(4): 158-166

      [24]劉鏡榮, 杜慧敏, 杜琴琴.子像素形態(tài)學(xué)反走樣算法的改進(jìn).計(jì)算機(jī)應(yīng)用, 2017, 37(10): 2871-2874

      [25]邵鵬, 周偉, 李光泉, 等.一種后處理式的改進(jìn)反走樣算法.計(jì)算機(jī)科學(xué), 2018, 45(增刊2): 218-221

      [26]Yang L, Liu S, Salvi M.A Survey of temporal antialiasing techniques.STAR, 2020, 39(2): 607-621

      [27]Nehab D, Sander P V, Lawrence J, et al.Accelerating real-time shading with reverse reprojection caching // Proceedings of the 22nd ACM SIGGRAPH/EUROG-RAPHICS Symposium on Graphics Hardware.Aire-la-Ville: Eurographics Association Press, 2007: 25-35

      [28]Scherzer D, Jeschke S, Wimmer M.Pixel-correct sha-dow maps with temporal reprojection and shadow test confidence // Proceedings of the 18th Eurographics Conference on Rendering Techniques.Aire-la-Ville: Eurographics Association Press, 2007: 45-50

      [29]Yang L, Zhdan D, Kilgariff E, et al.Visually lossless content and motion adaptive shading in games.Proceedings of the ACM on Computer Graphics and Interactive Techniques, 2019, 2(1): 1-19

      [30]Yang L, Nehab D, Sander P V, et al.Amortized super-sampling.ACM Transactions on Graphics (TOG), 2009, 28(5): 1-12

      Research on Key Techniques of Smoothing Transition of LOD Texture Blending and Antialiasing Based on Shader

      JIANG Zhan1, LI Mei1,?, SUN Zhenming2, MAO Shanjun1

      1.Institute of Remote Sensing and Geographical Information System, Peking University, Beijing 100871; 2.School of Energy and Mining Engineering, China University of Mining and Technology (Beijing), Beijing 100083; ?

      , E-mail: mli@pku.edu.cn

      Aiming at the problem of LOD (level of detail) popping and aliasing when the LOD Level is switched, this paper proposes a shader-based smooth transition algorithm for LOD texture blending and antialiasing.According to the distance between the 3D model and the viewpoint, the opaque mask algorithm based on Alpha test and weighted adjacent frames antialiasing algorithm are used to generate transition materials between LODs to achieve smooth transition for LOD switching.It can not only improve the texture quality, but also ensure the fluency and authenticity of loading 3D scene.The experimental results show that, compared with the smoothing method of Unreal Engine 4, the average GPU time of the proposed algorithm is reduced by more than 8%, and the frame rate is increased by more than 8%.Compared with the existing texture smooth transition methods, this algorithm can optimize the GPU rendering performance, stabilize and improve the frame rate and maintain good visual effect, effectively solve the popping problem when the LOD Level is switched.

      popping; smooth transition of LOD; Alpha test; geometric antialiasing; shading antialiasing; temporal anti-aliasing (TAA)

      10.13209/j.0479-8023.2021.051

      2021-01-25;

      2021-03-26

      國家自然科學(xué)基金(51774281)和國家重點(diǎn)研發(fā)計(jì)劃(2016YFC0803108)資助

      猜你喜歡
      著色器走樣蒙版
      “雙減”,如何確保落地實(shí)施不走樣
      教育家(2022年18期)2022-05-13 15:42:15
      基于UE4 實(shí)時(shí)射線追蹤技術(shù)的研究與探討
      基于Unity Shader石油泄漏現(xiàn)象模擬的研究
      基于IMx6的opengl圖形著色器開發(fā)研究
      中國新通信(2020年2期)2020-06-24 03:06:44
      基于G-Buffer的深度學(xué)習(xí)反走樣算法
      詳解圖層蒙版
      影像視覺(2019年7期)2019-11-07 01:43:48
      中國生殖健康(2018年1期)2018-11-06 07:14:38
      淺析Fireworks中的蒙版技術(shù)
      電子世界(2017年8期)2017-04-25 07:00:16
      Photoshop中的蒙版技術(shù)淺析
      基于可編程渲染管線的雷達(dá)圖像分層模型設(shè)計(jì)與實(shí)現(xiàn)
      宽甸| 庆阳市| 澄迈县| 南木林县| 绥棱县| 镇平县| 建宁县| 湘西| 天津市| 通化市| 县级市| 惠安县| 晋城| 石狮市| 乌拉特后旗| 茌平县| 高唐县| 巴塘县| 嘉兴市| 鄄城县| 临清市| 大冶市| 威海市| 潼南县| 蒙城县| 新泰市| 亳州市| 西林县| 日土县| 临洮县| 措勤县| 金溪县| 石林| 龙里县| 文安县| 两当县| 宽甸| 铅山县| 双城市| 株洲县| 连云港市|