深入虛幻5引擎:Epic次世代視覺奇觀探祕

奔街命編譯發表於2020-05-21
原文:https://www.eurogamer.net/articles/digitalfoundry-2020-unreal-engine-5-playstation-5-tech-demo-analysis

Epic在最近公佈的演示裡展現了虛幻5引擎執行在PlayStation 5上的實機表現,這可能是最近一年來最重要也是最具有影響力的演示,讓我們得以一窺次世代遊戲的大體風貌。虛幻5引擎帶來了令人驚訝的細節表現,徹底摒除了LOD對模型的影響。全新的引擎擁有著激進的幾何處理方式以及先進的全域性光照技術,是真真正正的次世代遊戲引擎。最後呈現在我們面前的結果是前所未見的,但全新渲染器的真正面目是什麼樣的?它們又是如何帶來這次世代畫面表現的,有什麼缺點和制約嗎?

網上對於這個技術預告片的反應很有意思,觀眾們提出了很多有趣的問題以及一些令人困惑的回覆。尤其是主角從一個狹縫中穿過的場景讓人感到十分不解,不過我們把話說明白,這很明顯一個為劇情服務的決定,而不是為了有時間載入資料而故意設定的。同時,1440p的動態解析度也讓很多人不滿意。我們手頭上有20個沒有被壓縮過的預告片裡面出現的素材,它們和傳統的畫素計算方法並不一樣。當最後的成品看起來是如此出色,有著令人難以置信的細節以及穩定性(比如每一幀之間並沒有抖動或者頻閃),解析度就變得沒那麼重要了,正如我們在本世代的增強型主機上看到的那樣。我們在兩年前就提到過,次世代主機不應該糾結“真4K”的概念,遊戲行業已經向前邁進了,而且老實說,GPU效能應該被用在更好的地方而不是僅僅提升解析度。

還有一些有意思的討論,虛幻5引擎“每一個畫素點都對應一個三角形”的技術以30fps的速率演示,所以很自然地,人們會好奇60fps幀率下的畫面是什麼樣子。還有一些人想知道新引擎如何處理動態幾何體以及頭髮或者植被的效果。記憶體管理也是一個熱門的討論話題,因為在虛幻5引擎的宣傳裡面,在遊戲裡直接呼叫原生的高精度模型是一個重點,所以這究竟是怎麼做到的?這個問題又引出了另外一個更深入的話題,那就是儲存頻寬的需求到底有多大,在這一方面PS5有著不小的優勢。所以全新的Lumen以及Nanite技術能夠多大程度上呼叫PS5那驚人的5.5GB/s儲存頻寬?希望我們能夠儘快瞭解更多內容。

Nanite是虛幻5引擎革新的核心,全新的多邊形渲染器帶來了技術Demo裡前所未見的細節表現。這一“micro-polygon”渲染器的概念並不是什麼新玩意兒,在影視CGI領域已經運用了很多年。雖然出發點相同,但是在遊戲裡面執行的過程與現有的渲染器不太一樣。

Nanite渲染過程中所用到的模型是影視級的,每個模型擁有數百萬個多邊形,但這些高質量模型不會再需要為了遊戲渲染而提前降低精度了。在Nanite裡,高精度模型的幾何細節會實時按需調整。更高的細節不需要像從前一樣被提前烘焙進法線貼圖裡。Epic Games團隊裡的核心成員通過回答一些關鍵問題,幫助我們更好地理解了這一全新的技術。

深入虛幻5引擎:Epic次世代視覺奇觀探祕
圖源:Wikipedia

“有了Nanite,我們不用再通過法線貼圖來將高解析度的模型轉換成低解析度了;我們可以直接把高解析度的模型匯入引擎內。虛幻引擎支援Virtual Texturing,這意味著我們可以在我們的模型上使用多個8K貼圖,且不用擔心過載GPU。”Jerome Platteaux,Epic特別專案藝術指導,對Digital Foundry說道。他提到每一個asset都有一個8K貼圖作為底色,另外一個8K貼圖來確定金屬性/粗糙度(metalness/roughness),最後還有一個8K貼圖給法線貼圖。但這並不是傳統意義上的法線貼圖來模擬更高階別的細節,更多是為了表現模型的表面細節。

“舉個例子,你們在視訊裡面看到的神廟內林立的武士雕像,每一個都是由八個部件組成(頭,軀幹,手臂,腿以及其他的)。每一個部件都有一組三個貼圖(底色,金屬性/粗糙度,展現物體表面小劃痕的法線貼圖)。所以最後我們的每一個武士雕像都有8組,一共24個8K貼圖,”他補充道。

深入虛幻5引擎:Epic次世代視覺奇觀探祕
武士雕像

由於細節與螢幕內的畫素點數量相關,所以不需要再對高精度的模型做處理,也沒有了現有渲染系統裡面的LOD。同樣地,理論上也不會出現2015年的《星球大戰:前線》裡,地表地形出現的那種“奇怪”效果(有一說一,這個遊戲今天看起來還是很漂亮)。最後,它也能夠表現出水平上的延展以及裝飾品的細節,這也就是說每一個在地上的石頭能夠以更加自然的方式提高或者降低渲染質量。總結一下,這個micropolygon渲染方式讓處理模型的工作流程有了很大的改變,基本不再需要法線貼圖來處理高質量的模型,這節省了時間,記憶體甚至渲染請求,不過這些非常龐大的模型所需要的記憶體開銷還是一個未知數。

另一個Nanite的出色能力是對陰影的渲染效果,這對於營造一個逼真的效果至關重要。這也是《使命召喚:現代戰爭2019》看起來如此出色的主要原因,畢竟光線追蹤生成的陰影比低解析度法線貼圖陰影強太多了。PlayStation 5上執行的虛幻5引擎利用一些討巧的手段代替了基於triangle的硬體加速光線追蹤,包括使用本世代遊戲常用的基於螢幕空間(screen-space)來表現場景細節,然後結合虛擬化的陰影貼圖。

深入虛幻5引擎:Epic次世代視覺奇觀探祕

“我們會對螢幕空間進行一次非常快速的取樣來避免後續可能出現的陰影渲染錯誤,”Brian Karis解釋說。“這些通常被稱為‘Peter Panning’,意思是陰影出現在了相反的方向,導致有一部分陰影覆蓋在了物體本身,通常是一個點或者條紋。我們通過我們的過濾手段避免了這兩種情況的出現,包括前面提到的快速螢幕空間追蹤取樣以及其他幾個小技巧。”

深入虛幻5引擎:Epic次世代視覺奇觀探祕
左側的陰影渲染出了問題

“不過說真的,提高陰影質量最關鍵的還是虛擬陰影貼圖(Virtual Shadow Map)。基本上就是專門針對陰影的虛擬貼圖(Virtual Textures,可以點選這裡瞭解更多)。Nanite可以讓我們做很多以往我們根本不可能做到的事情,比如非常高效地為每一個畫素渲染虛擬陰影貼圖。我們會為每一個畫素的虛擬陰影貼圖選擇解析度,這些texels(紋理元素)是畫素級的,所以大體上一個texel對應一個pixel,這讓我們的陰影看起來無比銳利。高效率的渲染使得我們可以讓Demo裡面的陰影貼圖解析度達到16K,而在以前我們最多隻能用2K解析度的貼圖。高解析度非常爽,但是我們也需要真實可信的陰影,所以我們將以前的一些基於光線追蹤的降噪手段進行了擴充套件,讓明暗交接的部分十分漂亮。”

深入虛幻5引擎:Epic次世代視覺奇觀探祕
texel和pixel空間轉換

Lumen是另外一個虛幻5引擎Demo裡面的核心技術,這也是Epic為了挑戰實時渲染領域的聖盃之一:實時動態全域性光照(real-time dynamic global illumination)所給出的答案。Lumen本質上是一個非多邊形光線追蹤的解決方案,並且在光束撞擊到物體表面後會將光線彈射出去。所以在Demo裡,當陽光照射到一個物體表面,比如說石頭,引擎會正確地渲染出陰影,由於光線在四處彈跳,石頭的顏色也被影響了。這個Demo表現了場景實時光照的大幅度變化,在視訊裡甚至還有一段專門展示開啟或者關閉這個功能的效果對比。

深入虛幻5引擎:Epic次世代視覺奇觀探祕

大部分遊戲都通過提前計算光照貼圖來模擬全域性光照,通過離線渲染然後通過貼圖“烘焙”到場景內部。一個場景通過這樣的操作就有了全域性光照效果,但是光源沒有辦法移動,光照的效果以及物體是完全靜態的。光照效果被繫結在了遊戲場景的物品表面,不僅如此,光照圖貼只作用於漫反射光照效果,鏡面高光,比如金屬、水面或者其他閃亮物體表面的反射需要用別的方式來處理,比如立方體貼圖(cube map)或者螢幕空間反射。

4A Games的《地鐵:離去》提供了一個潛在的解決方案,通過硬體加速光線追蹤來生成動態全域性光照,但和其他用到Nvidia RT核心的解決方案已於,硬體開銷實在太大了。Lumen則是一個更加輕量化的實時解決方案,通過運用追蹤技術以及其他的手段相結合來完成最後的影像渲染。Lumen為陽光提供了多重間接照明(indirect lighting),在Demo裡,同樣的效果也在主角的閃光球中有所體現。

“Lumen使用光線追蹤來解決間接照明,但並不是triangle ray tracing,”Daniel Wright解釋說,Epic的圖形技術指導。“Lumen通過對場景裡面預置的引數進行光線追蹤計算,所以並不需要特殊的光線追蹤硬體支援。”

(譯註:這一段不是很明白,原文如下,Lumen traces rays against a scene representation consisting of signed distance fields, voxels and height fields. As a result, it requires no special ray tracing hardware.)

為了實現真正完全動態的實時全域性光照,Lumen有一個特別的層次架構。“Lumen呼叫了一系列的技術手段來高效地進行光線追蹤計算,”Wright繼續說道。“螢幕空間追蹤負責處理細節,網格化的distance field處理中等規模的光線轉換,最後由Voxel(體素)來處理大規模的光線。”

為了維持效能表現,團隊還採用了另外一項關鍵的技術,temporal accumulation,這項技術可以反映光線每一幀的反射情況。舉個例子,在視訊Demo的開頭,如果你仔細察看光線的運動情況,你會發現反射的光比起直接照射的光源,移動的時候會有一點卡頓。開發人員提到了“無限反射”的概念,本質上就是將這些反射光的反射情況做成一個迴圈進行播放。這可以讓場景裡出現很多光線反射的效果,但光線移動很快的時候就會有一丟丟延遲。

Lumen的表現讓人驚歎不已,最後視訊的質量代表了Lumen和Nanite實力。我們對於這個技術展示所表現出來的可信度也十分認可。雖然呈現在我們眼前的一切讓人難以置信,但是當你開始一層一層的揭開新技術演示的面紗,你會更加清楚地瞭解Epic是如何做到這些事情的。

這家公司從一開始就對所有的技術細節持公開透明的態度,沒有搞什麼“in-engine”演示,直接展示的就是實機引擎表現,而且對於新引擎技術上的限制以及效能表現開誠佈公。畢竟這對於一家致力於為遊戲開發者們提供最好的引擎及開發工具的公司來說,是公開全新次世代遊戲引擎的最好方式。

因為虛幻引擎是面向所有遊戲開發者的遊戲引擎,所以Epic也沒有必要遮遮掩掩,畢竟最後這些功能都會開放給所有開發者。那麼這些全新的技術會有何種限制?如果有的話,我們會在新引擎正式上線的時候明白限制在哪裡。我們再回顧一下虛幻系列引擎的本質:這是為了讓開發者們能做出任何遊戲所設計的一套通用遊戲引擎。全新的次世代渲染器肯定會搭配全新的易用套件幫助開發者們更好的運用新玩意兒,不然Epic就是在搬起石頭砸自己的腳。儘管如此,從本世代的遊戲建模流程轉換到全新次世代,確實會是一個非常巨大的變動,正如我們以前提過的。

當然了,我們還是要再等六個月從能上手全新的遊戲主機,同時虛幻5引擎也要等到2021年初才會正式上線。這個時間節點表示Epic還有很多工作要做,不過Brian Karis說更多關於Lumen和Nanite的細節會在近期公佈,我們已經迫不及待了。

作者:奔街命編譯
來源:機核
原地址:https://www.gcores.com/articles/124006

相關文章