在今年的GDC 2018中許多廠商展示了使用 Microsoft DirectX 12的擴展 API DirectX Raytracing(DXR),在Microsoft也在DirectX blog詳細介紹,該技術已經整合至Unreal與Unity,兩家主要遊戲開發商已經發布了在自己的引擎上運行的DXR展示,Remedy Entertainment的Northlight和EA的實驗性Halcyon引擎。
這些都使用了Nvidia的RTX技術,都使用了Nvidia 高階的Volta GPU。
Remedy Entertainment展示了自家的Northlight Engine,
Pica Pica demo 是EA SEED research division, 展示了實驗性Halcyon engine使用DirectX Raytracing
Epic也與ILM的xLAB合作製作了一段Starwar使用DXR的Real-time Raytracing Tech Demo,展示下一代的Unreal的Lighting與Rendering的技術
在GDC 2018上,Epic也與ILMxLAB展示了使用Real-time的Raytracing的技術細節
更即時與真實的Raytracing
現今的遊戲繪圖基礎都是建立在光柵化(rasterization)這樣的技術上,為了繪製出更真實的畫面,使用越來越吃重的技巧來達到GI效果以提高真實度,時到今日,使用這樣的技術,硬體的需求也非常吃重。但是現在使用了DirectX 12 DXR,可以在同樣的Graphic Pipeline使用Raytracing的方法,來透過硬體的支援與HLSL的一組Raytracing function TraceRay(),來達到某些更真實的效果,像是Soft Shadow與Reflection, Ambient Occlusion, Subsurface Scattering與Dynamic GI。
在Raytracing的世界裡,Ray Bounce與Sample決定了最終的品質,在Unreal的Demo中,為了達到Reflection,Soft Shadow與Ambient Occlusion這類需要大量Ray Sample的效果,採用在每個pixel使用較低的sample數,配合Nvidia的Denoise的技術達到品質與速度的結果。
The Ray Tracing Pipeline
傳統的光柵圖形管道定義了許多著色器(shader)類型:頂點著色器(vertex shader),幾何著色器(geometry shader),像素著色器(pixel shader)等。與該模型類似,光跡追蹤管線由五個新的著色器類型組成,它們在不同的階段執行。Program Model類似於Nvidia的OptiX。
- Ray generation shader
- Intersection
- Any hit
- Closest hit
- Miss Shader
Futuremark DirectX Raytracing demo
在現今繪圖硬體越來越快的環境,Raytracing一直以來都是硬體效能的殺手,DXR的技術還是一個很新的技術,未來Real-time Raytracing會不會完全取代現有的遊戲繪圖的rasterization技術,還有很多的挑戰必須克服,但是有開出一條新的道路,也許會讓Real-time的技術更多元,有更不一樣的面貌,也可以讓結果更真實。
相關連結
Epic Games Demonstrates Real-Time Ray Tracing in Unreal Engine 4 with ILMxLAB and NVIDIA
Introduction to NVIDIA RTX and DirectX Raytracing