標誌著Ubisoft的旗艦系列的重要技術演變,並具有振興的砧引擎,該發動機與其他創新系統一起挖掘了一些最新的渲染技術。我們已經看到了新遊戲的實時射線追踪全球照明(RTGI)系統的變革性如何,取代了十年前首次在DF最愛中首次亮相的較舊的,預先計算或“烤製”的GI解決方案,。但是,新引擎走得更遠。
在去年延遲陰影之前,我們有機會與遊戲的渲染工程師共度時光,討論Anvil的發展方式,最後,本週早些時候,我們有機會直接與團隊交談。正如您將在此頁面上的嵌入式視頻和下面的技術訪談中看到的那樣,我們可以掌握新遊戲中的關鍵增強功能。 Ray Tracing需要中心,RTGI提供了一個像素照明系統,該系統可以動態調整遊戲的季節性季節性轉移的開放世界,從而產生了逼真的效果,例如通過日本Shoji分離器等材料從移動來源和光線過濾產生彈跳的效果。此外,射線追踪的反射可增強水和光滑的表面,並具有微妙的光澤。
儘管在訪談中沒有提及,但視頻中涵蓋了Atmos系統 - 很棒的東西,基於濕度和溫度等環境因素模擬天氣和風。這種活力在過程中影響世界:樹木的搖擺,頭髮移動,葉子或雪對風反應。通過物理驅動的破壞系統進一步強調互動性,使玩家能夠打破竹子,切成薄壁或切片布,回應2000年代中期遊戲的環境互動性,例如時期製作。
從視覺上講,與虛幻發動機的納米類似的微型幾何系統 - 消除了建築物和岩石等剛性對象的彈出式彈出式(LOD)。雖然尚未應用於植被或角色,但計劃將來擴展以進一步提高忠誠度。這只是我們對新遊戲學到的知識的廣泛概述 - 請務必查看下面的視頻,以了解所有這些技術的發揮作用。同時,許多感謝Engine技術建築師Nicolas Lopez和Pierre Fortin,以及Project Progincemer Rendering,SébastienDaigneault的支出(很大程度上)與我們討論遊戲並將此報導放在一起的時間。與往常一樣,為了清晰和簡潔,下面的言論被輕微編輯。
我們已經看到Ray將全球照明跟踪是AC陰影中的遊戲改變者 - RTGI在技術層面上的運作方式如何?
我們的混合RTGI系統結合了兩個步驟:人均射線跟踪(屏幕空間射線和世界空間射線)和類似DDGI的探針級聯。我們首先在屏幕空間中跟踪每像素射線,試圖求解RT交叉點,而不必使用昂貴的硬件射線。如果在屏幕空間中沒有發現命中,我們將繼續並在世界空間中進行射線痕跡。這些是DXR射線,它們穿越加速度結構(BVH),直到擊中或錯過。然後,所有命中均以延期的方式恢復,以產生第一次反彈。然後將結果求和到我們的射線追踪探針,該探針充當輻照緩存以帶來隨後的彈跳,最終將結果降低。
太陽和月球以外的動態燈如何處理?
通過直接照明,我們使用瓷磚Z-襯板處理本地燈,這是Activision在Siggraph上提出的一種技術。它沒有將冰果分解為3D簇,而是將其分解為2D瓷磚和1D Z-Bins,這為AC陰影的照明成本提供了10%的速度。但是,在RT中,我們將動態燈插入全向聚集的照明結構中,該結構的工作方式與傳統的群集照明作用,但群集體積被映射到攝像機周圍的均勻網格上,而不是將其映射到Froustum Voxels周圍。因此,我們觀察到10倍加速與更幼稚的實現。
透明膠片如何陰影?那多個彈跳呢?鏡面如何處理?
GI僅在使用RTGI運行時使用RT探針應用於透明對象。第一個反彈來自每個像素RT,這是我們所說的次級射線。隨後的彈跳來自充當輻照緩存的RT探針。對於鏡面反射,大多數平台將使用屏幕空間反射,GBUFFER本地立方體映射(烤製,但在運行時可重新獲得)以及在玩家位置的動態立方體圖作為後備。在PC上但是,鏡面RT可用於替換這三個系統並提高整體保真度。在設計方面,鏡頭RT與漫射RT非常相似,儘管我們不得不解決一些否則幾乎沒有明顯的BVH質量問題。
BVH結構(涉及到的射線的幾何形狀)是什麼樣的,包括什麼以及如何更新?
我們僅在BVH中包括靜態不透明的幾何形狀。它包括經α測試的幾何形狀,例如植被,但還包括沒有皮膚的動態運動物體(未變形)。對於樹葉,我們使用技巧來用縮放的不透明三角形來假α測試。這聽起來是違反直覺的,但在實踐中效果很好,對於鏡面RT來說也是一個很好的近似值。這樣,我們節省了DXR“任何命中”的巨大成本,同時仍可生產接近參考的渲染。
開放世界與藏身處使用了什麼GI解決方案?
我們在不包括RTGI的控制台模式下使用烤製的gi開放世界。對於不支持硬件RT的PC,我們開發了一種基於自定義計算的軟件RT解決方案,該解決方案允許完全動態的藏身處,而不會損害質量。藏身處的範圍/沙盒性質意味著我們在這裡負擔得起該系統的更高GPU成本。我們在AC陰影的最初延遲後開發了這一點,因為我們退後一步並分析了我們可以為玩家提供更加精緻的體驗。蒸汽甲板上也使用了相同的技術。
鑑於印第安納·瓊斯(Indiana Jones)和阿凡達(Avatar)之類的人:潘多拉(Pandora)的前沿,為什麼要使用兩個GI解決方案而不是僅使用RT?
一個簡單的原因是,我們相信今天將RT迫使RT迫使PC上的玩家,而在遊戲機上的性能模式下也迫使我們做出我們根本不願意採取的定性犧牲。我們為我們從AC Unity不斷提高的烘焙gi系統感到自豪 - 隨著一天中的AC集團的時間,AC Origins的稀疏GI,AC Valhalla的多狀態GI和AC陰影中的季節。
這是一個具有廉價運行時間的系統,但產生了出色的結果,而犧牲了建立復雜性。這使我們可以在60fps的方案中使用有限的GPU預算在其他功能上,例如程序模擬的樹木和植被。我們知道性能模式對玩家很重要,這將是一種流行的模式。
另一方面,RTGI和RT反射具有不可否認的優勢,對於我們來說,為陰影和未來標題開發它是很自然的。我們認為,遊戲在質量或性能模式之間的選擇方面提供了真正的困境。對於我們來說,開發單個GI解決方案會更容易,但是我們希望最大程度地利用遊戲的範圍,甚至包括Steam Deck和Portable PC硬件。
頭髮系統的技術基礎是什麼?如何處理陰影,陰影和反疊放?
從幾何上講,頭髮是面向攝像頭的三角形條。如果由於透視圖,鏈寬度需要在一個像素之下,則它將在保持相同寬度的同時降低鏈性不透明度。角色髮型具有可變數量的鏈,隨著相機的距離和位置而降低。與頂點數量相比,沿鏈的樣品沿鏈的樣本更少計算,並且隨著攝像頭距離而降低。為了可伸縮性,只有一定百分比的鏈被以這種方式點亮,而其餘的則是從先前的結果中插入的。
在物理學方面,我們最多模擬了總鏈的一至5%的每股32點 - 我們稱之為指導鏈 - 並使用來自三個最近的導遊的重心權重插入其餘部分。
對於頭髮遮蔽,我們使用Marschner模型,該模型自《幽靈偵察野外》和雙散射模型以來一直存在於引擎中。該實現主要基於原始2008年Zinke的論文,Yuksel等。,從2010年迪士尼Tamstorph Tamstorph後部。
對於陰影,我們有一個自定義地圖集,可用於更高質量和每個鏈陰影,可實現過濾的深度不透明度圖。同樣,為了伸縮性,我們採用距離吸收方法和簡單的深度圖方法。為了抗氧化,我們對鏈的“電話線”抗溶劑,以及用於髮束的MSAA和雙線性過濾。由於將鏈與alpha混合呈現,我們具有一種自定義訂單獨立的透明度算法,該算法使用四個深度層和每一層內的樣品重量混合,從2013加權混合OIT紙摩根·麥奎爾(Morgan McGuire)和路易(Louis Bavoil)。
控制台上使用了哪種反疊縮和/或圖像重建技術?
我們使用自己不斷完善的TAA實現 - 儘管我們將在將來的更新中添加對PS5 Pro上的PSSR的支持。
為什麼您不選擇在Xbox系列X和PS5上使用FSR 2或3,而不是選擇在PS5 Pro上提供PSSR?
簡而言之,與我們專有的TAA實施相比,FSR的成本是決策因素。與FSR相比,我們具有更高的上尺度分辨率。
在PSSR方面,我們分析了PSSR和TAA DAT運輸AC陰影的時間,並通過TAA解決方案找到了更好的結果。但是,PSSR是一位新的高檔器,在過去幾個月與索尼進行了深入的合作之後,已經解決了許多問題,主要是圍繞移動的植被和水 - 其他標題面臨的問題。現在,我們有信心,PSSR的圖像質量總是比TAA更好。
為什麼將過場動畫限制為30fps?
有幾個原因。在過場動畫中,我們認為增加的分辨率比增加的框架速率更有益。這使我們能夠激活昂貴的GPU功能,無論選擇哪種性能模式,頭髮鍊和田間效果的深度為電影和對話增加了很多質量。我們還推動陰影分辨率質量和數十個其他參數。穩定的30fps還提供了更逼真的布運動,並確保基於物理的系統對更確定性和可預測的響應,以獲得更精緻的體驗。最後,框架的一代可能會將不必要的人工製品帶到過場動畫中,這在遊戲玩法中不會引人注目,因此我們在這裡不使用框架。
特別是PS5 Pro,為什麼在質量模式下會出現RT反射,而在平衡模式下不存在RT反射?
最初延遲到交流陰影后開發了RT反射。鑑於發布窗口的變化,我們希望確保在高端PC和PS5 Pro上保持競爭力。我們有一個非常有動力的團隊,他們學到了很多開發RTGI解決方案,並有信心以30fps的性能目標在Pro上運送RT反射的目標。為了啟動,我們的優先級是質量模式,以確保它不會引起圖形偽像或其他問題。我們繼續優化RT的反射和遊戲,我們很高興地說,將來的更新將使RT對PS5 Pro的平衡模式進行反思。
我們在PC遊戲中最大的問題之一是口吃,主要來自在正式的著色器彙編中。您避免這種情況的策略是什麼?
這是所有DX12遊戲在PC上都面臨的挑戰。一般的想法是在進入遊戲玩法之前“預熱” PSO。為此,我們正在使用SO-稱為PSODB(PSO數據庫);簡而言之,這是PSO描述的列表。困難的部分是弄清楚在PSODB中放置了什麼以及跳過什麼。您可能想像,我們有大量的材料和技術,因此有大量著色器,更重要的是著色器排列 - 並非所有這些都在遊戲中使用。將每個著色器置換量放在PSODB中會導致我們想要避免的第一個啟動上的長著色預兼容步驟。
相反,我們正在做兩件事:對於由程序員創建的那些著色器,我們可以找出有用的確切排列,因此我們以某種手動方式將它們添加到PSODB中。但是,對於那些用著色器圖製作的著色器來說,不可能這樣做。為此,我們使用統計數據,每當有人玩遊戲的開發版本時,我們都會收集這些統計信息,然後在我們的構建農場上過夜的特殊過程收集這些統計數據,完善它們並更新PSODB。因此,遊戲在QC過程中自我糾正。
首次運行遊戲後,在每個驅動程序更新之後,我們在PSODB中構建了PSO描述,並且在遊戲啟動序列中初始化圖形硬件後,我們就進行了此編譯。該系統是在AC Valhalla引入的,我們相信我們是該行業中第一個這樣做的人。