熱門
SE使用虛幻引擎為次世代平臺優化《最終幻想VII:重制版INTERGRADE》
《最終幻想VII:重制版》自去年發布起,便屢獲殊榮,包括一舉拿下The Game Awards 2020最佳RPG獎。最近,Square Enix發布了《最終幻想VII:重制版INTERGRADE》,通過充分利用PS5的次世代硬件性能,交付了更高級別的視覺效果和畫面質量。該游戲現提供以4K分辨率運行的圖形模式,以及每秒60幀的性能模式,這兩種模式都提供了超越本作最初發行版本的視覺保真度。經過這些優化之后,Digital Foundry稱其為“我們希望看到的FF7重制版”。
為了了解Square Enix如何充分利用索尼的次世代主機,我們采訪了Square Enix的聯合導演濱口直樹、首席渲染程序員池田修一和首席技術程序員波能智人。他們三人談論了如何顯著提升紋理質量,縮短加載時間,改善光照和陰影,同時保持性能平穩一致。
Digital Foundry稱《最終幻想VII:重制版INTERGRADE》為“迄今為止最令人滿意的PS5升級版本”。從技術角度來說,在更新次世代版本的過程中,你們制定了哪些主要目標?
聯合導演濱口直樹:我最大的目標是在制作《最終幻想VII:重制版》的下一章節之前,親自摸清次世代硬件的性能。我了解到了一些東西,例如使用3K和4K渲染分辨率時,可承受的負載大小,或者在允許玩家無壓力游玩的同時,被加載資產的最高質量臨界點在哪里,畢竟采用高速SSD之后,I/O瓶頸已不復存在。對忙于開發我們下一款作品的開發者來說,這些都是非常寶貴的經驗。
《最終幻想VII:重制版INTERGRADE》在PS5上的加載速度顯著提高了。為了在PS5的NVMe SSD上提升加載速度,是否對游戲進行了大量優化?
首席技術程序員波能智人:PS5搭載SSD后,I/O速度已不再是瓶頸。相反,時間分片和CPU負載成了拖緩加載速度的原因。
因此,我們通過一系列手段改善了負載流程,例如采用獨特的序列化方式,當在特別容易出現瓶頸的區域執行反序列化時,可減輕負載。通過這些努力,我們將12秒左右的加載時間降低到了6秒。
在探索更深層的改善方案時,我們意識到,加載器非常低效。因此,我們采用了虛幻引擎4.25中引入的無版本屬性序列化和IOStore。這部作品是基于UE 4.18開發的,所以需要進行一些更改。但在實施更改后,我們就能將加載時間縮短到2秒左右,考慮到將帶來的改善,我認為這種投入是非常值得的。
不僅加載屏幕被最小化了,紋理的加載速度也更快了,這在游戲的第7區貧民窟區域尤其明顯。能否談談你們如何使用虛幻引擎改善這些流送問題?
波能:在PS4版本中,由于內存和磁盤容量的限制,我們不得不放棄使用更高質量的格式和高分辨率紋理。然而,對于《最終幻想VII:重制版INTERGRADE》,仍沒有足夠的磁盤容量可容納高質量格式和高分辨率紋理。
因此,我們采用了Oodle Texture壓縮技術,并結合使用Oodle Kraken,如此一來,即使是更高分辨率的紋理,我們也能在PS5版本上為其實現較小的文件尺寸。
另外,比PS4上更高的內存容量,以及對不可流送MIP貼圖的改進(與上述問題的回答相關),也有助于紋理的加載。
我們也能夠使用更高分辨率的光照貼圖,這改善了光照的準確性。
游戲中多個地方的天空盒看起來明顯更清晰、更逼真了。Square Enix是否通過PS5的額外處理能力,創作并使用了更加清晰的資產?
首席渲染程序員池田修一:《最終幻想VII:重制版INTERGRADE》的圖形模式提供4K支持后,我們注意到,如果保留現有的天空盒,在分辨率上將產生顯著的體驗差異。因此,我們在一些位置升級了天空盒紋理,主要用于白天環境。此外,我們更新了渲染資產中的細節,以匹配這些更改。
《最終幻想VII:重制版INTERGRADE》改進了泛光光照,更出色地照亮了之前的昏暗區域。因此在游戲中,Wall Market區域布滿霓虹燈的街道看起來格外耀眼。能否談談你們如何使用虛幻引擎改善《最終幻想VII:重制版INTERGRADE》中的光照?
池田:在開始著手制作《最終幻想VII:重制版INTERGRADE》時,我們重新評估了城鎮中放置的所有光源,并最終決定增加放置數量。我們也提高了環境貼圖的分辨率,它將充當表面,用于反射霓虹光源。我們還重新討論了如何處理靜態光源的顏色加深,同時通過光源探頭修正了亮度校準值。
放置在各個角落和縫隙中的霧信息會對所有光源產生反應,我認為這有助于構成Wall Market的喧囂氛圍。泛光是體積霧加上一些后期處理混合而成的,但通過更新清理和核心程序的處理方式,可以看到即使是最小塊的灰燼也能引起反應。
除了光照得到改善外,Digital Foundry還指出,《最終幻想VII:重制版INTERGRADE》中添加了新的光源點。能否詳細說說添加它們的原因?
池田:因為我們在利用資源時有了更大的回旋余地,這確實使我們能夠在各種位置添加更多光源資產。這樣做的目的是為了給一些平坦的區域增加更多信息,這有助于突顯米德加的喧囂。
《最終幻想VII:重制版INTERGRADE》具有升級的屏幕空間反射(SSR),在水體反射上尤其明顯。能否談談在應用這一增強特性時,你們做了哪些工作?
池田:我們在《最終幻想VII:重制版INTERGRADE》中使用的SSR不僅會追蹤光澤表面的光線,也不會遺漏通常被忽略的粗糙表面。如此一來,將在幾何體范圍內產生更精確的遮蔽,這樣,你將看到落地燈的光線從某個表面反射出來,或者克勞德的劍鍔映照出劍柄。
有時會在眼睛和鼻子上看到環境光造成的疊影,這不太美觀,但大大減少了。通常,通過法線映射得到的映射矢量會指向在許多情況下肉眼不可見的方向。當在SSR中使用這些矢量時,反射方向會指向表面的內部,因此始終會傳回一個追蹤錯誤。這時候,多邊形表面的映射矢量也會存儲在緩沖區內,為了解決這個問題,我們修正了創建反射時產生的錯誤像素。
通常,SSR會參考前一幀的圖像,所以每當發生攝像機切換之類的事情時,你可以看到正在處理的反射中會出現延遲。在這部作品中,每當此類事情發生時,我們都會優先渲染不完整的當前幀,這將創建替代性的參考幀,從而解決所有跳幀問題。此外,在典型的實現用例中,被引用的前一幀可能已經渲染了霧,這將導致在SSR中引用時,霧會被處理兩次。
當開發圖像時,我們會感覺體積霧非常濃重,當反射了遠處地形的水面上出現這類錯誤時,其嚴重程度會加劇。因此,我們存儲了兩種圖像——帶霧圖像和不帶霧圖像,當根據反射光線所到達的距離重新構建霧密度時,霧密度可更適合環境,從而實現更自然的反射。
《最終幻想VII:重制版INTERGRADE》中的高質量陰影有著更清晰的輪廓,這使得它們看起來更真實。在大門等元素投射的陰影中,這一點尤其明顯。能否談談你們做了哪些工作,來提升游戲陰影的保真度?
池田:我們重新討論了如何分配陰影的處理緩沖區。由于對內存分配做了更改,整體保真度增加了,這反映在了幾何體的細節上,曾經會丟失的細節,現在都得以保留。此外,我們糾正了采樣流程中的抖動和偏差,減少了發生變形的情況。
我們一直在使用SSAO制作微陰影,但是我們重寫了它的一部分,包括去噪組件,如此一來,我們就能得到更清晰的細節。
《最終幻想VII:重制版INTERGRADE》使用了體積霧,可以在愛麗絲屋外花園等地方改變環境氛圍。能否詳細說說為什么這種做法非常適合用于更新次世代游戲版本,你們又是如何通過虛幻引擎實現的?
池田:我們已經使用了體積霧,但它們作為資產時的設置,如位置和密度,并不是最佳的。因此,我們選擇移除所有任意參數,并嘗試堅持使用PBR(基于物理的渲染),這樣我們就能確保米德加的氛圍更加一致。
霧密度之類的東西仿佛被美術師用筆刷畫入了場景空間。我們將其作為探測數據鋪入空間,然后在運行時注入攝像機視域內的計算體素中。這也考慮到了熱霾,如果玩家仔細觀察,可能會注意到光束的輕微波動。
照耀在霧上的光源不僅包括精確光源,還包括遍布在空間中的多個光源探頭。散射的計算模型符合米氏散射的要求,而且前光也毫無遺漏地顯示出來了。這種霧也可以從效果中注入——在尼祿的攻擊中就可以看到一個很好的例子。
啟用所有這些視效增強后,《最終幻想VII:重制版INTERGRADE》在4K分辨率的圖形模式中出色地保持了每秒30幀的穩定速率,而在分辨率較低性能模式中,保持了每秒60幀的速率。能否談談你們做了哪些游戲優化工作,來實現這些性能目標?
波能:得益于在PS4版本中建立的工作流程,我們可以改善處理過程中的負載。首先,我們檢查了必須修改的地方,并確定了處理負載的規則。在此基礎上,QA團隊會檢查不符合這些規則的區域,并通過錯誤報告向我們報告。隨后,優化程序員會收到這份報告。負責處理這項工作的每個人也將收到分析結果、問題和解決方案。我們會重復這一過程,直到所有項目都在規定的范圍內。通過這些努力,我們能夠從玩家的角度理解許多問題,并獲得穩定的幀率。
對于希望將游戲移植到次世代主機的開發者,你們有什么建議嗎?
濱口:在開發《最終幻想VII:重制版INTERGRADE》的過程中,我不不禁感到虛幻引擎是多么的萬能,因為PS4版的《最終幻想VII:重制版》是在UE 4.18上開發的,當時自然不支持PS5等未來平臺。然而,我們所需要做的只是融合部分內容,或者在我們這邊基于最新版本的UE4實現一些獨特的項目,即使是從一個稍舊的UE版本開始,也有足夠的靈活性進行擴展。當然,在更多情況下,將需要修改虛幻引擎的原生代碼,所以工程師的必備技能仍然是不可或缺的,但我希望今天的文章可作為參考,幫助那些希望將游戲移植到次世代主機的人們。
本文轉自虛幻引擎官網~
電話:010-50951355 傳真:010-50951352 郵箱:sales@www.gentlemenlisten.com ;點擊查看區域負責人電話
手機:13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145