亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        2.1 基于 Alpha 測(cè)試的不透明蒙版算法

        2.1.1 Alpha 測(cè)試算法

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

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

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

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

        2.1.2 基于Alpha測(cè)試的不透明蒙版算法

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

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

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

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

        得到隨距離動(dòng)態(tài)變化的兩個(gè) Alpha 后, 使用噪聲紋理混合算法為材質(zhì)疊加噪聲貼圖[19], 通過(guò)控制像素顯示的數(shù)量來(lái)改變模型的可見(jiàn)性。以一張 2D噪聲紋理貼圖為基準(zhǔn), 將貼圖每個(gè)像素映射到噪聲紋理對(duì)應(yīng)的像素上, 將像素的透明度與蒙版預(yù)先設(shè)置好的閾值進(jìn)行比較, 丟棄小于閾值的像素。像素的可見(jià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 值變化趨勢(shì)相反, 新 LOD 兩層材質(zhì)隨距離的變化將呈現(xiàn)交替過(guò)渡的效果。使用的噪聲紋理貼圖與模型噪聲紋理比例變化示意如圖 2 所示。

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

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

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

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

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

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

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

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

        2.2.2 重投影

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

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

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

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

        綜上所述, 加權(quán)鄰幀反走樣算法流程如圖 6 所示。首先開(kāi)啟抖動(dòng)補(bǔ)償渲染場(chǎng)景, 將運(yùn)動(dòng)模型的運(yùn)動(dòng)矢量存至速度緩存。在一個(gè)后處理過(guò)程中, 重投影當(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 開(kāi)發(fā)平臺(tái), 采用 C++編程語(yǔ)言, 將基于著色器 LOD 紋理混合與反走樣平滑過(guò)渡算法以插件形式嵌入引擎。從反走樣質(zhì)量、LOD 平滑效果和 LOD 平滑性能開(kāi)銷(xiāo) 3 個(gè)方面進(jìn)行對(duì)比。

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

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

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

        3.2 算法性能對(duì)比

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

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

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

        圖8 無(wú)LOD平滑、UE4自帶方法和本文算法的LOD平滑過(guò)渡效果對(duì)比

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

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

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

        圖10 3種方式性能的開(kāi)銷(xiāo)對(duì)比

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

        表2 平均性能開(kāi)銷(xiāo)對(duì)比

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

        4 總結(jié)與展望

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

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

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

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

        [7]宋歌, 楊紅雨.基于紋理集的大規(guī)模場(chǎng)景模型優(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)的航空?qǐ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 的模型間平滑過(guò)渡技術(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ù)的大場(chǎng)景反走樣渲染架構(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

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

        猜你喜歡
        著色器走樣蒙版
        “雙減”,如何確保落地實(shí)施不走樣
        教育家(2022年18期)2022-05-13 15:42:15
        基于UE4 實(shí)時(shí)射線(xiàn)追蹤技術(shù)的研究與探討
        基于Unity Shader石油泄漏現(xiàn)象模擬的研究
        基于IMx6的opengl圖形著色器開(kāi)發(fā)研究
        基于G-Buffer的深度學(xué)習(xí)反走樣算法
        詳解圖層蒙版
        中國(guó)生殖健康(2018年1期)2018-11-06 07:14:38
        淺析Fireworks中的蒙版技術(shù)
        電子世界(2017年8期)2017-04-25 07:00:16
        Photoshop中的蒙版技術(shù)淺析
        基于可編程渲染管線(xiàn)的雷達(dá)圖像分層模型設(shè)計(jì)與實(shí)現(xiàn)
        久久国产综合精品欧美| 国产一区二区三区在线影院| av在线免费观看大全| 精品人妻av一区二区三区| 日本真人边吃奶边做爽动态图| 免费无码高潮流白浆视频| 国产69精品久久久久999小说| 狠狠久久精品中文字幕无码| 61精品人妻一区二区三区蜜桃| 国产av剧情刺激对白| 97久久草草超级碰碰碰| 在线亚洲综合| 亚洲天堂av免费在线看| 久久视频在线视频精品| 国产亚洲熟妇在线视频| 亚洲中文字幕无码中文字| 亚洲熟妇无码av不卡在线播放| 久久精品国产亚洲片| 能看不卡视频网站在线| 国产乱子伦精品无码专区| 午夜不卡av免费| 欧美三级免费网站| 亚洲一区二区三区在线观看| 国产视频一区二区三区在线免费| 日本高清视频www| 女人体免费一区二区| 日韩视频午夜在线观看| 欧美人与善在线com| 国产成人av一区二区三区在线| 91精品啪在线观看国产18| 日韩肥熟妇无码一区二区三区| 国产成人亚洲综合二区| 亚洲av色香蕉一区二区三区| 色婷婷综合中文久久一本| 韩国无码精品人妻一区二| 亚洲中文字幕九色日本| а天堂中文在线官网| 天天狠天天透天干天天| 成人黄色片久久久大全| 日本另类αv欧美另类aⅴ| 国产精品jizz在线观看老狼|