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

?

基于面光源可見性空間復(fù)用的3D場景柔和陰影繪制算法

2018-12-17 07:33:20周文言陳純毅
關(guān)鍵詞:視場陰影景點(diǎn)

周文言,陳純毅

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

面光源照射下的三維場景柔和陰影交互式繪制是目前3D圖形學(xué)中的重要研究課題之一。同邊界明顯的硬陰影相比,柔和陰影能夠顯著增強(qiáng)繪制圖像畫面的視覺真實(shí)感,呈現(xiàn)出由明到暗自然過渡的光照效果。為了繪制出這種光照效果,光線跟蹤算法[1]需要為每個(gè)可視場景點(diǎn)產(chǎn)生大量的光源采樣點(diǎn),這會(huì)導(dǎo)致可見性計(jì)算開銷過大。而且,由于采用蒙特卡羅采樣[2]使得所生成的柔和陰影存在明顯噪聲。

基于層次包圍盒的空間劃分研究,Stich等[3]提出一種高效的層次結(jié)構(gòu)加速算法(SBVH),該算法解決了層次包圍盒算法在面對(duì)不均勻細(xì)分場景時(shí)光線投射成本過大的問題,能夠大幅度提升3D場景的繪制速度。Benthin等[4]只對(duì)處于遮擋狀態(tài)的場景點(diǎn)投射陰影光線并進(jìn)行多平截頭體跟蹤(Multi Frusta Tracing),減少了不必要的陰影光線求交測試,進(jìn)一步提高了光線跟蹤的性能;采用交織采樣(Interleaved Sampling)和不連續(xù)緩存濾波(Discontinuity Buffer Filtering)相結(jié)合的方式,在低采樣率的前提下有效地減少了陰影噪聲,實(shí)現(xiàn)了柔和陰影的實(shí)時(shí)繪制。然而該方法必須充分利用Larrabee體系結(jié)構(gòu)中單指令多數(shù)據(jù)流的硬件并行計(jì)算能力。Mora等[5]利用相鄰場景點(diǎn)可見性的相關(guān)性,對(duì)多邊形的可見性采取惰性編碼的方式解決任意場景點(diǎn)的面光源可見性計(jì)算。該算法雖然可以生成準(zhǔn)確的柔和陰影,但是當(dāng)幾何分辨率遠(yuǎn)遠(yuǎn)高于圖像分辨率時(shí),由于圖像點(diǎn)數(shù)量的不足會(huì)降低可見性的重用率從而造成效率的損失。Chen等[6]提出一種基于幀間復(fù)用的可見性濾波方法,其依據(jù)連續(xù)幀之間像素顏色的差值對(duì)權(quán)重進(jìn)行分配。該方法實(shí)現(xiàn)了低采樣率下全局光照的交互式繪制,但其對(duì)光源類型的選擇只限定于點(diǎn)光源。

為了減少可見性計(jì)算開銷,本文以光線跟蹤算法為基礎(chǔ),針對(duì)圖形處理器(GPU)并行計(jì)算設(shè)備,提出一種基于面光源可見性空間復(fù)用的3D場景柔和陰影繪制算法。算法能夠顯著減少面光源可見性的計(jì)算量,高效地生成視覺上近似正確的柔和陰影。

1 本文算法概述

本文算法的流程如圖1所示。算法的主要思想是:以光線跟蹤算法為基礎(chǔ),通過采用基于交織思想的面光源采樣方法只為每個(gè)可視場景點(diǎn)做一次光源可見性計(jì)算;然后對(duì)鄰近可視場景點(diǎn)的面光源可見性進(jìn)行可見性濾波估計(jì),計(jì)算出從特定可視場景點(diǎn)向面光源方向能看到的面光源比例,即面光源可見性百分比;最后用該值乘以不考慮遮擋情況下可視場景點(diǎn)的直接光照值,得到最終的光照結(jié)果。

該算法包含三個(gè)步驟:

(1)生成面光源采樣基本模式。選取大小為N×M的像素區(qū)域,并對(duì)面光源進(jìn)行同等規(guī)模的均勻劃分,得到N×M個(gè)大小相同的子光源,然后基于交織思想形成像素與子光源之間唯一的對(duì)應(yīng)關(guān)系。

(2)可見性計(jì)算。將面光源采樣基本模式規(guī)則地復(fù)制至整個(gè)圖像平面,然后從可視場景點(diǎn)向光源采樣點(diǎn)投射陰影光線生成面光源-可視場景區(qū)域可見性采樣圖,并對(duì)直接光照、間接光照、場景深度值和法向量的信息進(jìn)行存儲(chǔ)。為了便于后續(xù)處理,對(duì)可見性和著色計(jì)算進(jìn)行分離[4];作為一種近似計(jì)算,在著色計(jì)算以及間接光照可見性計(jì)算這兩種情況下,面光源采樣點(diǎn)的位置均設(shè)定為面光源的中心;為了簡化實(shí)現(xiàn),間接光照的可見性同樣采用可見性濾波估計(jì)的方式進(jìn)行空間平滑處理。

(3)面光源可見性空間復(fù)用及濾波估計(jì)。對(duì)面光源-可視場景區(qū)域可見性采樣圖中鄰近可視場景點(diǎn)的面光源可見性進(jìn)行加權(quán)平均得到面光源可見性百分比。濾波時(shí)通過深度和法向量差異判斷相鄰像素的可視場景點(diǎn)是否在同一平面,以決定是否復(fù)用。這種對(duì)二值可見性的均值化操作不僅得到了分?jǐn)?shù)值的可見性[7],顯著減少了面光源可見性的計(jì)算量,而且實(shí)現(xiàn)了近實(shí)遠(yuǎn)虛的效果。

圖1 本文算法流程圖

最后對(duì)面光源可見性百分比和在不考慮遮擋關(guān)系情況下可視場景點(diǎn)的光照值進(jìn)行合并,得到最終的全局光照結(jié)果。

2 基于交織思想的面光源采樣方法

2.1 面光源采樣基本模式

本文提出的面光源采樣方法可以顯著提高面光源可見性空間復(fù)用的質(zhì)量,是繪制高質(zhì)量柔和陰影的關(guān)鍵。如圖2所示,面光源采樣基本模式的目的是建立像素與子光源之間唯一的對(duì)應(yīng)關(guān)系,使得像素區(qū)域包含的面光源采樣點(diǎn)可以完整分布在所有的子光源上,圖中像素采樣點(diǎn)的顏色代表陰影測試時(shí)光源采樣點(diǎn)所在的子光源區(qū)域。

在對(duì)鄰近可視場景點(diǎn)的面光源可見性進(jìn)行復(fù)用時(shí),本文方法能夠避免對(duì)某一或某些子光源區(qū)域采樣過少或者采樣過度。

圖2 面光源采樣基本模式

本文采用序列對(duì)的方式確定像素與子光源之間的對(duì)應(yīng)關(guān)系,具體方法為:為N×M像素區(qū)域中的每個(gè)像素分配一個(gè)不重復(fù)的序列號(hào)k(0≤k<N×M),k表示子光源在面光源中的相對(duì)位置。面光源采樣基本模式采用分塊隨機(jī)采樣的可見性采樣策略,即對(duì)序列號(hào)進(jìn)行隨機(jī)打亂。

如圖3所示,以3×3像素區(qū)域?yàn)槔龑?duì)分塊隨機(jī)采樣進(jìn)行了說明,屏幕像素中的數(shù)字代表子光源對(duì)應(yīng)的序列號(hào),數(shù)字的顏色代表子光源所在的區(qū)域范圍。

圖3 分塊隨機(jī)采樣

2.2 對(duì)采樣模式的規(guī)則性重復(fù)

在確定面光源采樣基本模式后需要將其規(guī)則地重復(fù)至整個(gè)圖像平面,使得每個(gè)像素都能唯一確定光源采樣點(diǎn)所在的子光源區(qū)域,下面給出其在統(tǒng)一計(jì)算設(shè)備架構(gòu)(CUDA)上的實(shí)現(xiàn)過程。

本文算法步驟如下:

輸入.像素的launch_index和選取的像素區(qū)域大小n。

輸出.對(duì)應(yīng)的光源采樣點(diǎn)所在的子光源區(qū)域。

(1)生成面光源采樣基本模式的采樣序列數(shù)組local_arr[n]。

(2)依據(jù)像素的launch_index確定在面光源采樣基本模式中的相對(duì)位置index:

(3)依據(jù)像素的相對(duì)位置index確定與之對(duì)應(yīng)的子光源在面光源中的相對(duì)位置sub_index:

抖動(dòng)采樣比均勻采樣具有更明顯的優(yōu)勢,能夠避免明顯的陰影走樣現(xiàn)象,因此在確定子光源的位置后為其施加[0,1]區(qū)間的隨機(jī)抖動(dòng)。

圖4 不同采樣方法的效果對(duì)比

圖4(a)為采用基于交織思想的面光源采樣方法生成的柔和陰影效果圖,像素區(qū)域大小為11×11。作為對(duì)比,圖4(b)沒有采用本文的面光源采樣方法。

本文提出的面光源采樣方法與現(xiàn)有光線跟蹤算法完全兼容,可以直接在原有的光線跟蹤算法上進(jìn)行修改,且不會(huì)增加明顯的額外計(jì)算開銷。

3 面光源可見性空間復(fù)用及濾波估計(jì)

為了計(jì)算每個(gè)可視場景點(diǎn)的面光源可見性,需要對(duì)面光源進(jìn)行大量采樣,即需要大量的陰影光線求交測試。本文采用SBVH加速結(jié)構(gòu)[3]用于加快光線與3D場景中幾何對(duì)象的求交速度。對(duì)于兩個(gè)鄰近的可視場景點(diǎn)而言,它們的面光源可見性是連續(xù)的,即鄰近可視場景點(diǎn)的面光源可見性存在明顯的空間相關(guān)性。因此在進(jìn)行特定可視場景點(diǎn)的可見性計(jì)算時(shí),可以復(fù)用與其鄰近的可視場景點(diǎn)的面光源可見性,以減少面光源可見性的計(jì)算量,進(jìn)一步提高算法的性能。

如圖5所示,從視點(diǎn)出發(fā)可以看到一塊可視場景區(qū)域,其對(duì)應(yīng)一個(gè)復(fù)雜的3D可見面。實(shí)心圓表示在該可見面上的可視場景點(diǎn),空心圓表示在面光源上的光源采樣點(diǎn)。實(shí)線箭頭表示從可視場景點(diǎn)pi向光源采樣點(diǎn)qi投射陰影光線,進(jìn)行可見性計(jì)算??梢园l(fā)現(xiàn),虛線所示的特定可視場景點(diǎn)q0與光源采樣點(diǎn)qi之間的可見性可以通過與其鄰近的可視場景點(diǎn)pi與光源采樣點(diǎn)qi之間的可見性近似得到。使用屏幕空間的可見性濾波估計(jì)方法對(duì)虛線所示的近似面光源可見性進(jìn)行加權(quán)平均,從而估計(jì)出特定場景點(diǎn)p0的面光源可見性百分比。

結(jié)合基于交織思想的面光源采樣方法,圖6對(duì)可見性濾波估計(jì)方法進(jìn)行了說明。像素網(wǎng)格中的斜體為面光源采樣點(diǎn)所在的子光源區(qū)域,正體為存儲(chǔ)的面光源可見性。通過對(duì)面光源-可視場景區(qū)域可見性采樣圖中鄰近可視場景點(diǎn)的面光源可見性進(jìn)行空間復(fù)用,使得特定可視場景點(diǎn)的面光源可見性由原來的二值可見性(0)轉(zhuǎn)變?yōu)榉謹(jǐn)?shù)值可見性(1/5)??梢园l(fā)現(xiàn),選取的任意像素區(qū)域內(nèi)的光源采樣點(diǎn)完整分布在所有的子光源區(qū)域,同時(shí)保留了面光源采樣基本模式的特性。濾波核(即復(fù)用范圍)的大小不僅影響柔和陰影的質(zhì)量,而且影響陰影邊緣的柔和程度。

圖6 可見性濾波估計(jì)方法(斜體表示光源采樣點(diǎn)所在的子光源區(qū)域,正體表示面光源可見性)

對(duì)于復(fù)用范圍內(nèi)的每個(gè)可視場景點(diǎn),需要檢測它們是否在同一平面上。原因在于對(duì)空間上不相關(guān)的可視場景點(diǎn)面光源可見性進(jìn)行復(fù)用,會(huì)導(dǎo)致畫面中的不同幾何對(duì)象交界處出現(xiàn)“偽陰影”。

逐層判斷濾波核內(nèi)兩個(gè)相鄰像素的深度梯度,如果差值在設(shè)定閾值的范圍內(nèi)則認(rèn)為兩者在空間上是十分接近的。然而,這種方式無法完全證明兩者在空間上是相關(guān)的,例如當(dāng)特定場景點(diǎn)處于兩個(gè)互相垂直平面的交界處時(shí)的這種特殊情況。因此本文采用深度檢測與法向量檢測相結(jié)合的方式,通過深度和法向量差異對(duì)空間相關(guān)性做出判斷,法向量的檢測方法與深度檢測相同。

圖7 面光源可見性空間復(fù)用的原理

圖7為對(duì)圖4中采用不同采樣方法得到的面光源可見性進(jìn)行濾波估計(jì)后的效果對(duì)比??梢园l(fā)現(xiàn),可見性濾波估計(jì)方法能夠有效消除陰影噪聲現(xiàn)象,生成自然過渡的柔和陰影;與圖7(b)相比,圖7(a)中陰影區(qū)到非陰影區(qū)的過渡更加自然,因而可以證明本文提出的面光源采樣方法能夠顯著提高面光源可見性空間復(fù)用的質(zhì)量。

本文提出的可見性濾波估計(jì)方法是基于屏幕空間的,它不僅能有效地減少因采樣率過低而導(dǎo)致的陰影噪聲,而且能夠?qū)崿F(xiàn)近實(shí)遠(yuǎn)虛的效果。如圖8所示,當(dāng)面光源足夠大時(shí),從遮擋體與面光源相對(duì)位置的變化能夠明顯地看到陰影區(qū)域的虛實(shí)變化。

圖8 陰影的虛實(shí)變化

4 實(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 3.8光線跟蹤加速引擎[8]和NVIDIA CUDA 7.0并行計(jì)算架構(gòu)[9]。實(shí)驗(yàn)中的屏幕分辨率均為1024×768,光源類型為矩形面光源,測試場景均為動(dòng)態(tài)場景。圖9所示為4個(gè)不同場景復(fù)雜度下本文算法的繪制結(jié)果。

表1對(duì)圖9中每個(gè)場景的三角面片數(shù)、復(fù)用范圍和繪制時(shí)間進(jìn)行了統(tǒng)計(jì)??梢园l(fā)現(xiàn),對(duì)于這些測試場景本文算法都能保持較高的繪制效率,并且可以產(chǎn)生非常平滑的柔和陰影,同時(shí)13×13的復(fù)用范圍可以滿足絕大部分場景的需要。值得注意的是,由于可見性濾波估計(jì)方法是基于屏幕空間的,因此本文算法的濾波操作復(fù)雜度只取決于屏幕分辨率,與場景復(fù)雜度及面光源大小無關(guān)。

圖9 本文算法結(jié)果

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

4.1 不同空間復(fù)用范圍的對(duì)比

下面將對(duì)同一場景采用不同復(fù)用范圍的繪制效果進(jìn)行對(duì)比。依據(jù)陰影邊緣以及場景復(fù)雜度的不同,復(fù)用范圍可以進(jìn)行適當(dāng)?shù)卣{(diào)整。圖10對(duì)不同復(fù)用范圍的柔和陰影效果進(jìn)行了比較。由于對(duì)面光源可見性空間復(fù)用的不足,圖10(a)的陰影區(qū)域出現(xiàn)了大量噪聲,并伴隨著明顯的走樣現(xiàn)象。逐漸擴(kuò)大復(fù)用范圍后可以發(fā)現(xiàn),本文算法的繪制結(jié)果與參照圖相比在視覺上難以分辨。與圖10(a)相比,圖10(c)的復(fù)用范圍擴(kuò)大了近7倍,在繪制時(shí)間上的增加不到2倍。雖然隨著復(fù)用范圍的擴(kuò)大使得繪制時(shí)間有所增加,但圖10(c)的柔和陰影質(zhì)量有了明顯的提升。

在計(jì)算開銷上,本文算法保持了較高的交互幀速率。在存儲(chǔ)開銷上,除了需要對(duì)可見性和在不考慮遮擋關(guān)系情況下可視場景點(diǎn)的光照值進(jìn)行存儲(chǔ)外,還包括深度值和法向量。需要注意的是,由于對(duì)直接光照和間接光照的處理是分開進(jìn)行,因而對(duì)兩者的信息也要分開存儲(chǔ)。對(duì)于1024×768的屏幕分辨率,額外的存儲(chǔ)開銷為72MB,數(shù)據(jù)存儲(chǔ)開銷不大。

圖10 不同空間復(fù)用范圍的比較

4.2 與其他算法的對(duì)比

為了進(jìn)一步與其他算法的性能進(jìn)行比較,如圖11所示,分別對(duì)本文算法和在同等柔和陰影質(zhì)量下的蒙特卡羅算法進(jìn)行了結(jié)果對(duì)比。為了實(shí)現(xiàn)圖11(a)所示的采用本文算法生成的柔和陰影效果,蒙特卡羅算法需要為每個(gè)可視場景點(diǎn)至少產(chǎn)生25個(gè)光源采樣點(diǎn),即向3D場景中投射25條陰影光線。而使用本文的面光源可見性空間復(fù)用方法不僅能繪制出視覺上近似正確的柔和陰影效果,而且使得所需投射的陰影光線數(shù)量減少至原來的1/25,顯著提高了算法的繪制效率。

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

表2對(duì)不同屏幕分辨率下基于同等柔和陰影質(zhì)量的算法性能進(jìn)行了統(tǒng)計(jì)??梢园l(fā)現(xiàn),隨著屏幕分辨率的增加,本文算法與蒙特卡羅算法的絕對(duì)時(shí)間差也隨之增加,本文算法的性能優(yōu)勢依舊明顯。

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

本文基于光線跟蹤方法進(jìn)行柔和陰影的交互式繪制。光線跟蹤算法能夠準(zhǔn)確地模擬理想的鏡面反射和規(guī)則透射現(xiàn)象,并采用遞歸光線投射的方式實(shí)現(xiàn)對(duì)間接光照的計(jì)算,無需為間接光照的實(shí)現(xiàn)而設(shè)計(jì)其他算法。對(duì)于間接光照柔和陰影的繪制,本文采用可見性濾波估計(jì)的方法進(jìn)行空間平滑處理。李帥等[10]提出一種動(dòng)態(tài)場景全頻陰影實(shí)時(shí)繪制算法,在ISM算法[11]的基礎(chǔ)上,通過生成近似陰影圖并對(duì)其采用預(yù)濾波處理的方式實(shí)現(xiàn)柔和陰影的繪制,但陰影區(qū)域到非陰影區(qū)域的過渡不夠平滑。比較得出,本文算法的優(yōu)勢在于算法的簡潔性和高質(zhì)量的柔和陰影。

面光源可見性空間復(fù)用范圍的選取目前還無法通過公式給出確切的計(jì)算方法。通過不同場景的分析對(duì)比,用戶可以從陰影邊緣和場景的復(fù)雜程度來得到一些參考。本文算法在大多數(shù)情況下均能繪制出令人滿意的陰影效果,但由于復(fù)用范圍選取的固定性,在物體靠近光源時(shí)由于低采樣率會(huì)導(dǎo)致陰影邊緣的平滑度下降。為避免這類現(xiàn)象的產(chǎn)生,依據(jù)光源、遮擋體和接收面之間的相對(duì)距離進(jìn)行空間復(fù)用范圍的自適應(yīng)選取,是今后的工作中要解決的一個(gè)重要問題。

5 結(jié)語

本文提出了一種基于面光源可見性空間復(fù)用的3D場景柔和陰影繪制算法,解決了面光源照射下的三維場景柔和陰影繪制算法存在的可見性計(jì)算開銷大的問題,實(shí)現(xiàn)了高質(zhì)量柔和陰影的交互式繪制。與蒙特卡羅算法相比,本文算法在性能及相同時(shí)間下柔和陰影的質(zhì)量上都有了大幅度提升。今后的工作將致力于通過場景的深度信息自適應(yīng)地選取面光源可見性空間復(fù)用的范圍,進(jìn)一步提升算法的性能。

猜你喜歡
視場陰影景點(diǎn)
星模擬器光學(xué)系統(tǒng)視場拼接方法的研究
你來了,草就沒有了陰影
文苑(2020年11期)2020-11-19 11:45:11
中國詩歌(2019年6期)2019-11-15 00:26:47
醫(yī)用內(nèi)窺鏡矩形視場下入瞳視場角的測試方法研究
打卡名校景點(diǎn)——那些必去朝圣的大學(xué)景點(diǎn)
讓光“驅(qū)走”陰影
英格蘭十大怪異景點(diǎn)
海外星云(2016年7期)2016-12-01 04:18:07
陰影魔怪
沒有景點(diǎn) 只是生活
Coco薇(2015年11期)2015-11-09 13:19:52
景點(diǎn)個(gè)股表現(xiàn)
盐池县| 祁东县| 弥勒县| 通渭县| 西吉县| 平远县| 阿鲁科尔沁旗| 汶上县| 抚松县| 和田市| 嫩江县| 绵阳市| 于田县| 时尚| 军事| 和田市| 拜城县| 黄龙县| 互助| 巴青县| 广元市| 武平县| 北票市| 鹿泉市| 卢龙县| 旺苍县| 太康县| 安达市| 万盛区| 金坛市| 澄迈县| 洪洞县| 南江县| 夏津县| 宜兰县| 突泉县| 南安市| 锡林浩特市| 曲沃县| 石泉县| 青海省|