為何《戰地風雲5》光線追蹤不能讓人滿意?這篇訪談告訴你很多
外媒測試的《戰地風雲5》基準性能跟開啟光線追蹤的性能已經有很多,今天要來談談的是大家都很熟悉的Eurogamer。他們之前在測試《戰地風雲V》光線追蹤性能的時候有談到很多細節,比如說性能部分,我們都知道儘管現在能跑光線追蹤的顯卡就三款:RTX 2070、RTX 2080、RTX 2080 Ti,但很明顯他們還有性能優化的太空,這方面Eurogamer在最近的文章中有談到很多,而且還邀請來自EA DICE的工程師Yasin Uluda來談到很多性能優化的問題。
比如說在這次的這篇文章當中,Eurogamer就提到在很多時候,遊戲因為各種錯誤會渲染出遠遠比實際需要的多得多的光線,再加上其他的問題,所以會對性能有較大的負面作用,比如說包圍盒(Bounding Box)錯誤而造成的性能流失,或是因為可破壞地形的渲染,或者是特定位置營造的假的上帝光(God Rays)、特定類型的植被都會造成性能的不必要流失,讓遊戲渲染比實際需要的多得多的光線(Rays)。所以在不同的地圖會有不同的表現,比如說沙地、泥土、雪地、岩石覆蓋較廣的地圖表現會稍高,但是在較為複雜的地圖,比如說我們測試的鹿特丹地圖,性能就會受到稍大的考驗。
這次跟Yasin Uludağ的談話內容首先開場就是比較硬核的問題,看原文都需要稍花些時間才能理解。首先開場的問題是,目前不用的四種光線追蹤選項:低、中、高、特高分別有哪些區別,而答案是這樣的:
Low: 0.9 smoothness cut-off and 15.0 per cent of screen resolution as maximum ray count.
Med: 0.9 smoothness cut-off and 23.3 per cent of screen resolution as maximum ray count.
High: 0.5 smoothness cut-off and 31.6 per cent of screen resolution as maximum ray count.
Ultra: 0.5 smoothness cut-off and 40.0 per cent of screen resolution as maximum ray count.
大家可以看到,四種選項最大的區別是前面的smoothness cut-off,還有後面的ray count。這裡我理解的是這樣。喜歡研究圖形學的讀者們應該知道,圖形渲染跟現實的物理、數學是脫不開關係的,所以遊戲畫面中看到的反射畫面、光線投射的背後都是複雜的積分公式,通過它們來定義物體的表面材質,並以此來定義反射情況,最典型的就是表現光滑程度,之所以我們以前總是會覺得虛幻引擎3會表現比較黃、比較油,就是表面的材質定義有問題。
這裡的前半句描述的smoothness cut-off就是指光滑程度,也就是用系數來描述光滑程度,0.9就是指那些比較光滑的表面,例如玻璃、鋁合金、銀,而如果有0.1的話,就應該是指岩石、水泥、石灰這些表面粗糙、很難反射的物體。而後半句則是描述分辨率與光線的關係,比如說1920*1080,簡略來看就是200萬像素,如果是1:1,或者是100%定義話,就是每像素對應一道光線,則同屏需要200萬以上的光線,而15%則就是采集螢幕分辨率15%的光線,所以簡單來說,特高畫質對應的是最繁多、最複雜的反射情況,而且需要繪製最多的光線,而反過來,低畫質則是對應最簡單、最少量的反射情況,而且需要繪製的光線最少。
但儘管如此,目前《戰地風雲V》還是有使用不少不錯的性能優化技術的,比如說目前使用的Super Tiles,這是一種可以幫助實現重新指令光線的技術,這技術描述起來有點複雜,說簡單點就是利用相似的位置,能夠繪製類似的光線、三角形,對於材質緩存跟指令緩存都很友好,所以應該是一種減輕工作量的技術,尤其是對RT Core這種硬體級的加速核心很友好。另外還有一些優化光照性能(Lighting Performance)的技術,能夠將不同的光照、立方貼圖做成類似方格坐標的架構,所以非陰影光照、陰影光照、箱式立方貼圖(Box Cubemaps,我其實不知道怎麽翻譯),至於這樣有怎樣的效果沒有具體說,但最後就是會處理資訊快一些。此外還有NVIDIA提供的“Variable Rate Ray Tracing”。
關於未來的性能優化安排,看起來EA DICE自身是知道問題所在的,但很多技術看起來都相當複雜。