如何在 HDRP 中實現光線追蹤?

遊資網發表於2021-02-08
在光照中,“光線追蹤”是指從攝影機或表面向其他表面或光照模型(尤其是攝像機檢視外)射出光束來形成光照。該技術龐大的計算量使其僅在電影製片和高階視覺化領域有廣泛的應用,但是在實時內容創作上一直被幀數限制。數年來遊戲使用了另一種方法替代光線追蹤,即光柵化。簡單來說,光柵化就是渲染螢幕畫素受特定光照的影響,實際本身並不涉及光線追蹤的概念,且由於其螢幕空間的本質而有一定的侷限。

幸而,隨著主流GPU的更新迭代,由硬體支撐的光線追蹤逐漸普及,光追可能很快就會成為生成光照的新標準(尤其是在高階平臺上)。而高清渲染管線(HDRP)則推出了一種糅合傳統光柵化與光線追蹤技術的混合光線追蹤管線,並用光線追蹤重現了諸如環境光遮蔽(AO)、光反射、全域性光照(GI)、次表面散射和陰影等常見光效。

如何在 HDRP 中實現光線追蹤?

如何在 HDRP 中實現光線追蹤?

如何在 HDRP 中實現光線追蹤?

以上圖和視訊為寶馬2019款8系雙門轎跑車展示,這是Unity、NVIDIA和寶馬三方的合作成果。視訊中,實景拍攝和光線追蹤渲染的無縫融合產生了不可思議的效果,證明了實時光線跟蹤技術在耗時、成本遠低於離線渲染的前提下,也能製作出極度逼真的影像。


用全新的 HDRP 模板實現光線追蹤

Unity 2020.2 推出了全新的 HDRP 模板,我們之前也介紹過該模板,感興趣的朋友點選這裡回顧。

建議大家下載 Unity 2020.2,在 Unity Hub 中建立新專案,選擇 HDRP 模板,然後點選Create。

如何在 HDRP 中實現光線追蹤?

全新的 HDRP 模板藉助了光柵化技術來渲染光照,使用了光照烘焙、光照探針組、反射探針、陰影貼圖等功能。本文將介紹 HDRP 中 4 種主要的光線追蹤效果,即光線追蹤環境光遮擋(Ambient Occlusion)、光反射(Reflection)、全域性光照(Global Illumination)和陰影(Shadow)。最後,介紹 HDRP 的路徑追蹤(Path Tracing)功能,路徑追蹤是更為簡單粗暴的光追計算方法,通過延長渲染時間,來換取更高的影像保真度。

光線追蹤環境光遮蔽(RTAO)

十多年來,螢幕空間環境光遮蔽(SSAO)一直是遊戲實時渲染的主要內容,用於模擬環境的漫射光遮蔽,改善場景中物體接觸區域的視覺效果,降低凹面區域的光照強度。但是效果如果強度過高,則會在幾何體周圍產生光暈,甚至產生卡通化外觀。除此之外,它還繼承了螢幕空間技術的主要缺點,即無法根據螢幕外物件生成遮蔽效果,僅能使用 z-buffer(z軸快取)中出現的深度資訊。但在優點上, SSAO 在處理攝像機內的小區域光遮擋時依然出色,並且成本相對較低。

如何在 HDRP 中實現光線追蹤?
圖例:三種情況下的環境光遮蔽對比

在光線追蹤的幫助下,位於攝像機視錐外的光線也能被拍攝進畫面,讓光線照射到畫面外的物體,從而讓攝像機內的大型物體生成出色的巨集觀遮擋效果。儘管從技術上講,AO只能勉強算作一種環境光照技術,但它能很好地補充光照貼圖、光探針等其它光照,後者較低解析度及效果強度並不足以生成微型光遮蔽。

光線追蹤光反射(RTR)

與 SSAO 類似,螢幕空間光反射(SSR)也只能反射畫面中的物體,出於攝像機鏡頭外的表面並不能反射光。比方說,攝像機視角對著地面時,SSR技術將不能生成任何光照資訊。因此,SSR 的效果多少會有偏差,且會受到多種因素干擾,甚至受你自己干擾:在大部分靜態場景中,位置恰當的反射探針才能產生悅目的效果、減少干擾因素。不過 SSR 真正有用的地方在於視線平行方向上的鏡面反射(如地板、牆壁和天花板)。SSR 最為理想的使用方法是用在視角固定的攝像機中,比如賽車遊戲。

如何在 HDRP 中實現光線追蹤?
圖例:光柵化與光線追蹤的光反射對比

但有了光線追蹤後,我們就能獲取螢幕外的光照資訊,並藉此在整個世界上,或在鏡頭周圍一定半徑內生成更精確的光反射,根據 Light Cluster(光照叢集)和光線照射距離來生成光照效果。

光線追蹤全域性光照(RTGI)

光線跟蹤最具代表性的功能之一是實時全域性光照,即用射出的光線生成間接光照,再簡單點說,就是讓光照在環境中彈射。

通常在遊戲引擎中,間接光照是使用提前計算或烘焙技術來處理的,包括光照探針、光照貼圖,但技術的缺陷在於運算耗時會增加場景光照的迭代時間。

如何在 HDRP 中實現光線追蹤?
圖例:光柵化與光線追蹤的全域性光照對比

HDRP 推出了兩種 RTGI 技術:高效能和高質量。前者適用於在直射光下實現高幀率,而後者則能處理光線的多次反射和取樣,可在複雜室內環境中生成精確的光效,當然運算成本也非常高。

光線追蹤陰影

HDRP 自帶精美的陰影效果,在陰影過濾質量為高時(PCSS),管線生成的貼圖可模擬自然的陰影柔順感,保證陰影在投影物體周圍的銳度,模模擬實陰影。然而當過濾質量為中等時,結果就不盡人意了,整張陰影貼圖均會被無差別過濾,投影物體和接收物體間的距離將不能影響效果。

如何在 HDRP 中實現光線追蹤?
圖例:光柵化與光線追蹤的陰影對比

光線追蹤陰影可以顯著改善陰影效果。通過從表面向光照投射射線,來計算出兩者間的遮擋面積,由此生成的陰影非常逼近現實,而效能成本並不算高。此外,HDRP還支援透明表面的陰影!

路徑追蹤

光線路徑追蹤功能較傳統離線渲染可更快地生成精美影像。光線從攝像機射出,在碰撞到表面時,再向其他表面和光照投射光線(形成光照叢集‘Light Cluster’結構)。光線從攝像機到燈光間的行程稱為路徑,功能由此得名路徑追蹤。

如何在 HDRP 中實現光線追蹤?

與其他光線追蹤方法相比,路徑追蹤的優勢在於能用統一的運算流程來生成所有光照,包括陰影、反射、折射和全域性光照。該技術的主要缺點在於渲染時間和影像噪波,後者可以通過累積取樣多幀影像來推算出更為清晰的影像(類似時域化抗鋸齒)。

在此提醒一下各位朋友,目前 HDRP 中的光線追蹤處於預覽階段,並不能滿足商業製作要求,各位在創作的時候請務必做好備份。同時,也歡迎各位提出寶貴的建議。

來源:Unity
地址:https://mp.weixin.qq.com/s/vPKBGOA_vxcHVH5TP2Hoqg

相關文章