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

圖1. 光柵化與光線追蹤
由于光線追蹤渲染計算量巨大且非常耗時,實時光線追蹤存在很多挑戰。首先,光線追蹤算法需要迭代測試光線與場景圖元是否相交,并計算光線與圖元的最近交點,這個計算量是巨大的;其次,光線的反射和折射會產生大量的二次光線(secondary rays),這些光線隨著迭代次數的增加會變得越來越不連續(incoherent),不規則的內存訪問會導致帶寬的瓶頸。
光線追蹤研究相關理論
1979年Whitted[6]利用光線的可逆性,提出了光線追蹤算法。這個算法模擬真實的光照效果,在場景中的光線與物體相交后會因反射、折射和陰影等產生二次光線,二次光線再次到場景中進行相交測試。如此進行迭代計算,直到光線的反彈次數達到預期設置的值。光線追蹤的本質在于尋找與光線相交的最近物體。為了加快遍歷速度,最初的方式是有規律地劃分空間網格(grid)[7-8],但這種方法存在著空間劃分不合理、冗余計算較多等問題。在后續的研究中提出加速數據結構(acceleration structure)的概念,其思路是將場景中的圖元劃分到不同的分層空間結構(hierarchical spatial structure)中,在這種結構下,可以快速剔除那些不相關的空間,進而識別出與光線最接近的圖元。現在廣泛應用在學術界和工業界的是一種樹形數據結構,樹的葉節點包含所有場景圖元,樹的內部節點用于將一個較大的空間表示細分為多個較小的空間區域kd-tree[9]或將場景中的對象分解為更小的對象集合BVH(bounding volume hierarchy)[10]。為簡化運算,通常采用軸對齊邊界框(axis-aligned bounding box,AABB)進行場景的劃分。kd-tree之前被認為是最適合光線追蹤的加速數據結構[11],但由于kd-tree在判斷包圍盒與圖元是否有交集等方面存在的局限性,越來越多的研究傾向于使用BVH。相比kd-tree,BVH有著可預測內存、更好的魯棒性、更有效的遍歷和多變的構建算法等[12]優勢,使得BVH成為離線和實時渲染領域應用的標準加速數據結構。
光線追蹤算法
由于光線追蹤算法需要遞歸地檢查光線與加速數據結構和圖元的相交,最終找到與光線相交最近的圖元,這個過程運算量大耗時長。為滿足實時性需求,研究者提出了基于硬件架構的算法優化方法,包括光線束并行、無棧遍歷、光線重排序和多分支BVH等。另一方面,將降噪技術和神經網絡技術與光線追蹤相結合,可以實現更好的交互性和實時性。
3.1 光線束(packet)遍歷
在早期利用單指令多數據流(single-instruction, multiple-data,SIMD)架構進行光線遍歷的方法中,光線束是最簡單的并行組織形式,將多條光線當作一個光線束,調度到GPU的線程束(warp)或CPU的不同線程中進行處理,不同光線共享遍歷棧。因此同一個光線束遍歷的順序是一致的。只要其中的一條光線與某個節點相交,那么整個光線束都遍歷該節點的子樹,如圖2所示。光線會訪問一組節點,包括它們不相交的節點,如果光線的連續性很好,那么這種方式性能會十分理想,但是如果連續性較差,那么執行效能會因為冗余的計算大打折扣,此外該方式的性能也受到內存帶寬的限制。
圖2光線束遍歷
3.2 無棧遍歷
無棧遍歷算法是光線追蹤中常用的技術。這種算法的提出源于GPU或CPU中有限的寄存器空間,棧的編程復雜度和定制化硬件單元有限的片上存儲資源。無棧的遍歷算法帶來了兩點好處:一是按照特定的格式構造加速數據結構在遍歷時可以減少內存的訪問;二是無棧的遍歷算法在GPU平臺可以提高并行度,提升計算性能。但通常需要在加速數據結構中設置標記位或進行冗余操作才可以完成無棧遍歷。Smits[13]提出了無棧的方法,使用跳躍指針(skip pointers)的方式將傳統子節點的連接替換成命中(hit)或未命中(miss)的連接,在遍歷的過程中,選擇合適的連接。在當時的硬件體系結構中獲得了大幅度的加速,但該方法導致代碼的復雜度顯著提升。Foley等[14]最早提出了兩種基于kd-tree的無棧遍歷方法:kd-restart以及kd-backtrack,如圖3所示。
圖3無棧遍歷
3.3 降噪技術
隨著最新GPU實時光線追蹤解決方案的出現,在降噪領域的研究也逐步興起。目前的降噪技術主要是基于蒙特卡洛的渲染技術進行解決。蒙特卡洛渲染是基于隨機樣本的累積來近似給定場景光線追蹤結果的算法。目前降噪技術主要包括濾波技術、機器學習驅動的濾波器、改進采樣和近似技術等。
圖像濾波技術是在盡量保留圖像細節特征的條件下對目標圖像的噪聲進行抑制。McGuire等[15]提出全局光照效果下球的邊界處會產生可見的不連續性,在有限球體內使用3D高斯衰減函數可平滑光照;Park等[16]認為雙邊濾波由于可以同時考慮圖像的空域信息(domain)和值域信息(range),用于光線追蹤的降噪會取得較好的效果;Dammertz等[17]提出了à-Trous濾波的降噪方式,這個方法利用蒙特卡洛計算的半球積分可能與相鄰像素的半球積分非常相似的事實,使用à-Trous小波變換對全噪聲圖像進行運算,產生的結果接近于每個像素點具有更多采樣點的方案;Schied等[18]提出了一種基于低采樣進行重構圖像的時空差異導向濾波器(spatio temporal variance guided filtering,SVGF),結合時間和空間上的信息一起做濾波,根據歷史幀信息引導當前幀的濾波。
機器學習驅動的濾波器效果通常比傳統的濾波器更優。Kalantari等[19]認為基于特征的濾波器在噪聲場景和理想濾波器參數之間存在著復雜的關系因此采用非線性回歸模型來學習這種關系,使用多層感知機神經網絡,同時在訓練和測試期間將其與匹配濾波器相結合,經過訓練的神經網絡驅動的濾波器參數可以生成近似基準圖像的效果。
Yang等[20]對隨機采樣反鋸齒算法(temporal antialiasing,TAA)進行了綜述,指出用TAA的時間濾波器可以有效去除以極低采樣率渲染的光線追蹤路徑的噪聲,但無法從根本上消除噪聲。
除此之外,還有通過近似技術優化光線追蹤算法的實現。NVIDIA在RTX全局光照(RTXGI)[21]采樣探針(probe)的數據結構中,進行實時計算和過濾照明與距離信息,構建具有可見性信息的高質量多次反彈照明緩存,主要通過光線追蹤中的低頻近似,為實時應用程序提供了質量和性能之間的理想平衡。近年來已經運用到商業游戲引擎中[22]。不同降噪技術的主要區別如表1所示。
表1降噪技術的比較
總結
長期以來,基于光線追蹤的物理渲染被視為提升視覺體驗的最有效方法,但是由于過大的計算強度限制了其在實時應用領域的使用。近年來,隨著算法研究和硬件技術的發展,已經處于傳統光柵化渲染方式到消費者平臺實時光線追蹤的轉折點。但是,基于實時光線追蹤的研究還遠未結束,目前該領域還有一些關鍵性的問題有待進一步研究。在圖像真實感方面,光線追蹤的模型是基于理想模型做光線路徑的模擬,由于真實場景中光線的折射會造成能量損失,距離完全真實地描繪3D場景還具有一定差距。如果要更進一步地模擬光線的傳遞,還需要考慮輻射度量學的內容。除此之外,紋理空間技術(texture space techniques)、可變速率光線追蹤(variable rate raytracing)等新穎的提升圖像真實感技術如何與光線追蹤技術相結合可能是后續研究的重點方向。在算法和硬件優化方面,神經網絡技術與實時光線追蹤結合愈發緊密,在降噪處理、圖像重構和超分辨率等方面發展迅速,下一步可能會引領人們進入神經網絡渲染的新時代。從近年來的研究成果來看,硬件更傾向于“存儲墻”的解決。利用定制的高效光線重排序硬件或者近存計算等會成為實時光線追蹤進一步發展的突破口。此外,同樣值得研究的是光線追蹤硬件是否可以推廣到其他不規則應用程序的架構中,可以充分發揮現代光線追蹤GPU架構的優勢。
參考文獻
[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.
-
降噪
+關注
關注
4文章
432瀏覽量
31693 -
光線追蹤
+關注
關注
0文章
185瀏覽量
21734
發布評論請先 登錄
評論