国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)體素錐追蹤的大規(guī)模場景光照計算

2020-06-07 07:06喻光繼羅偉泰吳肖云
計算機(jī)應(yīng)用 2020年5期
關(guān)鍵詞:法線體素級聯(lián)

喻光繼,羅偉泰,吳肖云

(1.廣西財經(jīng)學(xué)院信息與統(tǒng)計學(xué)院,南寧530003; 2.廣西自然資源職業(yè)技術(shù)學(xué)院公共基礎(chǔ)部,南寧530100)

(?通信作者電子郵箱luoweitai@126.com)

0 引言

計算機(jī)技術(shù)的發(fā)展,使得虛擬現(xiàn)實技術(shù)的應(yīng)用越來越深入,而全局光照是虛擬世界真實感的重要組成[1],但由于對于大規(guī)模復(fù)雜場景的全局光照計算,計算量和資源占用難以滿足實時性要求[2],因此,需要有效的存儲結(jié)構(gòu)和計算方法來優(yōu)化全局光照在大規(guī)模場景中的計算[3]。

光線追蹤[4]和體素錐結(jié)構(gòu)[5]是常用的全局光照計算方法,其通常采用八叉樹等結(jié)構(gòu)加速存儲計算:薛俊杰等[6]采用多級小波分解及多級系數(shù)編碼,增加細(xì)節(jié)信息,實現(xiàn)多分辨率渲染;Blumensath等[7]提出稀疏體素與八叉樹索引相結(jié)合的信息存儲結(jié)構(gòu),提高了間接光照的計算效率,但存儲空間需求較大;Wang等[8]優(yōu)化了稀疏體素八叉樹,但節(jié)點編碼仍占用較多資源;K?mpe等[9]采用稀疏體素有向無環(huán)圖(Sparse Voxel Directed Acyclic Graph,SVDAG)結(jié)構(gòu)減少冗余共享節(jié)點的存儲;袁昱緯等[10]以幀間復(fù)用對SVDAG結(jié)構(gòu)進(jìn)行改進(jìn),以避開重復(fù)合并;郭向坤等[11]采用 CPU(Central Processing Unit)與GPU(Graphics Processing Unit)協(xié)同的并行掃描線優(yōu)化大規(guī)模場景體素化。

體素錐追蹤在復(fù)雜光照計算時取得較好效果[6-10],但八叉樹及改進(jìn)結(jié)構(gòu)[7]在大規(guī)模實時渲染時,體素數(shù)隨場景規(guī)模而劇增,且由于結(jié)構(gòu)不具有各向異性,遍歷查找困難耗時[12-13],為此,針對大規(guī)模復(fù)雜場景提出基于改進(jìn)體素錐濾波器追蹤的全局光照計算算法,以級聯(lián)紋理結(jié)構(gòu)優(yōu)化信息存儲,基于法線加權(quán)累積計算光照衰減,基于級聯(lián)紋理結(jié)構(gòu)改進(jìn)錐波濾器以優(yōu)化體素的動態(tài)計算查找。

1 改進(jìn)體素追蹤算法原理

1.1 級聯(lián)紋理結(jié)構(gòu)優(yōu)化場景體素化

本文采用級聯(lián)體素紋理結(jié)構(gòu)表達(dá)場景,代替原有的三角形表達(dá),該結(jié)構(gòu)依據(jù)人眼的距離敏感性,將場景劃分為互嵌套的距離圖元網(wǎng)格[14]。區(qū)域離人眼越近,其網(wǎng)格越小以便高分辨率地精細(xì)描述景物,網(wǎng)格以相互嵌套正方體形狀,沿視角方向延展,其三層網(wǎng)絡(luò)示意圖如圖1所示,文中取n=6。

級聯(lián)結(jié)構(gòu)中的基本紋素與體素對應(yīng),為保護(hù)結(jié)構(gòu)各向異性存儲體素的6個面信息,從而以合理的方式由近及遠(yuǎn)將場景覆蓋,體素的各向異性保證了光照計算的準(zhǔn)確性,且有利于體素間的三線性插值和硬件加速查找。

1.2 直接光照

直接光照的計算及其分布通常與光線的傳輸方程相關(guān),物體p點的光線傳輸方程為:

式中:Ω為p點所處半球空間,ω0、ωi為光線出射和入射角;L0、Le、Li分別為出射、發(fā)射和入射的輻射照度;f為雙向反射函數(shù)(Bidirectional Reflection Distribution Function,BRDF),cosθi=n?ωi為入射光在p點的法線n的衰減,ωi為光線方向矢量。

直接光照計算時采用體素多三角形面片法向均值計算cosθi,某些體素會因法線反向而無法正確接收光照,為此,提出基于法線加權(quán)累積的光照衰減計算方法,即:

式中:k為三角形面片的數(shù)目,n j為各面片的法線,V為法線衰減值,ns、Ls為坐標(biāo)軸分量。

1.3 各向異性過濾

為保持光線追蹤時采樣的一致性,需建立各向異性的輻射體層級。如圖2所示為三維紋理生成貼圖的過程,在體素劃分的基礎(chǔ)上,對各坐標(biāo)軸求和并計算均值;采樣時根據(jù)光照入射角插值計算其輻射值。每次入射輻射度收集后都需各向異性過濾,本文對直接和間接光照都進(jìn)行了入射輻射度收集和各向異性過濾。

圖2 各向異性過濾與采樣Fig.2 Anisotropic filteringand sampling

1.4 改進(jìn)的光照體素錐追蹤計算

間接光照需要計算半球內(nèi)的所有積分,計算量巨大,為此,提出基于級聯(lián)紋理的改進(jìn)錐濾波器追蹤算法。在光照采集時,以級聯(lián)體素的法向量均值作為起始點,定義k個錐波濾器,漫反射模擬為60o光圈值的6個錐體,而高光反射模擬為10o光圈值的單椎體。

改進(jìn)錐濾波器依次排列樣本模塊,并與級聯(lián)等級對應(yīng),如圖3(a)所示,各模塊到錐頂點p的距離l與角度β確定了當(dāng)前采樣模塊的直徑r,再結(jié)合體素寬度Ws,則可計算得到體素所處的級聯(lián)等級d:

圖3 錐濾波器與級聯(lián)紋理Fig.3 Conefilter and cascadingtexture

由d、r及角度β可自行計算體素位置,避免對整個存儲結(jié)構(gòu)的遍歷。每個錐波濾器計算采樣值后,由k=6個錐累積值作為當(dāng)前體素的光亮值。

在第m步中,錐濾波器需要動態(tài)更新輻射度cm及相應(yīng)的累積遮蔽值am,即:

式中:hc為存儲輻射度,ha為存儲遮蔽值。直接光照注入后,將各錐濾波器的結(jié)果加權(quán)乘以反射率,再加上直接光照值,即得到體素的最終光亮度。

2 實驗結(jié)果與分析

實驗選取康奈爾靜態(tài)場景[13]和 Sponza、Sibenic 以及Cathedral[14]動態(tài)場景,從規(guī)模、速度和內(nèi)存消耗等方面對文中算法性能進(jìn)行測試,環(huán)境為:Intel Xeon E5-2643 v4 3.4 GHz,32 GB內(nèi)存,NVIDIA M4000 8 GB顯存。

2.1 級聯(lián)體素紋理結(jié)構(gòu)性能比較實驗

為驗證級聯(lián)體素紋理結(jié)構(gòu)存儲的優(yōu)勢,以三維紋理[2]、稀疏八叉樹[8]、基于 Morton碼的稀疏八叉樹(Morton-based Sparse Voxel Octree,MSVO)結(jié)構(gòu)[5]和 SVDAG 結(jié)構(gòu)[10]作為實驗比較算法,從體素規(guī)模、運行時間及內(nèi)存消耗3個方面測試對比,實驗結(jié)果如圖4所示。

圖4 各算法的體素結(jié)構(gòu)性能比較結(jié)果Fig.4 Voxel structureperformancecomparison of different algorithms

從圖4(a)實驗結(jié)果可以看出,三維紋理結(jié)構(gòu)在各場景下的體素規(guī)模都最大,而稀疏八叉樹、MSVO、SVDAG的體素規(guī)模有明顯減少,但仍遠(yuǎn)高于文中級聯(lián)結(jié)構(gòu)。不同分辨率下的實驗結(jié)果進(jìn)一步分析可知,低分辨率時,稀疏八叉樹的體素規(guī)模與文中結(jié)構(gòu)相差不大;但隨著分辨率的增加,規(guī)模差異隨之增大,主要因為級聯(lián)紋理按層次劃分存儲,相鄰層呈倍數(shù)遞增,小規(guī)模場景的分層優(yōu)勢不明顯,但在高分辨率下僅需增加層數(shù)。

從圖4(b)結(jié)果可以發(fā)現(xiàn),稀疏八叉樹及MSVO結(jié)構(gòu)的復(fù)雜邏輯不利于快速數(shù)據(jù)遍歷,而級聯(lián)紋理的分層存儲在減小體素規(guī)模的同時,更利于數(shù)據(jù)的遍歷和查找,因而極大縮短體素化運行時間。

在內(nèi)存消耗方面,以像素透明屬性作為實驗比較統(tǒng)計量,實驗結(jié)果如圖4(c)所示,可以看出,文中結(jié)構(gòu)的6個面信息存儲仍具有明顯的內(nèi)存占用優(yōu)勢,且隨著分辨率的增加,內(nèi)存占用呈線性增加。

2.2 渲染效果比較實驗

由于間接光照具有更大的渲染難度,為此,以間接光照的渲染效果來比較本文算法與MSVO算法[14]、稀體素錐追蹤算法[5]及光驅(qū)動體素法[11]四種算法的渲染效果,實驗結(jié)果如圖5所示。

圖5 不同算法間接光照渲染效果Fig.5 Indirect illumination renderingeffects of different algorithms

從結(jié)果可以看出,光驅(qū)動體素法采用體素分散結(jié)構(gòu)與錐追蹤融合計算間接光照,可以看出,其渲染的間接光照較柔和,但遠(yuǎn)區(qū)域細(xì)節(jié)較差,體素錐追蹤算法與文中算法的渲染效果與真實場景視覺質(zhì)量相近,對遠(yuǎn)區(qū)域細(xì)節(jié)也能夠較好地表達(dá),說明文中算法遠(yuǎn)視域大體積體素渲染,獲得與體素錐追蹤算法相似的渲染效果。

綜合整體實驗結(jié)果,所提算法在取得較好的渲染效果基礎(chǔ)上,極大地降低了體素化規(guī)模和內(nèi)存消耗,縮短了渲染運行時間,有利于大規(guī)模復(fù)雜場景全局光照的實時繪制。

3 結(jié)語

計算機(jī)性能的提高使得虛擬現(xiàn)實在軍事、教育、娛樂等領(lǐng)域的應(yīng)用越來越深入,而全局光照的計算和渲染是真實感增強(qiáng)及場景分析等虛擬現(xiàn)實技術(shù)的重要組成部分。本文提出一種基于改進(jìn)體素錐濾波器追蹤的全局光照計算算法,算法通過級聯(lián)紋理結(jié)構(gòu)快速光照信息存儲、法線加權(quán)累積光照衰減計算和體素動態(tài)遍歷計算,實現(xiàn)全局光照的高效渲染計算,并避免法線反向問題。實驗結(jié)果表明,改進(jìn)算法在降低內(nèi)存占用、提高渲染速度的同時,保持與經(jīng)典稀疏體素追蹤算法相近的渲染效果。

猜你喜歡
法線體素級聯(lián)
鈾濃縮廠級聯(lián)系統(tǒng)核安全分析
實現(xiàn)級聯(lián)形狀回歸方法對視線追蹤
瘦體素決定肥瘦
多供取料的Q模型級聯(lián)的數(shù)學(xué)描述
點云數(shù)據(jù)的凹陷體判定算法
Dividing cubes算法在數(shù)控仿真中的應(yīng)用
骨骼驅(qū)動的軟體角色動畫
橢圓法線定理的逆定理
啟發(fā)教學(xué)之“法”
光的反射規(guī)律探究實驗中的一些改進(jìn)
沙田区| 绥宁县| 沙雅县| 临安市| 务川| 丰都县| 烟台市| 旬阳县| 汾阳市| 吴川市| 女性| 清流县| 古田县| 蒙自县| 鹿泉市| 泰来县| 河津市| 玉田县| 宜兰市| 泽库县| 达孜县| 渝中区| 安宁市| 红河县| 砀山县| 高清| 沅江市| 涿鹿县| 策勒县| 太康县| 陵水| 河南省| 岚皋县| 庆安县| 自贡市| 基隆市| 上饶县| 南澳县| 沙洋县| 东阿县| 于都县|