各位中午好!上期《獸獵週記》發佈後大家對初版原畫的想法後(強烈述求)我們都看到了,都好說好說~~
遊戲的優化問題一直備受玩家關注,我們收到了大量來自玩家的後臺私信與評論 ,大家的積極反饋我們都已收到。
本期《獸獵週記》將為大家帶來了技術分享,在提升遊戲畫面表現與優化性能這兩個關鍵方面,我們進行了哪些探索和嘗試。
因為團隊人手有限,為了提升效果和簡化開發流程,我們選擇使用Unreal Engine 5(虛幻引擎5,以下簡稱UE5)裡的Nanite、Lumen 和 VSM等新技術實現全動態光照。
(PS:Nanite 可使遊戲模型極度精細,讓玩家有身臨其境之感;Lumen 如同專業燈光師,自動營造逼真自然的光照效果;VSM 則助力光影信息快速定位,保障畫面光影流暢穩定。)
但這些新技術對設備也提出了更高要求,它們需要承擔因新技術基礎消耗所帶來的性能壓力,為了在提升遊戲畫面的同時儘量減少性能壓力,我們做了各種各樣的優化,其中一個突破方向就是“如何在大型開放世界中優化資源加載和渲染?"。通過這一問題的解決,我們取得了階段的成績,在RTX 3070Ti測試機上配置默認畫質,幀數提升7.2%。
當然,這一過程並不容易
起初,我們直接使用UE5中的World Partition功能(自動處理開放世界的分區和管理)和適配World Partition的HLOD技術(Hierarchical Level of Detail, 層次化的細節級別技術),希望能夠實現自動生成不同細節的版本模型。比如,遠處的山看起來就不用那麼精細,用簡單一點的模型就行;但是玩家身邊的東西(武器、障礙物)就表現得很精細。
這也是一種常見的優化方法,能夠減少不必要的高細節模型的渲染,減少顯存佔用和GPU負擔。
▼ World Partition分區管理
▼ 遠處切換為HLOD效果
▼ 近處切換為精細模型效果
但World Partition的Grid動態加載會導致明顯的幀數波動,考慮到《獸獵突襲》場景規模和提升遊戲運行時的流暢程度,
我們將Grid的加載範圍設置的很大,這樣一來卻導致引擎默認的不同細節的資源加載和渲染(HLOD技術)無法工作,因此,我們需要自定義HLOD方案。
自定義HLOD方案的實現
打開世界分區和加載功能(World Partition)後,多層次細節模型(HLOD)是由引擎默認生成的,我們首先通過修改引擎源碼來恢復了傳統HLOD的編輯入口,增加了相應的設置命令來更好管理多層次模型。
初步遇到一些問題
1. 部分模型合併後的視覺效果並不好
模型合併後會變得比較模糊,因此需要按照一定的規則,針對不同模型採用不同的合併設置。我們修改引擎HLOD層的實現,可以針對各個組做不同的設置,以同時兼顧效果和性能。
原始模型→錯誤效果→優化後效果
2. 聯機模式和單機模式的性能差異問題
自定義HLOD方案進入版本後,單機模式在測試場景獲得了比較好的性能提升,但是在聯機模式下卻出現了性能差異,即使去掉所有動態組件後,也無法獲得與單機模式相同的效果。
這可能是因為場景中存在大量的變形材質引起性能消耗大。
經過分析調試,我們發現是部分細節層次的加載順序有問題,以及發現常用於地形、道路、植被特定效果的材質也會影響性能優化,定位到這些問題後我們便採取了針對性措施。
解決以上種種問題後,最終我們通過自定義HLOD方案在大型世界中優化了資源加載和渲染,在RTX 3070Ti測試機上配置默認畫質,得到幀數提升7.2%
以上就是本期的《獸獵週記》全部內容,感謝閱讀,下週四再會!
喜歡我們遊戲的話,不要忘記點點關注~