實時光線追蹤技術:發展近況與未來挑戰

遊資網發表於2020-02-24
實時光線追蹤技術:發展近況與未來挑戰

最近閱讀了SIGGRAPH 2019中 EA SEED團隊帶來的,關於實時光線追蹤一篇很讚的技術分享[1]。

本文將以此為引子,對實時光線追蹤技術的發展近況,當前業介面對的挑戰,以及未來的研究方向進行一個盤點。

主要涉及的要點有:

一、實時光線追蹤技術元年:2018年
二、實時光線追蹤:當前業界產品應用情況
2.1 虛幻引擎:UE 4.22實時光線追蹤特性正式面世
2.2 Unity引擎:Unity 2019.3正式支援實時光線追蹤特性
2.3 3A遊戲:部分產品已加入實時光線追蹤技術
2.4 主機平臺:Play Station 5和Xbox Scarlett都將支援實時光線追蹤
三、實時光線追蹤:當前業界技術發展近況盤點
3.1 實時光線追蹤:混合渲染管線
3.2 實時光線追蹤:反射渲染
3.3 實時光線追蹤:環境光遮蔽
3.4 實時光線追蹤:陰影渲染
3.4.1 解析直接光照+隨機陰影
3.4.2 透明陰影渲染
3.5 實時光線追蹤:透明渲染和半透明渲染
3.6 實時光線追蹤:多光源處理
3.7 實時光線追蹤:粒子系統渲染
3.8 實時光線追蹤:全域性光照
3.9 實時光線追蹤:剔除
3.10 實時光線追蹤:Texture LOD
四、實時光線追蹤:業界當前面臨的挑戰
4.1 實時光線追蹤處理透明渲染仍有不少問題需要攻克
4.2 對多變的遊戲內容環境的更好相容
4.3 實時光線追蹤全域性光照:廣闊的空間等待探索
4.4 探索新的實時光線追蹤形態
4.5 不斷革新混合渲染管線的技術形態
4.6 未來光線追蹤領域的研究方向

OK,下面開始正文。

壹 · 實時光線追蹤技術元年:2018年

個人認為,可以將2018年定義為實時光線追蹤技術元年。

這一年,祕密開發了多年的實時光線追蹤技術終於在GDC 2018上揭開面紗,進入大眾視野,並引起廣泛轟動。

這一年,微軟宣佈了DirectX Ray Tracing,DXR的問世;NVIDIA、ILMxLAB、UE4聯合釋出了基於實時光線追蹤的具有電影級視覺效果的《星球大戰》短片;NVIDIA釋出了RTX Technology Demo以及Project Sol Cinematic Demo Part 1;EA SEED團隊帶來了PICA PICA實時光線追蹤Demo;Remedy的Northlight引擎也帶來了Ray Tracing in North Light Demo;Futuremark團隊也釋出了非常讚的DirectX Raytracing Tech Demo。

實時光線追蹤技術:發展近況與未來挑戰

實時光線追蹤技術:發展近況與未來挑戰

也是這一年,NVIDIA宣佈了可加速硬體中光線追蹤速度的新架構Turing,以及搭載實時光線追蹤技術的RTX系列顯示卡。

實時光線追蹤技術:發展近況與未來挑戰

同樣是這一年,第一款搭載RTX實時混合光線追蹤技術的遊戲《戰地5(Battlefield V)》正式面世,基於EA的Frostbite引擎,帶來了出色的混合光線追蹤反射(Hybrid Ray-Traced Reflections)渲染表現。

實時光線追蹤技術:發展近況與未來挑戰

時間來到2020年,自GDC 2018實時光線追蹤技術正式面世以來已經經過了近兩年時間,讓我們看下當前實時光線追蹤的業界產品應用情況。

貳 · 實時光線追蹤:當前業界產品應用情況

2.1 虛幻引擎:UE 4.22實時光線追蹤特性正式面世

實時光線追蹤技術:發展近況與未來挑戰

自4.22版本以來,UE4的實時光線追蹤功能已經正式面世。

UE4中的Ray Tracing技術目前有兩種形態:

  • 混合光線追蹤模式(Hybrid Ray Tracer Mode),用於將光線追蹤功能與現有的光柵化效果相結合,進行混合渲染。
  • 路徑追蹤參考模式(Path Tracer Reference Mode),用於與Ground Truth進行比較。


UE4中的Ray Tracing的KeyFeature可以總結如下:

  • 光線追蹤陰影Ray Traced Shadows
  • 光線追蹤反射Ray Traced Reflections
  • 光線追蹤半透明渲染Ray Traced Translucency
  • 光線追蹤環境光遮蔽Ray Traced Ambient Occlusion
  • 光線追蹤全域性光照 Ray Traced Global Illumination


這邊放一個UE4、NVIDIA、保時捷合作的實時光線追蹤保時捷911超跑概念車渲染視訊“The Speed of Light”:

RTX 保時捷911超跑概念渲染視訊:


2.2 Unity引擎:Unity 2019.3正式支援實時光線追蹤特性

實時光線追蹤技術:發展近況與未來挑戰

隨後,Unity引擎也宣佈對混合實時光線追蹤(Hybrid Real-Time Ray Tracing)的支援,並在Unity 2019.3中正式釋出。

Unity Ray Tracing的Key Feature可以總結為:

  • 光線追蹤環境光遮蔽 Ray-Traced Ambient Occlusion
  • 光線追蹤接觸陰影 Ray-Traced Contact Shadows
  • 光線追蹤全域性光照 Ray-Traced Global Illumination
  • 光線追蹤反射Ray-Traced Reflections
  • 光線追蹤陰影Ray-Traced Shadows
  • 遞迴光線追蹤Recursive Ray Tracing


Unity引擎2019年3月釋出的《Reality vs illusion: Unity real-time ray tracing》Demo中,將CG汽車與現實世界的汽車同時放在畫面中。對比起來,已經很難辨別CG和現實。

實時光線追蹤技術:發展近況與未來挑戰

2.3 3A遊戲:部分產品已加入實時光線追蹤技術

到目前為止,不少3A遊戲已經加入了實時光線追蹤技術,包括《戰地5(Battlefield V)》、《使命召喚:現代戰爭(Call of Duty: Modern Warfare)》、《地鐵:離去(Metro Exodus)》、《古墓麗影:暗影(Shadow of the Tomb Raider)》、《雷神之錘2 RTX版 (Quake II RTX)》、《德軍總部:新血脈(Wolfenstein: Youngblood)》等。

實時光線追蹤技術:發展近況與未來挑戰

未來將釋出的更多的大作,也將具有實時光線追蹤特性,比如《看門狗:軍團 Watch Dogs Legion》、《賽博朋克2077(Cyberpunk 2077)》等。

實時光線追蹤技術:發展近況與未來挑戰

甚至Minecraft都將釋出RTX版:

實時光線追蹤技術:發展近況與未來挑戰

這邊有一個當前所有支援RTX的所有遊戲的List(統計自2019.10月):

https://www.digitaltrends.com/computing/games-support-nvidia-ray-tracing/

也放一個NVIDIA出品的Project Sol Part 3實時光線追蹤渲染的電影短片:

NVIDIA - Project Sol - Part 3:


總之,實時光線追蹤技術剛剛開始進入遊戲產品,未來將有更廣泛的普及。

2.4 主機平臺:Play Station 5和Xbox Scarlett都將支援實時光線追蹤

實時光線追蹤技術:發展近況與未來挑戰

當然,兩個主要主機制造商的下一代產品,索尼的Play Station 5和微軟的Xbox Scarlett,都宣佈了對實時光線追蹤技術的支援。

Microsoft: E3 2019 Keynote:

https://www.youtube.com/watch?v=zeYQ-kPF0iQ

SONY: What to Expect From SONY’s Next-Gen PlayStation :

https://www.wired.com/story/exclusive-sony-next-gen-console

OK,講了那麼多產品級的應用,下面開始正篇吧,實時光線追蹤技術當前業界的發展近況,即 State-of-the-Art Real-Time Ray Tracing Technology。

叄 · 實時光線追蹤:當前業界技術發展近況盤點

要點有:

  • 混合渲染管線 Hybrid Rendering Pipeline
  • 反射 Reflections
  • 環境光遮蔽 Ambient Occlusion
  • 陰影 Shadows
  • 透明渲染Transparency
  • 半透明渲染 Translucency
  • 多光源處理 Many Lights
  • 粒子渲染Particles
  • 基於光線追蹤的全域性光照 Ray-traced GI
  • 剔除 Culling
  • 貼圖LOD | Texture LOD


實時光線追蹤技術:發展近況與未來挑戰

3.1 實時光線追蹤:混合渲染管線

實時光線追蹤技術:發展近況與未來挑戰

當前業界主流的實時光線追蹤技術都普遍採用了 混合渲染管線(Hybrid Rendering Pipeline)架構。混合渲染管線能充分利用光柵化(Rasterization),計算著色器(Compute Shader)和光線追蹤(Ray Tracing)各自的優勢,對於管線的每一個渲染階段,在光柵化,計算著色器和光線追蹤中擇優使用。

目前主流的混合渲染管線(Hybrid Rendering Pipeline)架構的渲染流程可以總結為:

  • 延遲著色階段(光柵化)Deferred Shading (rasterization)
  • 直接陰影階段(光線追蹤或光柵化)Direct shadows (ray trace or rasterization)
  • 光照階段(計算著色器+光線追蹤)Lighting (compute + ray trace)
  • 反射階段(光線追蹤或計算著色器)Reflections(ray trace or compute)
  • 全域性光照階段(計算著色器+光線追蹤)Global Illumination (compute and ray trace)
  • 環境光遮蔽階段(光線追蹤或計算著色器) Ambient occlusion (ray trace or compute)
  • 透明與半透明渲染階段(光線追蹤+計算著色器)Transparency & Translucency (ray trace and compute)
  • 後處理階段(計算著色器)Post processing (compute)


3.2 實時光線追蹤:反射渲染

實時光線追蹤技術:發展近況與未來挑戰

眾所周知,《戰地5》具有非常讚的實時光線追蹤反射渲染表現。

實時光線追蹤技術:發展近況與未來挑戰

而業界當前進行實時光線追蹤反射的主流思路是,每畫素需要多於1條光線才能完全表達基於物理的渲染管線可描述的從粗糙到光滑的材質範圍。對於多層材質來說,則會更加複雜。

下圖是實時光線追蹤反射渲染管線(Real Time Ray Tracing Reflection Pipeline)的圖示:

實時光線追蹤技術:發展近況與未來挑戰

根據上圖,可以將混合光線追蹤反射管線的渲染步驟總結為如下六步:

  • Step 1. 通過BRDF重要性取樣生成光線,以提供符合材質特性的光線。
  • Step 2. 通過螢幕空間光線步進(screen-space raymarching)或光線追蹤(ray tracing)來完成場景相交運算。
  • Step 3. 在相交運算找到交點(intersections)之後,便可以重建反射影象。該過程可以就地完成,也可以分別完成,以提高一致性(coherency)。
  • Step 4. 核心跨畫素重用ray hit資訊,將影象取樣到全解析度。
  • Step 5. 為時域累積通道(temporal accumulation pass)計算有用資訊
  • Step 6. 最終,以交叉雙邊濾波器(cross-bilateral filter)的形式對噪聲進行最後的清理


3.3 實時光線追蹤:環境光遮蔽

當然,另一種可以很好地遷移到實時光線追蹤領域的技術是環境光遮蔽(Ambient Occlusion)。

實時光線追蹤技術:發展近況與未來挑戰

Ray Tracing AO可以通過對半球可見度函式的積分,獲得更接近Ground Truth的結果,因為取樣期間使用的所有隨機方向實際上都最終出現在場景中的。

其實,這就是Ray Tracing AO與螢幕空間AO技術(如SSAO)的主要不同點,因為在螢幕空間技術中,光線會出射到螢幕之外或幾何體的後方,而此時命中點是不可見的。

在Ray Tracing AO中,可以通過圍繞法線進行餘弦半球取樣來完成運算。光線通常是從G-buffer發出的,miss shader用於找出是否有擊中目標。每幀可以發射多於1束光線,但是如果限制了光線的距離,即使每幀只有一條光線,也應該得到一些很好的漸變效果。

不過,可能最終需要過濾和重建,因為Ray Tracing AO可能會有一些噪聲。

下圖是Ray Tracing AO與SSAO對比,我們可以完全看到光線追蹤AO將環境光遮蔽的渲染表現提升到了新的高度。

實時光線追蹤技術:發展近況與未來挑戰

實時光線追蹤技術:發展近況與未來挑戰

3.4 實時光線追蹤:陰影渲染

陰影渲染顯然是光線追蹤另一個出彩的領域。

實時光線追蹤技術:發展近況與未來挑戰

上圖是基於UE4實時光線追蹤渲染的場景,其展示了出色的實時光線追蹤陰影表現如何讓畫面更加真實。

Ray Tracing Shadow 實現起來並不太複雜。基本思想是向光源發射光線(launch a ray towards the light),如果光線未命中,則不處於陰影中。

實時光線追蹤技術:發展近況與未來挑戰

而與硬陰影(Hard shadows)相比,軟陰影(soft shadows)可以更好地傳達物體的真實感,更加Ground Truth。軟陰影(soft shadows)可以通過在朝向光的圓錐中按隨機方向進行取樣並將其視為區域光一樣對待來實現。錐角(cone angle)越寬,陰影越柔和,但噪點越大,因此我們必須對其進行過濾(filtering)。也可以發射多條光線,但仍需要進行一些過濾操作。

3.4.1 解析直接光照+隨機陰影

在基於物理的渲染領域頗有建樹的學術大牛Eric Heitz加入Unity後,在Ray Tracing Shadow領域又有了新的突破性進展。

Eric Heitz於2018年提出了一種結合瞭解析直接光照(analytic direct illumination)和隨機陰影(stochastic shadows)的新方法[13])。在paper中,他們提出了一種比率估計器(ratio estimator),該比率估計器可以將解析光照技術(analytic illumination techniques)與隨機光線追蹤陰影(stochastic raytraced shadows)正確組合。

實時光線追蹤技術:發展近況與未來挑戰

通過將陰影光照分為兩個部分——解析部分(analytical part)和隨機部分(stochastic part),他們的方法演示瞭如何通過隨機光線追蹤在影象的陰影區域部分獲得清晰和無噪聲,且解析和視覺上逼真的陰影。

而僅在需要時進行隨機求解的優點是,最終結果僅在陰影中有噪聲,而其餘部分則通過解析進行處理。該項技術還將陰影與光照分開,因此可以保留高頻陰影細節。真的是很贊。

3.4.2 透明陰影渲染

實時光線追蹤技術:發展近況與未來挑戰

在實時渲染領域,透明渲染一直都是難題,但是通過光線追蹤,可以找到一些新的替代方法。

在SEED提供的Demo中,在對透明表面陰影進行渲染時,他們用遞迴光線追蹤(recursive ray tracing)方法來替換常規的陰影光線追蹤方法。當光穿過介質時,會成倍地進行積累吸收。並進行薄膜近似(thin film approximation),假設所有顏色都在表面上,以得到更好的效能。同時,就像不透明陰影渲染一樣,使用類似的SVGF啟發式過濾器對其進行過濾,可以讓透明陰影也變得柔和。

實時光線追蹤技術:發展近況與未來挑戰

實時光線追蹤技術:發展近況與未來挑戰

上圖左側為未過濾的結果,右側為已過濾的結果。

實時光線追蹤技術:發展近況與未來挑戰

同樣,也能實現類似筆的墨水管的陰影從塑料外殼中傳播出的光線的陰影渲染。

3.5 實時光線追蹤:透明渲染和半透明渲染

實時光線追蹤技術:發展近況與未來挑戰

光線追蹤可以準確地進行光的散射,從而在實現透明渲染和次表面半透明渲染(subsurface translucency)上有天生的優勢。

對於透明渲染(Transparency),目前業界的發展近況可以概括為:

  • 正確表示順序無關的透明渲染(Order-independent Transparency,OIT)
  • 可變的粗糙度,折射和吸收(Variable roughness , refractions and absorption)
  • 多IOR過渡(Multiple index-of-refraction transitions)


實時光線追蹤技術:發展近況與未來挑戰

另外,對於粗糙玻璃,推薦使用Walter’s引數化(Walter’s parametrization)和GGX粗糙度重要性取樣(importance sample GGX roughness)。而對於特別粗糙的材質,則需要更多的取樣來進行降噪,也可以使用時域濾波。實踐證明在紋理空間(texture-space)中進行渲染是不錯的思路。

而對於半透明渲染(Translucency),目前業界已可以很好地實現均勻介質內部的光散射(Light scattering inside homogeneous medium),在PICA PICA Demo,同樣採用了在紋理空間(texture-space)中進行渲染的方案。

實時光線追蹤技術:發展近況與未來挑戰

3.1 實時光線追蹤:混合渲染管線

實時光線追蹤技術:發展近況與未來挑戰

對於多光源的處理而言,業界現有方案可以總結如下兩類:

  • 基於加速結構的光源選擇(Acceleration structure-based selection)
  • 基於重要性取樣的光源選擇(Light Importance Sampling)


其中,基於加速結構的光源選擇(Acceleration structure-based selection)方案的代表性思路可以總結為:

Unity引擎的方案。基於相機朝向的加速結構(camera-oriented acceleration structure) [Benyoub 2019] [Tatarchuk 2019]

《戰地5》的方案。水平面光源列表(horizontal plane light list)[Deligiannis 2019]

而基於重要性取樣的光源選擇(Light Importance Sampling)的代表性思路,都是HPG 2019的paper:

Dynamic Many-Light Sampling for Real-Time Ray Tracing [Moreau 2019]

Stochastic Lightcuts [Yuksel 2019]

其中,《Dynamic Many-Light Sampling for Real-Time Ray Tracing》描述了一種基於兩層BVH的分層光源取樣資料結構,該結構能夠從10,000個發射三角形進行互動式直接光照。這使得未來的實時場景可以只用自發光網格(emissive meshes)來進行光照,非常贊。

3.7 實時光線追蹤:粒子系統渲染

實時光線追蹤技術:發展近況與未來挑戰

對於光線追蹤粒子系統的渲染,《戰地5》解決方案是將粒子朝向光線,有點類似billboard的思想。

而一般方案是維護兩個頂層加速結構(Top Level Acceleration Structures, TLAS):一個用於不透明幾何體,一個用於粒子系統。

首先用不透明幾何體的TLAS發射光線,如果有命中,則儲存該長度

然後,在粒子系統的TLAS中發射另一條光線,並從不透明的命中長度限制該光線長度

然後,便可以相應地混合場景中的粒子系統

值得一提的是,另一個技巧是將奇數粒子旋轉90度。

3.8 實時光線追蹤:全域性光照

實時光線追蹤技術:發展近況與未來挑戰

光線追蹤硬體的新特性可以給全域性光照帶來各種便利,諸如依靠各種快取機制(caching mechanisms)在多個幀上累積渲染結果,並提高取樣速度。

可以將業界主流的基於光線追蹤的全域性光照分為如下三類:

  • 基於面元(Surfels)。Stochastic All The Things: Ray Tracing in Hybrid Real-Time Rendering [Stachowiak 2018]
  • 基於網格(Grid)。Experiments with DirectX Raytracing in Remedy’s Northlight Engine [Aalto 2018]
  • 基於探針(Probes)。Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields [Majercik 2019]


3.9 實時光線追蹤:剔除

實時光線追蹤技術:發展近況與未來挑戰

因為光線追蹤一般是在世界空間中進行的,所以無法使用光柵化方法中比較常用的“視錐剔除(Frustum Culling)”。

如果無法將所有物件都放在BVH中,則必須找到一種新的啟發式剔除方法。《戰地5》的方案是基於投影包圍球(Projected Bounding Sphere)[Deligiannis 2019],不失為一種有效的方法。

3.10 實時光線追蹤:Texture LOD

實時光線追蹤技術:發展近況與未來挑戰

因為畫素四階導數(pixel quad derivatives)只能用於光柵化,所以光線追蹤無法自動進行Texture LOD。

目前的主流方案是依賴於光線差分(Ray Differentials)方法,但其對效能有一定的影響。

在《光線追蹤精粹 (Ray Tracing Gems)》[Akenine-M?ller2019]一書中,有討論到一種基於光線錐(Ray Cones)的替代技術,其雖有一些可改進的地方,但也算是當前不錯的方案。

OK,盤點完十個細分領域目前的發展狀況,下面接著盤點實時光線追蹤業界當前面臨的挑戰,以及未來的發展方向。

肆 · 實時光線追蹤:業界當前面臨的挑戰

4.1 實時光線追蹤處理透明渲染仍有不少問題需要攻克

實時光線追蹤技術:發展近況與未來挑戰

在目前的實時光線追蹤領域,在1-2 spp(sample per pixel)的情況下,大多數降噪技術通常對於透明渲染、粒子渲染、體積渲染的渲染效果雖說相較於光柵化有進步,但其實也並算不上特別理想。

PICA PICA Demo中,雖然採用了具有折射和散射的紋理空間OIT(texture-space OIT)技術,但也並不完美,有改進的空間。

對於粒子系統和體積特效而言,採用在miss shader中更新體積/裁剪圖、或在hit shader中進行光線步進(Ray marching in hit shaders)、以及進行Non-trivial blending & filtering,都是值得嘗試的方向。

當下業界需要研究出更好的降噪技術或者相關方案,以在低spp下帶來更佳的透明渲染品質。

實時光線追蹤技術:發展近況與未來挑戰

對於區域性覆蓋(Partial Coverage)效果的渲染方面,當前的降噪技術並不能很好地適用於實時的區域性可見性。這是因為通常每畫素只有1取樣(1 spp),並假設所有內容都是不透明的。也可以在hit shader中進行Alpha測試,並且可以使用一些預過濾方法。但是,一旦物體開始移動,在效能和視覺表現上就可能出現問題。

另外,一些去焦效果(Defocus effects),例如運動模糊和景深,使用實時光線追蹤也仍然比較棘手。

4.2 對多變的遊戲內容環境的更好相容

實時光線追蹤技術:發展近況與未來挑戰

對目前的實時光線追蹤領域而言,需要更健壯的技術體系,來支援大量動畫角色,豐富的植被,動態的環境,以及對開放大世界,使用者生成內容的穩定處理。

4.3 實時光線追蹤全域性光照:廣闊的空間等待探索

實時光線追蹤技術:發展近況與未來挑戰

首先,實時光線追蹤進行全域性光照,會遇到即使在離線渲染中也存在的開放性問題。比如離線渲染中暫未解決的過高的方差,小孔全域性光照(Pinhole GI)等問題,在實時光線追蹤領域目前同樣是無法解決。

而且離線渲染方案中的許多解決方案,不一定都可以運用到實時渲染中。對於實時光線追蹤,目前而言必須藉助快取技術攤銷著色成本來達以互動速率進行渲染的效能要求。而在PICA PICA Demo中,基於面元快取GI(caching of GI via surfels)的方案,也存在僅能從看到的內容生成面元的限制。

同樣,業界也需要解決在不借助任何前期引數化行為的前提下,對使用者生成的內容進行穩定的實時光線追蹤全域性光照的問題。

所以基於實時光線追蹤技術的全域性光照,目前仍然有很多探索空間。

4.4 探索新的實時光線追蹤形態

實時光線追蹤技術:發展近況與未來挑戰

當前的實時光線追蹤模型假設光線是與三角形相交的(ray-triangle intersection),但是如果在樹的上層結構就讓光線停止,會怎樣?基於這種思考,可以像體素一樣來對待AABB,以擴充套件到新的追蹤型別,比如光束追蹤(beam tracing)、射線束(ray bundles),這也就開啟了實時光線追蹤新的方向。

另外,實時光線追蹤領域還可以解鎖廣義光線追蹤領域一系列新的演算法,比如:

Global Illumination Using Ray-Bundle Tracing [Tokuyoshi 2012]

Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields [Majercik 2019]

Cone Tracing [Crassin 2011]

另外,也可以參考聲音傳播的方案來進行實時光線追蹤。

4.5 不斷革新混合渲染管線的技術形態

實時光線追蹤技術:發展近況與未來挑戰

對於目前面世的實時光線追蹤的產品來說,《戰地5》等第一批搭載實時光線追蹤技術的遊戲,以及Unity、UE4引擎的實時光線追蹤功能,雖說聽起來高大上,其實並不算完美。按照形象的比喻來說,可能有點像在現有渲染管線上打補丁,做了大量的縫縫補補。

實時光線追蹤技術:發展近況與未來挑戰

在引擎方面,業界還有很多工作要做,以改進現有的渲染方法,最大限度地發揮混合渲染管線的優勢。

4.6 未來光線追蹤領域的研究方向

實時光線追蹤技術:發展近況與未來挑戰

就未來的光線追蹤研究而言,如果涉及到各類光線追蹤的技術文獻的使用和改進,須對文獻的基礎約束進行調整,以適應實時渲染的約束,而不僅僅是“正確的光線追蹤”。主要的要點在於制定合理的實時渲染預算以及善用光照傳輸快取(Light Transport Caches)技術。

另外,未來實時光線追蹤的一個大方向大概率是對紋理空間技術(texture space techniques)和可變速率光線追蹤(variable rate ray tracing)的探索。如快取材質(Caching of material)和區域性解(partial solutions),以及BRDF拆分(Split the BRDF)。

而在高效取樣和積分策略(efficient sampling and integration strategies)以及重建(reconstruction)方面,業界也還有很多事情需要去完成。

伍 · 總結

總之,實時光線追蹤技術,在圖形學發展的長河中,目前剛剛起步,發展勢頭良好,未來的路還很長。

整個工業的發展和技術的普及,依然任重而道遠。

同時也期待即將到來的GDC 2020,更多實時光線追蹤技術業界新進展的釋出。

實時光線追蹤技術:發展近況與未來挑戰

本文的GitHub版

Game-Programmer-Study-Notesgithub.com

Reference


[1] SIGGRAPH 2019, State-of-the-Art and Challenges in Game Ray Tracing
[2] 題圖來自UE4
[3] https://www.youtube.com/watch?v=zeYQ-kPF0iQ
[4] https://www.wired.com/story/exclusive-sony-next-gen-console
[5]https://www.rockpapershotgun.com/2019/04/11/nvidia-gtx-graphics-card-dxr-ray-tracing-driver/
[6] GDC 2018, Experiments with DirectX Raytracing in Remedy’s Northlight Engine
[7] GDC 2018, Shiny Pixels and Beyond: Real-Time Ray Tracing at SEED
[8] SIGGRAPH 2019, Leveraging Ray Tracing Hardware Acceleration In Unity
[9] Epic Games demonstrates real-time ray tracing in Unreal Engine 4 with ILMxLAB and NVIDIA
[10]https://docs.unrealengine.com/en-US/Engine/Rendering/RayTracing/index.html
[11]https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.1/manual/Ray-Tracing-Getting-Started.html
[11] https://devblogs.nvidia.com/ignacio-llamas-interview-unearthing-ray-tracing/
[12] GDC 2019, Towards Filmic Quality at 30 FPS: Real-Time Ray Tracing for Practical Game Engine Pipelines
[13] SIGGRAPH 2018, Combining Analytic Direct Illumination and Stochastic Shadows
[14] https://www.digitaltrends.com/computing/games-support-nvidia-ray-tracing/
[15] HPG 2019, Dynamic Many-Light Sampling for Real-Time Ray Tracing
[16] HPG 2019, Stochastic Lightcuts


作者:毛星雲
專欄地址:https://zhuanlan.zhihu.com/p/102397700

相關文章