GDC 2019《戰神4》開發解讀:全域性光照

遊資網發表於2019-07-24
GDC 2019《戰神4》開發解讀:全域性光照

(騰訊北極光工作室長期招聘中......)


戰神4作為18年的GameOfYear,可以說各種牛逼。

Sony Santa Monica能夠將遊戲行業裡的旗艦遊戲繼續推進,並且在品質,設計上都有創新,實屬不易。

過程中也是比較曲折,難怪主創看到專案最後成功忍不住淚奔。

這裡是全域性光照技術的呈現,簡單說間接光照在GIVolume+NormalizeEnvMap上終於比較成熟了(《戰神4》《蜘蛛俠》都類似做法了),比lightmap有比較明顯的優勢了,實際應用中完全取代Lightmap比較ok了。

這裡是簡要的mindmap,內容不多,但是含金量不錯的,對於我們接下來要提升的全域性光照方面也頗有啟發。

然後這裡必須要來一個讓我下巴掉地上的東東:戰神地圖編輯器是在maya裡的,木有自己的專屬編輯器。。。

GDC 2019《戰神4》開發解讀:全域性光照

GIVolume優劣

這個是作為indirect diffuse lighting的解決方案,之前是用的lightmap,相比lightmap,GIVolume有這些好處:

GIVolume作為一個3D光照資訊,本身確實比2D的lightmap方方面面光照能力強很多,包括

•可以讓靜態物件,動態物件光照資訊更統一(lightmap只能作用在static obj上,動態物件要別的方式來弄,常常不一致)

•可以給volume fog,particle這種來打間接光照

•可以增強IBL(image based lighting,或者我們常說的EnvMap),給IBL進一步的空間資訊,提升光照屬性

pipeline優勢:

•和geometry解耦,lightmap是重要和mesh uv搞飛機真心煩

所以GIVolume最後成為《戰神4》的選擇,其實也是《蜘蛛俠》和<horizon zero dawn>(感謝

燜茄子

提供資訊)的選擇,不知道是不是內部大家溝通的結果,都是sony內部的studio。。。

安柏霖:[GDC19]《蜘蛛俠》開發解讀(3/4)--Runtime篇zhuanlan.zhihu.com

GIVolume的技術細節

這個就比較直接了:

•1m一個voxel的精度來存

•美術放置box,box內部就會cook GI

•會有漏光的情況,通過normal方向偏移搞定

•GI裡面存2band的SphericalHarmonic係數,和天空的visibility

AO和ambient shadow

戰神是用了,ssao+ambient shadow+ao map來達到較好的陰影裡的“陰影”效果。

GDC 2019《戰神4》開發解讀:全域性光照
(沒有任何ao或者ambient shadow資訊)

GDC 2019《戰神4》開發解讀:全域性光照

ssao+ao map(藍色框裡面的)+ambient shadow(紅色框裡的)

ambient shadow是來自last of us裡的。

這裡有記錄:

https://blog.csdn.net/toughbro/article/details/43876137blog.csdn.net

取樣角色的capsule即可,不贅述。

IndirectSpecularLighting

捕獲IBL就不贅述。

這裡和CallOfDuty裡做法一樣,要做一個normalize(作者很委屈的表示這個是他寄幾想出來的)。

call of duty的物理光照內容可以看這裡:

https://blog.csdn.net/toughbro/article/details/16927505blog.csdn.net

在戰神裡是要這樣做:

•把envmap的光照資訊做normalize

•然後用GI的亮度來做最終的indirect specular lighting

這樣的理由可以看下圖的對比:

GDC 2019《戰神4》開發解讀:全域性光照

可以看到,沒有GI資訊的時候,IBL帶來的反射,在左下有嚴重的漏光,這是因為indirect specular lighting缺乏空間資訊,所以就要從GI中拿。

拿的方式就是NormalizeEnvMap*GI亮度這樣去做。

戰神這裡總結的很不錯:GI提供空間細節,cubemap提供角度細節。

騰訊北極光工作室招聘,長期有效:[招聘貼]Call For HardcoreDeveloper

作者:安柏霖
專欄地址:https://zhuanlan.zhihu.com/p/74569737

相關文章