天天日報(bào)丨虛幻引擎 5 Lumen vs 光線追蹤:哪個更好?
Epic 的 Unreal Engine 4 是上一代最流行的游戲引擎之一。它被 EA、Ubisoft 和 Microsoft 等 3A 巨頭以及大量獨(dú)立工作室廣泛使用。憑借虛幻引擎 5 及其 Lumen 和 Nanite 技術(shù),Epic 正在尋求擴(kuò)大其在視頻游戲行業(yè)的主導(dǎo)地位。在這篇文章中,我們將了解 Lumen,這是虛幻引擎 5 使用的全局照明解決方案,可在預(yù)算內(nèi)為下一代游戲帶來逼真的照明。我們將 Lumen 與傳統(tǒng)的光線追蹤進(jìn)行比較,并分析兩者在質(zhì)量和性能方面的差異。
(資料圖片僅供參考)
什么是全局照明?簡單來說,全局照明是通過計(jì)算屏幕內(nèi)外光源發(fā)出的光(通過近似或追蹤其路徑)來照亮或照亮場景的過程。通過光線和路徑追蹤,光線從這些光源投射,到達(dá)場景中的各種物體并照亮它們。根據(jù)遇到的對象的性質(zhì),光線的行為會有所不同。例如,有光澤(閃亮)的物體會反射光線,而不透明的物體會簡單地阻擋它并將其重定向到其他地方。物體在不同方向上對光線的這種重定向稱為間接或漫射照明,而重定向的光線稱為漫射光線。
光線追蹤全局照明 (RTGI)然后這些間接或漫射光線充當(dāng)新投射的光線,進(jìn)一步撞擊其他對象并在此過程中照亮它們,而對象將它們重定向基本上充當(dāng)光源。當(dāng)光線最終到達(dá)相機(jī)(你的眼睛)時(shí),它收集的信息用于確定場景的照明。
在大多數(shù)情況下,光線的顏色由反射它的像素的顏色決定。為了節(jié)省性能,直接照射到屏幕(您的眼睛)的光線(顏色、強(qiáng)度等數(shù)據(jù))是通過復(fù)雜的算法計(jì)算的,而其余的漫射光線則通過更簡單、不太復(fù)雜的方程來計(jì)算。
所以,現(xiàn)在您可能想知道光線是如何在場景中投射的,以及如何確定每個場景的光線數(shù)。嗯,這是通過探針完成的,這些探針基本上是開發(fā)人員在運(yùn)行前放置在場景中的光源。每個探頭都充當(dāng)點(diǎn)光源,投射光線并照亮場景。每個探頭可以放射狀地投射一條或多條射線。
這些探測器投射的光線被跟蹤、著色,并存儲輻照度和幾何距離等數(shù)據(jù),并用于計(jì)算場景的最終照明。在最初的光線追蹤游戲中,大多數(shù)開發(fā)人員使用一個(或兩個)光探測器來計(jì)算漫反射光照。在 Metro Exodus 中,這是太陽和天空的紋理。在增強(qiáng)版中,這擴(kuò)展到了 256 個光源或探頭。因此,總的來說,您有256 個光源,加上來自太陽和天空的光線都用于計(jì)算每個像素的光照。1080p 顯示器有 200 萬像素,1440p 有 400 萬像素,4K 有 800 萬像素!
為了確?,F(xiàn)代硬件能夠真正運(yùn)行游戲,開發(fā)人員使用網(wǎng)格單元或集群來劃分場景。然后類似于屏幕空間效果,范圍內(nèi)(在網(wǎng)格中)的光探針用于計(jì)算場景的照明,主要區(qū)別在于在前者的情況下,屏幕空間被劃分為多個部分(取決于它們在 Z 緩沖區(qū)中的位置),而在后者的情況下,游戲世界是分區(qū)的,避免了類似的覆蓋問題。
另一項(xiàng)優(yōu)化涉及累積來自先前幀的光線并將它們用于額外的漫反射光反彈,就像時(shí)間放大一樣。這用于生成照明網(wǎng)格,然后可以在連續(xù)幀上重復(fù)使用,從而允許幾乎無限的光線反彈。您實(shí)際上是在多個幀上臨時(shí)投射漫射光線,以減少性能影響并使該方法更適合實(shí)時(shí)使用。由于漫射光線的影響是微妙的(但在光線不足的場景中很明顯),它不會受到通常與時(shí)間渲染技術(shù)相關(guān)的問題的影響。
虛幻引擎 5:Lumen與光線追蹤好的,所以在我們開始之前,讓我們把一件事說清楚。Lumen 基于光線追蹤,盡管它是一種更優(yōu)化的混合形式,可以在不同的圖形架構(gòu)中更廣泛地采用,而無需擁有 1000 美元的 GPU。
Lumen 是虛幻引擎 5 的全新全動態(tài)全局照明和反射系統(tǒng),專為下一代游戲機(jī)而設(shè)計(jì)。Lumen 是 Unreal Engine 5 中默認(rèn)的全局照明和反射系統(tǒng)。它在從毫米到公里的大型詳細(xì)環(huán)境中渲染具有無限反彈和間接鏡面反射的漫反射。
默認(rèn)情況下,Lumen 使用軟件光線追蹤(不使用 RT 內(nèi)核/加速器),這是一種高度優(yōu)化的形式。它并行使用多種形式的光線追蹤,包括屏幕追蹤 (SSRT)、有符號距離場 (SDF) 和網(wǎng)格距離場 (MDF),根據(jù)對象及其與屏幕的距離計(jì)算場景的全局照明,以及某些其他因素。
有符號距離場和網(wǎng)格距離場在我們繼續(xù)之前,您需要知道有符號距離場(和網(wǎng)格距離場)是什么。雖然這聽起來像是一個非常復(fù)雜的術(shù)語,但SDF 基本上是一個特定方向的距離向量。讓我們以下面的例子來說明這一點(diǎn):
光線從相機(jī)投射,穿過屏幕,然后接近圓形表面?,F(xiàn)在,通過光線追蹤,最重要的部分是確定哪些光線擊中場景中的對象,哪些未命中。SDF 用于此目的,更具體地說,是找出(對于從特定方向開始的光線)對象表面上存在交叉點(diǎn)的最近點(diǎn)。
這里,綠色圓圈代表 SDF。計(jì)算SDF 意味著找出我們可以(至少)沿著射線在那個方向上走多遠(yuǎn)。然后,覆蓋這么多距離并重新評估 SDF。這整個過程稱為光線行進(jìn)?,F(xiàn)在對網(wǎng)格采用相同的方法,得到網(wǎng)格距離場 (MDF)。無論哪種方式,在這種情況下,光線實(shí)際上并沒有擊中圓,因此該過程在預(yù)定數(shù)量的步驟后結(jié)束。以防萬一,SDF 將被用于計(jì)算照明和其他相關(guān)方程。
全局距離場、網(wǎng)格距離場和屏幕跟蹤是最快的,但準(zhǔn)確度要低得多。這對他們有利,因?yàn)樗鼈冇糜趫鼍暗某橄笸夤趋?,例如墻壁、地板和大(但簡單)的紋理塊(例如墊子)。網(wǎng)格距離場更詳細(xì),但僅在對象表面附近保留稀疏的細(xì)節(jié)。這些 SDF 與 mipmap 一起使用,具體取決于對象與相機(jī)的距離。
lumen 中的軟件光線追蹤過程從屏幕空間光線追蹤或屏幕追蹤開始,它針對深度緩沖區(qū)中的幾何體/對象(在屏幕上可見)進(jìn)行。正如您在本節(jié)開頭的圖表中看到的那樣,這通常用于邊緣和裂縫,基本上是投射屏幕空間陰影 (SSAO) 的幾何體。在屏幕跟蹤之后,使用 SDF。第一個網(wǎng)格距離場用于附近的對象,其次是全局距離場用于場景的其余部分
網(wǎng)格距離場(稱為詳細(xì)跟蹤)跟蹤距離相機(jī)最遠(yuǎn) 2 米的對象,而其余部分使用全局距離場進(jìn)行跟蹤(稱為全局跟蹤)。如上所示,每種方法都有自己的每個場景的 2D 體素表示。GDF 不太準(zhǔn)確,因?yàn)槟鷮?shí)際上是根據(jù)對象輪廓跟蹤它們,但比 MDF 快得多。此外,目標(biāo)對象的性質(zhì)/距離意味著這非常有效。另一方面,MDF 跟蹤場景中各種對象的(相對)低多邊形版本以計(jì)算照明(對于高達(dá) 2 米的對象)。
為了進(jìn)一步加快這個過程,Lumen 使用了Surface Cache。Surface 緩存從各個角度捕獲對象的幾何屬性,并以各種圖集(緩存)的形式離線存儲它們。當(dāng)玩家四處移動時(shí)會發(fā)生捕獲,當(dāng)您靠近時(shí)以更高的分辨率進(jìn)行捕獲,而當(dāng)您遠(yuǎn)離對象時(shí)以較低的分辨率進(jìn)行捕獲。但是,這僅適用于內(nèi)部簡單的網(wǎng)格。緩存發(fā)生在有限數(shù)量的對象多邊形(幾百 MB 的 VRAM)中,并且需要各種對象/部分的 LOD 才能有效利用。
Lumen 軟件 RT的主要缺點(diǎn)之一是它不適用于蒙皮網(wǎng)格(主要是骨架),因?yàn)樗鼈兪莿討B(tài)的并且隨著每一幀(變形/移動等)而改變其形狀。因此,需要為每一幀創(chuàng)建這些對象的 BVH 結(jié)構(gòu),而 Lumen 的 SW 光線追蹤器無法做到這一點(diǎn)。Lumen SW 在運(yùn)行時(shí)只為靜態(tài)網(wǎng)格創(chuàng)建一次 BVH 對象,這大大加快了進(jìn)程,但對于動態(tài)網(wǎng)格卻毫無用處。
Lumen 還帶有硬件光線追蹤,但大多數(shù)開發(fā)人員會堅(jiān)持使用前者,因?yàn)榧词故褂?RT 內(nèi)核等專用硬件,它也比 SW 實(shí)現(xiàn)慢 50% 。此外,您也不能使用硬件光線追蹤或蒙版網(wǎng)格來重疊網(wǎng)格,因?yàn)樗鼈儠蟠鬁p慢光線遍歷過程。如上所述,軟件光線追蹤基本上將所有相互重疊的網(wǎng)格合并到一個距離場中。
總的來說,Lumen 看起來很驚人,但它的主要缺點(diǎn)是它僅限于 Unreal 5。這意味著與 NVIDIA DLSS 類似,它永遠(yuǎn)不會看到與其他開源技術(shù)(FXAA、SMAA 甚至 TAA)相同的采用量.?從好的方面來說,它應(yīng)該允許許多獨(dú)立工作室利用這種先進(jìn)的 GI 技術(shù),而無需付出太多努力。此外,它還將推動其他主要引擎(最著名的是 CryEngine、Frostbyte、Dunia 和 Snowdrop)提出他們自己優(yōu)化的、基于軟件的光線追蹤器,這些光線追蹤器適用于所有硬件。
五棟大樓 翻閱整理 2022 8.15