作者:胡梁
來(lái)源:CUIT數(shù)據(jù)生態(tài)與智慧空間研究中心
引言
渲染是將三維場(chǎng)景的描述轉(zhuǎn)換為二維圖像的過(guò)程。在動(dòng)畫[1-2]、電影特效[3]、高端游戲[4]、幾何建模、紋理處理等應(yīng)用中都必須通過(guò)某種形式的渲染過(guò)程傳遞3D場(chǎng)景的結(jié)果。渲染主要包括光柵化(rasterization)[5]和光線追蹤[6]兩種方式。光柵化渲染采用局部光照原理,根據(jù)光源照射到物體上直接可見(jiàn)的光照效果,將場(chǎng)景中的幾何圖元映射到圖像的像素點(diǎn)上。這種方式用硬件實(shí)現(xiàn)較為簡(jiǎn)單,且便于并行處理,通常用作實(shí)時(shí)渲染處理。光線追蹤采用全局光照模型,通過(guò)物理原理對(duì)光線和物質(zhì)之間的交互行為進(jìn)行建模,不僅考慮直接光照的效果,也考慮物體間相互光照影響,比傳統(tǒng)的光柵化渲染效果更加立體,色彩更柔和更逼真,通常用于離線渲染處理。兩種渲染方式的區(qū)別如圖1所示。

圖1. 光柵化與光線追蹤
由于光線追蹤渲染計(jì)算量巨大且非常耗時(shí),實(shí)時(shí)光線追蹤存在很多挑戰(zhàn)。首先,光線追蹤算法需要迭代測(cè)試光線與場(chǎng)景圖元是否相交,并計(jì)算光線與圖元的最近交點(diǎn),這個(gè)計(jì)算量是巨大的;其次,光線的反射和折射會(huì)產(chǎn)生大量的二次光線(secondary rays),這些光線隨著迭代次數(shù)的增加會(huì)變得越來(lái)越不連續(xù)(incoherent),不規(guī)則的內(nèi)存訪問(wèn)會(huì)導(dǎo)致帶寬的瓶頸。
光線追蹤研究相關(guān)理論
1979年Whitted[6]利用光線的可逆性,提出了光線追蹤算法。這個(gè)算法模擬真實(shí)的光照效果,在場(chǎng)景中的光線與物體相交后會(huì)因反射、折射和陰影等產(chǎn)生二次光線,二次光線再次到場(chǎng)景中進(jìn)行相交測(cè)試。如此進(jìn)行迭代計(jì)算,直到光線的反彈次數(shù)達(dá)到預(yù)期設(shè)置的值。光線追蹤的本質(zhì)在于尋找與光線相交的最近物體。為了加快遍歷速度,最初的方式是有規(guī)律地劃分空間網(wǎng)格(grid)[7-8],但這種方法存在著空間劃分不合理、冗余計(jì)算較多等問(wèn)題。在后續(xù)的研究中提出加速數(shù)據(jù)結(jié)構(gòu)(acceleration structure)的概念,其思路是將場(chǎng)景中的圖元?jiǎng)澐值讲煌姆謱涌臻g結(jié)構(gòu)(hierarchical spatial structure)中,在這種結(jié)構(gòu)下,可以快速剔除那些不相關(guān)的空間,進(jìn)而識(shí)別出與光線最接近的圖元。現(xiàn)在廣泛應(yīng)用在學(xué)術(shù)界和工業(yè)界的是一種樹(shù)形數(shù)據(jù)結(jié)構(gòu),樹(shù)的葉節(jié)點(diǎn)包含所有場(chǎng)景圖元,樹(shù)的內(nèi)部節(jié)點(diǎn)用于將一個(gè)較大的空間表示細(xì)分為多個(gè)較小的空間區(qū)域kd-tree[9]或?qū)?chǎng)景中的對(duì)象分解為更小的對(duì)象集合BVH(bounding volume hierarchy)[10]。為簡(jiǎn)化運(yùn)算,通常采用軸對(duì)齊邊界框(axis-aligned bounding box,AABB)進(jìn)行場(chǎng)景的劃分。kd-tree之前被認(rèn)為是最適合光線追蹤的加速數(shù)據(jù)結(jié)構(gòu)[11],但由于kd-tree在判斷包圍盒與圖元是否有交集等方面存在的局限性,越來(lái)越多的研究?jī)A向于使用BVH。相比kd-tree,BVH有著可預(yù)測(cè)內(nèi)存、更好的魯棒性、更有效的遍歷和多變的構(gòu)建算法等[12]優(yōu)勢(shì),使得BVH成為離線和實(shí)時(shí)渲染領(lǐng)域應(yīng)用的標(biāo)準(zhǔn)加速數(shù)據(jù)結(jié)構(gòu)。
光線追蹤算法
由于光線追蹤算法需要遞歸地檢查光線與加速數(shù)據(jù)結(jié)構(gòu)和圖元的相交,最終找到與光線相交最近的圖元,這個(gè)過(guò)程運(yùn)算量大耗時(shí)長(zhǎng)。為滿足實(shí)時(shí)性需求,研究者提出了基于硬件架構(gòu)的算法優(yōu)化方法,包括光線束并行、無(wú)棧遍歷、光線重排序和多分支BVH等。另一方面,將降噪技術(shù)和神經(jīng)網(wǎng)絡(luò)技術(shù)與光線追蹤相結(jié)合,可以實(shí)現(xiàn)更好的交互性和實(shí)時(shí)性。
3.1 光線束(packet)遍歷
在早期利用單指令多數(shù)據(jù)流(single-instruction, multiple-data,SIMD)架構(gòu)進(jìn)行光線遍歷的方法中,光線束是最簡(jiǎn)單的并行組織形式,將多條光線當(dāng)作一個(gè)光線束,調(diào)度到GPU的線程束(warp)或CPU的不同線程中進(jìn)行處理,不同光線共享遍歷棧。因此同一個(gè)光線束遍歷的順序是一致的。只要其中的一條光線與某個(gè)節(jié)點(diǎn)相交,那么整個(gè)光線束都遍歷該節(jié)點(diǎn)的子樹(shù),如圖2所示。光線會(huì)訪問(wèn)一組節(jié)點(diǎn),包括它們不相交的節(jié)點(diǎn),如果光線的連續(xù)性很好,那么這種方式性能會(huì)十分理想,但是如果連續(xù)性較差,那么執(zhí)行效能會(huì)因?yàn)槿哂嗟挠?jì)算大打折扣,此外該方式的性能也受到內(nèi)存帶寬的限制。
圖2光線束遍歷
3.2 無(wú)棧遍歷
無(wú)棧遍歷算法是光線追蹤中常用的技術(shù)。這種算法的提出源于GPU或CPU中有限的寄存器空間,棧的編程復(fù)雜度和定制化硬件單元有限的片上存儲(chǔ)資源。無(wú)棧的遍歷算法帶來(lái)了兩點(diǎn)好處:一是按照特定的格式構(gòu)造加速數(shù)據(jù)結(jié)構(gòu)在遍歷時(shí)可以減少內(nèi)存的訪問(wèn);二是無(wú)棧的遍歷算法在GPU平臺(tái)可以提高并行度,提升計(jì)算性能。但通常需要在加速數(shù)據(jù)結(jié)構(gòu)中設(shè)置標(biāo)記位或進(jìn)行冗余操作才可以完成無(wú)棧遍歷。Smits[13]提出了無(wú)棧的方法,使用跳躍指針(skip pointers)的方式將傳統(tǒng)子節(jié)點(diǎn)的連接替換成命中(hit)或未命中(miss)的連接,在遍歷的過(guò)程中,選擇合適的連接。在當(dāng)時(shí)的硬件體系結(jié)構(gòu)中獲得了大幅度的加速,但該方法導(dǎo)致代碼的復(fù)雜度顯著提升。Foley等[14]最早提出了兩種基于kd-tree的無(wú)棧遍歷方法:kd-restart以及kd-backtrack,如圖3所示。
圖3無(wú)棧遍歷
3.3 降噪技術(shù)
隨著最新GPU實(shí)時(shí)光線追蹤解決方案的出現(xiàn),在降噪領(lǐng)域的研究也逐步興起。目前的降噪技術(shù)主要是基于蒙特卡洛的渲染技術(shù)進(jìn)行解決。蒙特卡洛渲染是基于隨機(jī)樣本的累積來(lái)近似給定場(chǎng)景光線追蹤結(jié)果的算法。目前降噪技術(shù)主要包括濾波技術(shù)、機(jī)器學(xué)習(xí)驅(qū)動(dòng)的濾波器、改進(jìn)采樣和近似技術(shù)等。
圖像濾波技術(shù)是在盡量保留圖像細(xì)節(jié)特征的條件下對(duì)目標(biāo)圖像的噪聲進(jìn)行抑制。McGuire等[15]提出全局光照效果下球的邊界處會(huì)產(chǎn)生可見(jiàn)的不連續(xù)性,在有限球體內(nèi)使用3D高斯衰減函數(shù)可平滑光照;Park等[16]認(rèn)為雙邊濾波由于可以同時(shí)考慮圖像的空域信息(domain)和值域信息(range),用于光線追蹤的降噪會(huì)取得較好的效果;Dammertz等[17]提出了à-Trous濾波的降噪方式,這個(gè)方法利用蒙特卡洛計(jì)算的半球積分可能與相鄰像素的半球積分非常相似的事實(shí),使用à-Trous小波變換對(duì)全噪聲圖像進(jìn)行運(yùn)算,產(chǎn)生的結(jié)果接近于每個(gè)像素點(diǎn)具有更多采樣點(diǎn)的方案;Schied等[18]提出了一種基于低采樣進(jìn)行重構(gòu)圖像的時(shí)空差異導(dǎo)向?yàn)V波器(spatio temporal variance guided filtering,SVGF),結(jié)合時(shí)間和空間上的信息一起做濾波,根據(jù)歷史幀信息引導(dǎo)當(dāng)前幀的濾波。
機(jī)器學(xué)習(xí)驅(qū)動(dòng)的濾波器效果通常比傳統(tǒng)的濾波器更優(yōu)。Kalantari等[19]認(rèn)為基于特征的濾波器在噪聲場(chǎng)景和理想濾波器參數(shù)之間存在著復(fù)雜的關(guān)系因此采用非線性回歸模型來(lái)學(xué)習(xí)這種關(guān)系,使用多層感知機(jī)神經(jīng)網(wǎng)絡(luò),同時(shí)在訓(xùn)練和測(cè)試期間將其與匹配濾波器相結(jié)合,經(jīng)過(guò)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)驅(qū)動(dòng)的濾波器參數(shù)可以生成近似基準(zhǔn)圖像的效果。
Yang等[20]對(duì)隨機(jī)采樣反鋸齒算法(temporal antialiasing,TAA)進(jìn)行了綜述,指出用TAA的時(shí)間濾波器可以有效去除以極低采樣率渲染的光線追蹤路徑的噪聲,但無(wú)法從根本上消除噪聲。
除此之外,還有通過(guò)近似技術(shù)優(yōu)化光線追蹤算法的實(shí)現(xiàn)。NVIDIA在RTX全局光照(RTXGI)[21]采樣探針(probe)的數(shù)據(jù)結(jié)構(gòu)中,進(jìn)行實(shí)時(shí)計(jì)算和過(guò)濾照明與距離信息,構(gòu)建具有可見(jiàn)性信息的高質(zhì)量多次反彈照明緩存,主要通過(guò)光線追蹤中的低頻近似,為實(shí)時(shí)應(yīng)用程序提供了質(zhì)量和性能之間的理想平衡。近年來(lái)已經(jīng)運(yùn)用到商業(yè)游戲引擎中[22]。不同降噪技術(shù)的主要區(qū)別如表1所示。
表1降噪技術(shù)的比較
總結(jié)
長(zhǎng)期以來(lái),基于光線追蹤的物理渲染被視為提升視覺(jué)體驗(yàn)的最有效方法,但是由于過(guò)大的計(jì)算強(qiáng)度限制了其在實(shí)時(shí)應(yīng)用領(lǐng)域的使用。近年來(lái),隨著算法研究和硬件技術(shù)的發(fā)展,已經(jīng)處于傳統(tǒng)光柵化渲染方式到消費(fèi)者平臺(tái)實(shí)時(shí)光線追蹤的轉(zhuǎn)折點(diǎn)。但是,基于實(shí)時(shí)光線追蹤的研究還遠(yuǎn)未結(jié)束,目前該領(lǐng)域還有一些關(guān)鍵性的問(wèn)題有待進(jìn)一步研究。在圖像真實(shí)感方面,光線追蹤的模型是基于理想模型做光線路徑的模擬,由于真實(shí)場(chǎng)景中光線的折射會(huì)造成能量損失,距離完全真實(shí)地描繪3D場(chǎng)景還具有一定差距。如果要更進(jìn)一步地模擬光線的傳遞,還需要考慮輻射度量學(xué)的內(nèi)容。除此之外,紋理空間技術(shù)(texture space techniques)、可變速率光線追蹤(variable rate raytracing)等新穎的提升圖像真實(shí)感技術(shù)如何與光線追蹤技術(shù)相結(jié)合可能是后續(xù)研究的重點(diǎn)方向。在算法和硬件優(yōu)化方面,神經(jīng)網(wǎng)絡(luò)技術(shù)與實(shí)時(shí)光線追蹤結(jié)合愈發(fā)緊密,在降噪處理、圖像重構(gòu)和超分辨率等方面發(fā)展迅速,下一步可能會(huì)引領(lǐng)人們進(jìn)入神經(jīng)網(wǎng)絡(luò)渲染的新時(shí)代。從近年來(lái)的研究成果來(lái)看,硬件更傾向于“存儲(chǔ)墻”的解決。利用定制的高效光線重排序硬件或者近存計(jì)算等會(huì)成為實(shí)時(shí)光線追蹤進(jìn)一步發(fā)展的突破口。此外,同樣值得研究的是光線追蹤硬件是否可以推廣到其他不規(guī)則應(yīng)用程序的架構(gòu)中,可以充分發(fā)揮現(xiàn)代光線追蹤GPU架構(gòu)的優(yōu)勢(shì)。
參考文獻(xiàn)
[1] BURLEY B, ADLER D, CHIANG J Y, et al. The design and evolution of Disney's hyperion renderer[J]. ACM Transactions on Graphics, 2018, 37(3): 1-22.
[2] CHRISTENSEN P, FONG J, SHADE J, et al. RenderMan: an advanced path- tracing architecture for movie rendering [J]. ACM Transactions on Graphics, 2018, 37(3): 1-21.
[3] FASCIONE L, HANIKA J, LEONE M, et al. Manuka: a batchshading architecture for spectral path tracing in movie production[J]. ACM Transactions on Graphics, 2018, 37(3): 1-18
[4] MARRS A, SHIRLEY P, WALD I. Ray tracing gems II: next generation real-time rendering with DXR, Vulkan, and OptiX[M]. California: Springer Nature, 2021.
[5] HAINES E, HOFFMAN N. Real-time rendering[M]. Boca Raton: CRC Press, 2018.
[6] WHITTED T. An improved illumination model for shaded display[C]//Proceedings of the 6th Annual Conference on Computer Graphics and Interactive Techniques, Chicago, Aug 8-10, 1979. New York: ACM, 1979: 14.
[7] FUJIMOTO A, TANAKA T, IWATA K J C G, et al. ARTS: accelerated ray- tracing system[J]. IEEE Computer Graphics and Applications, 1986, 6(4): 16-26.
[8] NERY A S, NEDJAH N. GridRT: a massively parallel architecture for ray-tracing using uniform grids[C]//Proceedings of the 12th Euromicro Conference on Digital System Design, Architectures, Methods and Tools, Patras, Aug 27- 29, 2009. Washington: IEEE Computer Society, 2009: 211-216.
[9] BENTLEY J L. Multidimensional binary search trees used for associative searching[J]. Communications of the ACM, 1975, 18(9): 509-517.
[10] CLARK J H. Hierarchical geometric models for visible surface algorithms[J]. Communications of the ACM, 1976, 19 (10): 547-554.
[11] HAVRAN V. Heuristic ray shooting algorithms[D]. Prague: Czech Technical University, 2000.
[12] MEISTER D, OGAKI S, BENTHIN C, et al. A survey on bounding volume hierarchies for ray tracing[J]. Computer Graphics Forum, 2021, 40(2): 683-712.
[13] SMITS B E. Efficiency issues for ray tracing[C]//Proceedings of the 2005 International Conference on Computer Graphics and Interactive Techniques, Los Angeles, Jul 31-Aug 4, 2005. New York: ACM, 2005: 6.
[14] FOLEY T, SUGERMAN J. KD-tree acceleration structures for a GPU raytracer[C]//Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Symposium on Graphics Hardware 2005, Los Angeles, Jul 30-31, 2005. Aire-la-Ville: Eurographics Association, 2005: 15-22.
[15] MCGUIRE M, LUEBKE D. Hardware- accelerated global illumination by image space photon mapping[C]//Proceedings of the High Performance Graphics 2009, New Orleans, Aug 1-3, 2009. New York: ACM: 77-89.
[16] PARK S, BAEK N. A shader- based ray tracing engine[J]. Applied Sciences, 2021, 11(7): 3264.
[17] DAMMERTZ H, SEWTZ D, HANIKA J, et al. Edge-avoiding A-trous wavelet transform for fast global illumination filtering [C]//Proceedings of the High Performance Graphics 2010, Saarbrucken, Jun 25-27, 2010. New York: ACM, 2010: 67-75.
[18] SCHIED C, KAPLANYAN A, WYMAN C, et al. Spatiotemporal variance-guided filtering: real-time reconstruction for path- traced global illumination[C]//Proceedings of the High Performance Graphics 2017, Los Angeles, Jul 28- 30, 2017. New York: ACM, 2017: 1-12.
[19] KALANTARI N K, BAKO S, SEN P. A machine learning approach for filtering Monte Carlo noise[J]. ACM Transactions on Graphics, 2015, 34(4): 122.
[20] YANG L, LIU S, SALVI M. A survey of temporal antialiasing techniques[J]. Computer Graphics Forum, 2020, 39(2): 607- 621.
[21] NVIDIA. RTX global illumination (RTXGI)[R/OL]. [2022- 05-01]. https: //developer.nvidia.com/rtx/ray-tracing/rtxgi.
[22] MAJERCIK Z, MARRS A, SPJUT J, et al. Scaling probebased real-time dynamic global illumination for production [J]. arXiv:2009.10796, 2020.
-
降噪
+關(guān)注
關(guān)注
4文章
432瀏覽量
31588 -
光線追蹤
+關(guān)注
關(guān)注
0文章
185瀏覽量
21644
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論