[gdc23]《戰(zhàn)神:諸神黃昏》中的積雪系統(tǒng)


overview
gdc23上santa monica帶來基于tesselation的displacement map的可交互積雪系統(tǒng),這是一個(gè)對(duì)于前作(戰(zhàn)神4)的screen space parallax mapping的升級(jí),而且是一個(gè)由自身render programmer在一個(gè)項(xiàng)目周期內(nèi),完成的:
豐富&頂尖質(zhì)量的
性能友好的
不需要美術(shù)很多設(shè)置(基本就是全局參數(shù))
系統(tǒng);
talk本身基本完整介紹了整個(gè)研發(fā)的提出,prototype,polish,shipping的整個(gè)過程,對(duì)于產(chǎn)品團(tuán)隊(duì)可以說是含金量很高;
本文主要筆記一些重點(diǎn);
screen space parallax的問題

gow4的積雪系統(tǒng)這樣,應(yīng)該說正常質(zhì)量已經(jīng)不錯(cuò)了;
主要做法就是有一個(gè)積雪痕跡的render target記錄,然后進(jìn)行screen space 的raymarching,進(jìn)而做parallax mapping;
在當(dāng)時(shí)質(zhì)量沒問題,也是同期很多游戲的選擇(the last of us 2…);
這里主要談及一些缺點(diǎn):
screen space raymarching,性能其實(shí)也不可控,在激烈戰(zhàn)斗的情況下,幾乎全屏做raymarching這個(gè)消耗是比較嚴(yán)重的;

parallax mapping本身就是一個(gè)很有局限性的技術(shù),沒法做出距離camera很近的有深度的雪,上圖中齊腰深的雪
局限于terrain,這個(gè)對(duì)于美術(shù)的發(fā)揮限制很大;
displacement & tessellation
技術(shù)本身列出要點(diǎn)也比較直接:
top down記錄場(chǎng)景本身的深度
top down記錄交互的深度
渲染一個(gè)heightmap的mesh,在有交互深度的附近進(jìn)行tesselation(可以最小化triangle量)
使用gpu driven的思路,對(duì)heightmap mesh做meshlet切分,進(jìn)而各種充分culling
還能procedual撒上一些小雪塊增加細(xì)節(jié)
陰影系列的優(yōu)化技術(shù)都用上(scroll等)
最后達(dá)成效果效率都很好的結(jié)果;
研發(fā)過程

看過全文的話,剛工作的同學(xué)可能會(huì)覺得技術(shù)本身是關(guān)鍵,工作多年的同學(xué)應(yīng)該會(huì)覺得talk中的研發(fā)過程才是精華;
所以作者在開始的時(shí)候就指出,不要太關(guān)心技術(shù)細(xì)節(jié)(其實(shí)占比較低),要關(guān)注選擇背后的原因;
整體看下來,應(yīng)該說這套積雪系統(tǒng)是一個(gè)系統(tǒng)級(jí)別的系統(tǒng),涉及面是比較大的,這種系統(tǒng)從開發(fā)量以及影響面比較大,那么就是非常依賴周圍的系統(tǒng)&團(tuán)隊(duì),以及和團(tuán)隊(duì)的交流。
美術(shù)會(huì)議
ragnorak開始的時(shí)候,一個(gè)art team和render team開了個(gè)會(huì),里面artist每個(gè)都是10+年的經(jīng)歷的老法師,明確提出gow4的雪的系統(tǒng)的問題,然后列出新系統(tǒng)的需求:
雪需要是到處都是10x于gow
需要自動(dòng)的鋪設(shè)的工作量,不能是美術(shù)一點(diǎn)點(diǎn)弄
需要在任何mesh上(而不是局限于terrain)
需要是實(shí)際的geometry而不是parallax mapping了
效率要好
要能夠ps4上跑得起來,并且能scale up到ps5上面
然后美術(shù)給出的需求的說明是這樣的:

(有maya的prototype,各種說明。。。有點(diǎn)專業(yè)呀?。。。?br>
開發(fā)過程
其實(shí)是非常面向產(chǎn)品的,就是圍繞產(chǎn)品來組織技術(shù),而不是一個(gè)tech oriented;
第一個(gè)版本的prorotype,只有g(shù)eometry的tesselation
然后盡快進(jìn)版本,review,迭代。
增加細(xì)節(jié),normal等等;
并且同組的同事也在處理hardware tesselation,這樣幫助也很大;
然后新的render lead過來之后,也增加了作為particle collision的depth,

procedual放置的小mesh;
可以看到是各種各樣的小mesh的組合,最后出來的產(chǎn)品結(jié)果;
sum
總結(jié)下來是一個(gè)很好的開發(fā)案例,通過團(tuán)隊(duì)的素養(yǎng)和配合,最后達(dá)成了一個(gè)很好的產(chǎn)品品質(zhì)的結(jié)果。
csdn 原本連接:https://blog.csdn.net/toughbro/article/details/132384450