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

?

基于自適應(yīng)迭代面光源采樣的物理正確柔和陰影繪制算法

2018-06-21 06:30:32周文言陳純毅
關(guān)鍵詞:半影視場(chǎng)陰影

周文言,陳純毅

(長(zhǎng)春理工大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長(zhǎng)春 130022)

陰影由兩部分構(gòu)成:本影區(qū)和半影區(qū)。本影區(qū)是指在面光源的照射下所有光線(xiàn)均不能到達(dá)的區(qū)域,在視覺(jué)上表現(xiàn)為完全黑暗;半影區(qū)是指部分光線(xiàn)能夠到達(dá)的區(qū)域,在視覺(jué)上呈現(xiàn)出由暗到明自然過(guò)渡的陰影效果。真實(shí)地模擬出明暗過(guò)渡的半影現(xiàn)象一直以來(lái)都是柔和陰影算法研究的重點(diǎn)。目前流行的陰影繪制算法可以分為三類(lèi):陰影圖[1],陰影體[2]和全局光照算法[3]。蒙特卡羅可見(jiàn)性采樣通過(guò)向面光源產(chǎn)生隨機(jī)投射的陰影光線(xiàn)可以繪制出物理正確的柔和陰影效果,該方法可以很容易地加入到基于并行光線(xiàn)跟蹤的全局光照算法[4]中。然而它需要為每個(gè)可視場(chǎng)景點(diǎn)均產(chǎn)生大量的光源采樣點(diǎn),造成了很大的開(kāi)銷(xiāo)。

圖1 本文算法流程圖

Ramamoorthi等[5]通過(guò)對(duì)不同的非自適應(yīng)蒙特卡羅采樣方法進(jìn)行像素-光源空間的2D傅里葉分析,發(fā)現(xiàn)依據(jù)光源類(lèi)型選擇合適的可見(jiàn)性采樣策略可以減少20-40%的陰影采樣數(shù)量?;隰敯舻恼`差估計(jì),Bauszat等[6]為每個(gè)像素自適應(yīng)地選取一個(gè)最優(yōu)的重建濾波器,有效地減少了蒙特卡羅繪制中產(chǎn)生的陰影噪聲。Chen等[7]基于光線(xiàn)跟蹤算法計(jì)算出3D場(chǎng)景的光源可見(jiàn)性并通過(guò)采用盒體濾波器對(duì)可見(jiàn)性進(jìn)行平滑處理的方式生成在點(diǎn)光源照射下的近似柔和陰影。Egan等[8]提出一種基于蒙特卡羅光線(xiàn)跟蹤的4D可見(jiàn)性剪切濾波方法,通過(guò)復(fù)用鄰近像素的采樣點(diǎn)以較低的采樣率繪制出面光源照射下高質(zhì)量的柔和陰影。

為了解決蒙特卡羅可見(jiàn)性采樣開(kāi)銷(xiāo)大的問(wèn)題,本文提出了一種基于自適應(yīng)迭代面光源采樣的物理正確柔和陰影繪制算法,可顯著減少計(jì)算量,并繪制出高效的柔和陰影。

1 自適應(yīng)迭代面光源采樣方法

本文算法是在并行光線(xiàn)跟蹤框架中完成的。首先在每個(gè)可視場(chǎng)景點(diǎn)產(chǎn)生一個(gè)隨機(jī)光源采樣點(diǎn),投射陰影光線(xiàn)后計(jì)算3D場(chǎng)景的面光源可見(jiàn)性;然后采用可見(jiàn)性梯度探測(cè)算法,獲得半影區(qū)的啟發(fā)式信息;最后對(duì)半影區(qū)進(jìn)行大量采樣,對(duì)非半影區(qū)(本影區(qū)和完全可視區(qū)域)進(jìn)行少量采樣,并采用兩次迭代的方式計(jì)算出可視場(chǎng)景區(qū)域的面光源可見(jiàn)性。最終的全局光照值等于該值乘以不考慮遮擋情況下可視場(chǎng)景區(qū)域的直接光照值,加上間接光照值。本文算法的流程如圖1所示。圖2對(duì)自適應(yīng)面光源采樣的原理進(jìn)行了說(shuō)明。

柔和陰影算法的關(guān)鍵是模擬出半影區(qū)由明到暗自然過(guò)渡的陰影效果,為此每個(gè)可視場(chǎng)景點(diǎn)均需要進(jìn)行大量的陰影光線(xiàn)求交計(jì)算,會(huì)造成巨大的計(jì)算開(kāi)銷(xiāo)。然而,對(duì)于位于本影區(qū)或者完全可視區(qū)域的可視場(chǎng)景點(diǎn)而言,由于其可見(jiàn)性是非0(不可見(jiàn))即1(可見(jiàn))的,因此若進(jìn)行均勻采樣會(huì)造成計(jì)算量上的浪費(fèi)。

圖2 自適應(yīng)面光源采樣的原理

基于可見(jiàn)性梯度探測(cè)算法,在確定需要進(jìn)行大量采樣的可視場(chǎng)景區(qū)域后,通過(guò)為半影區(qū)和非半影區(qū)(本影區(qū)和完全可視區(qū)域)自適應(yīng)地計(jì)算出光源采樣點(diǎn)的數(shù)量,可以顯著減少面光源可見(jiàn)性的計(jì)算量,提高算法的性能。

下面給出本文算法的詳細(xì)步驟:

(1)創(chuàng)建包含兩個(gè)元素的一維數(shù)組atten[0]、atten[1],用于存儲(chǔ)可視場(chǎng)景點(diǎn)連續(xù)兩次迭代的面光源可見(jiàn)性。創(chuàng)建兩個(gè)屏幕空間大小的2D緩沖區(qū)Vis[M×N]={1}、Grad[M×N]={0},用于存儲(chǔ)3D場(chǎng)景的直接光照可見(jiàn)性和可見(jiàn)性梯度值。變量i用于記錄投射主光線(xiàn)的次數(shù)。

(2)為可視場(chǎng)景點(diǎn)p設(shè)置一個(gè)隨機(jī)的光源采樣點(diǎn)。

(3)從視點(diǎn)出發(fā)向可視場(chǎng)景點(diǎn)p投射主光線(xiàn),然后進(jìn)行遞歸式光線(xiàn)跟蹤。

①記錄可視場(chǎng)景點(diǎn)p的面光源可見(jiàn)性V,存入緩存Vis、atten[i%2]。

②采用可見(jiàn)性梯度探測(cè)算法計(jì)算出緩存Vis中可視場(chǎng)景點(diǎn)p的可見(jiàn)性梯度值G,存入緩存Grad。

③如果可見(jiàn)性梯度值G大于0,則可視場(chǎng)景點(diǎn)p所在的區(qū)域?yàn)榘胗皡^(qū),設(shè)置其光源采樣點(diǎn)數(shù)量為k1;否則該可視場(chǎng)景點(diǎn)所在區(qū)域?yàn)楸居皡^(qū)或者完全可視區(qū)域,設(shè)置其光源采樣點(diǎn)數(shù)量為k2。(k1應(yīng)大于k2,在本文算法中設(shè)置k1=9,k2=4)。

(4)采用分層隨機(jī)抖動(dòng)采樣方法[9]確定多個(gè)光源采樣點(diǎn)的位置分布情況,并重復(fù)(3)。

(5)對(duì)(4)迭代n次后計(jì)算可視場(chǎng)景點(diǎn)p的面光源可見(jiàn)性(atten[0]+atten[1])/2。(本文算法中迭代次數(shù)n設(shè)置為2)。

2 可見(jiàn)性梯度探測(cè)算法

本文采用對(duì)面光源可見(jiàn)性按列作差值運(yùn)算的方式,通過(guò)判斷可見(jiàn)性梯度值的大小來(lái)獲得半影區(qū)的啟發(fā)式信息,從而確定面光源照射下3D場(chǎng)景中半影區(qū)域的范圍。

可見(jiàn)性梯度探測(cè)算法的原理如圖3所示。由于每個(gè)可視場(chǎng)景點(diǎn)只向3D場(chǎng)景中投射一條陰影光線(xiàn),因此其面光源可見(jiàn)性是非0(不可見(jiàn))即1(可見(jiàn))的。如果在這張二值面光源可見(jiàn)性圖中存在一個(gè)連續(xù)區(qū)域,該區(qū)域內(nèi)所有元素對(duì)應(yīng)的可視場(chǎng)景點(diǎn)面光源可見(jiàn)全為0則該區(qū)域?yàn)楸居皡^(qū),如果全為1則為完全可視區(qū)域。由于半影區(qū)是本影區(qū)到完全可視區(qū)域的一個(gè)過(guò)渡區(qū)域,因此該區(qū)域中可視場(chǎng)景點(diǎn)的光源可見(jiàn)性可能為0也可能為1,是不連續(xù)的。若為每個(gè)可視場(chǎng)景點(diǎn)投射多條陰影光線(xiàn),則半影區(qū)的光源可見(jiàn)性在[0,1]之間。對(duì)面光源可見(jiàn)性按列作差值運(yùn)算,計(jì)算出當(dāng)前可視場(chǎng)景點(diǎn)與相鄰可視場(chǎng)景點(diǎn)的可見(jiàn)性梯度值。如果該值>0.0f,表示兩者之間的可見(jiàn)性是不連續(xù),即當(dāng)前可視場(chǎng)景點(diǎn)處于半影區(qū),需要為其產(chǎn)生更多的光源采樣點(diǎn);反之,只需要為其產(chǎn)生較少的光源采樣點(diǎn)。圖4(b)為對(duì)圖4(a)經(jīng)過(guò)可見(jiàn)性梯度檢測(cè)得到的半影圖。

圖4 兩次迭代面光源可見(jiàn)性效果對(duì)比

僅經(jīng)過(guò)一次可見(jiàn)性梯度探測(cè)只能粗略地判斷出半影區(qū)的范圍,誤差較大。因此本文采用多次迭代的方式,通過(guò)累加前一次迭代的面光源可見(jiàn)性,可以以更小的誤差計(jì)算出3D場(chǎng)景的面光源可見(jiàn)性。

兩次迭代的面光源可見(jiàn)性效果對(duì)比如圖4所示。圖4(a)為每個(gè)可視場(chǎng)景點(diǎn)只進(jìn)行一次光源可見(jiàn)性計(jì)算得到的原始二值面光源可見(jiàn)性圖,對(duì)其進(jìn)行可見(jiàn)性梯度探測(cè)后得到圖4(b)所示的半影圖。圖4(b)中白色區(qū)域即為需要進(jìn)行大量光源采樣的可視場(chǎng)景區(qū)域。圖4(c)為進(jìn)行第一次自適應(yīng)迭代面光源采樣后得到的面光源可見(jiàn)性圖,對(duì)其進(jìn)行可見(jiàn)性梯度探測(cè)后得到圖4(d)所示的半影圖。圖4(e)為兩次迭代后得到的面光源可見(jiàn)性圖,同圖4(a)、4(c)相比可以發(fā)現(xiàn),經(jīng)過(guò)多次可見(jiàn)性梯度探測(cè)后其半影區(qū)域的過(guò)渡更加平滑,并進(jìn)一步減少了陰影區(qū)域的噪聲。

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

本文實(shí)驗(yàn)的計(jì)算機(jī)配備 Intel(R) Xeon(R)E3-1225 v3 3.2GHz CPU,8GB內(nèi)存和NVIDIA Quadro K2200顯示,算法采用NVIDIA OptiX SDK光線(xiàn)跟蹤加速引擎和NVIDIA CUDA并行計(jì)算架構(gòu),并使用SBVH加速結(jié)構(gòu)[10]來(lái)加速光線(xiàn)跟蹤的求交運(yùn)算。實(shí)驗(yàn)中的屏幕分辨率為1024×768,4個(gè)不同場(chǎng)景復(fù)雜度下本文算法的繪制結(jié)果如圖5所示。表1對(duì)圖5中場(chǎng)景的三角面片數(shù)和繪制時(shí)間進(jìn)行了統(tǒng)計(jì)。實(shí)驗(yàn)結(jié)果表明,本文算法能高效地繪制出面光源照射下物理正確的柔和陰影。

圖5 本文算法的繪制結(jié)果

表1 圖5所示實(shí)驗(yàn)場(chǎng)景的繪制時(shí)間

本文以蒙特卡羅算法生成的圖像作為參照,來(lái)驗(yàn)證采用本文算法生成的物理正確柔和陰影的有效性。如圖6所示,圖6(a)和圖6(b)對(duì)這兩種算法的繪制效果進(jìn)行了比較;通過(guò)對(duì)圖6(a)和圖6(b)對(duì)應(yīng)位置的像素值作相減計(jì)算,并放大10倍后,得到了圖6(c)所示的10倍圖像差。觀(guān)察該圖像差可以發(fā)現(xiàn),圖中的黑色區(qū)域(存在差異的部分)在放大10倍后才基本可見(jiàn);對(duì)比兩種算法的性能可以發(fā)現(xiàn),本文算法的繪制時(shí)間減少了1倍左右。因此可以證明本文算法雖然極大地減少了計(jì)算量,但是繪制效果并沒(méi)有明顯下降。

圖6 與蒙特卡羅算法性能比較

表2 不同算法的繪制時(shí)間比較(ms/幀)

表2對(duì)在不同分辨率下,本文算法與蒙特卡羅算法的繪制時(shí)間進(jìn)行了比較??梢园l(fā)現(xiàn),在同等柔和陰影質(zhì)量的情況下,本文算法的性能都明顯優(yōu)于蒙特卡羅算法。

4 結(jié)論

本文提出了一種基于自適應(yīng)迭代面光源采樣的物理正確柔和陰影繪制算法,通過(guò)自適應(yīng)地計(jì)算每個(gè)可視場(chǎng)景點(diǎn)需要產(chǎn)生的光源采樣點(diǎn)數(shù)量,解決了可見(jiàn)性計(jì)算開(kāi)銷(xiāo)大的問(wèn)題,有效提高了算法的性能。與蒙特卡羅算法進(jìn)行對(duì)比發(fā)現(xiàn),本文算法不僅能夠繪制出高質(zhì)量的柔和陰影,而且在算法性能上擁有很大的優(yōu)勢(shì)。

[1]Liktor G,Spassov S,Dachsbacher C.Stochastic soft shadow mapping[J].Computer Graphics Forum,2015,34(4):1-11.

[2]Kolivand H,Sunar M S.Survey of shadow volume algorithms in computer graphics[J].Iete Technical Review,2013,30(1):38-46.

[3]陳純毅,楊華民,李文輝,等.基于環(huán)境遮擋掩碼的物理正確柔和陰影繪制算法[J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2012,42(4):971-978.

[4]張全貴,王普,閆健卓,等.基于光線(xiàn)跟蹤方法的全局光照研究[J].計(jì)算機(jī)科學(xué),2010,37(4):27-30.

[5]Ramamoorthi R,Anderson J,Meyer M,et al.A theory ofmonte carlo visibility sampling[J].Acm Transactions on Graphics,2012,31(5):1-16.

[6]Bauszat P,Eisemann M,Eisemann E,et al.General and robust error estimation and reconstruction for monte carlo rendering[J].Computer Graphics Forum,2015,34(2):597-608.

[7]Chen C Y,Yang H M,Li H.Interactive rendering of approximate soft shadows using ray tracing with visibility filtering[C].Proceedings of the 2016 International Conference on Computer Science,Technology and Application.Singapore:World Scientific Publishing,2016:68-74.

[8]Egan K,Hecht F,Durand F,et al.Frequency analysis and sheared filtering for shadow light fields of complex occluders[J].Acm Transactions on Graphics,2011,30(2):9.

[9]Mitchell D P.Consequences of stratified sampling in graphics[C].Conferenceon ComputerGraphics and Interactive Techniques.New York:ACM Press,1996:277-280.

[10]Stich M,F(xiàn)riedrich H,and Dietrich A.Spatial splits in bounding volume hierarchies[C].Proceedings of the Conference on High Performance Graphics.New York:ACM Press,2009:7-13.

猜你喜歡
半影視場(chǎng)陰影
5月天象預(yù)報(bào)
星模擬器光學(xué)系統(tǒng)視場(chǎng)拼接方法的研究
你來(lái)了,草就沒(méi)有了陰影
文苑(2020年11期)2020-11-19 11:45:11
食物相克之說(shuō)靠譜嗎
方圓(2020年23期)2020-01-07 00:51:47
醫(yī)用內(nèi)窺鏡矩形視場(chǎng)下入瞳視場(chǎng)角的測(cè)試方法研究
讓光“驅(qū)走”陰影
半影月食
陰影魔怪
輕小型面陣擺掃熱紅外成像系統(tǒng)研究
石棉县| 涟水县| 怀柔区| 松阳县| 阆中市| 绵阳市| 内黄县| 淮南市| 康马县| 绥滨县| 南充市| 青铜峡市| 双牌县| 太原市| 绩溪县| 津市市| 德令哈市| 新泰市| 赤壁市| 长垣县| 宁都县| 南平市| 桃江县| 濉溪县| 辽宁省| 潼关县| 嘉祥县| 建平县| 孟村| 华蓥市| 顺昌县| 武川县| 彝良县| 罗源县| 林西县| 洞口县| 新竹市| 安国市| 呼和浩特市| 石阡县| 浠水县|