執着於光影表現【全境封鎖】的開放世界渲染
Snowdrop(雪蓮花)引擎的全局照明技術介紹
補上原文鏈接:http://game.watch.impress.co.jp/docs/news/20160322_749267.html


UBI Massive 工作室的Nikolay Stefannov
3月18日,
UBI Soft的技術主管
Nikolay Stefannov進行了題為【
Global Illumination in 'Tom Clancy's The Division'
】(
全境封鎖的全局照明技術
)的Session。
在家用機和PC游戲的世界,GI已經變得習以為常了。既然GI已經是必須的話,那就要以現今有效的GI光照為前提,並向有一定風格的【畫面制作】的焦點轉移。畫面制作,並不僅僅是美術師在數據繪制上的方法,還有程序上的技術。這里,
Stefannov就是以【全鏡封鎖】畫面制作的技術方面進行了解說。
【游戲世界中光源的移動變化】


【全境封鎖】,是UBI的瑞典工作室
UBI Massive開發的第三人稱射擊游戲,引擎使用的是UBI自研的雪蓮花引擎。【全境封鎖】有着RPG元素,游戲場景變成了開放世界。以紐約曼哈頓的6平方公里為游戲舞台,世界內有有着總計200萬的實體(物體對象)。車輛總數約2萬量,垃圾堆3萬座。
因為要重視開放世界的整體性,光照為了強調美術師的演出意圖,在項目上做了限制,日光無法照明到所有的空間,經常有發暗的地方。
雪蓮花的GI光照,
因為
全部都是動態的,什么時候都可以進行調整。為了提升性能,很多的游戲引擎通常會把光源的影響的預計算結果烘培到光照貼圖里。而本作的雪蓮花引擎,最大的特征就是完全的動態光照。使用的Light Probe,因為管理太復雜,也並不太適應項目的設計。
【本作技術的核心特性】




GI的影響范圍不僅僅是室外。本作中,為了系統可以不區分室內和室外,在室內也會有很大的開口讓真實的光照射入,根據游戲世界里時間的變化,光影的色彩也會改變。室內的家具,雖然不是全部,也作成受到光照的影響。為了可以利用這種空間光照的特性,不能生成光照反射。
氣候的動態變化是通過腳本隨機的變化的,包括太陽和天空的顏色,雲的多少,霧和霞的強度等等。還有程序化實現的降雪系統,使得本作的場景變得更加的突出。
【PRT ON/OFF的比較】

要實時的進行這種動態的光照,通常
會
在沒有光源變化的場景中,使用預先計算出光源影響的
Precomputed Radiance Transfer(PRT)的方法,一般的PRT,Porbe檢測的HDR環境光,只能處理Directional
light這種有方向性的光。
用這種光照方法,無法獲得想要的結果。另外,即便是高頻的也可以使用PRT,不過計算消費太高了。
那么,本作中的蠻力方法,是近似GBuffer CubeMap的方法,預先檢測出所有可見的物體表面保存為列表數據。 Light Probe自定的配置為4米的空間,64米的四方區域(Cell)里最多有1000個這樣的Light Probe,通常是200~300個。區域會對應玩家移動來讀取或銷毀(Streaming),從而可以繪制整個廣闊的開放世界。
【 全局照明技術的方法解說】




每個
區域(Cell)
制作預處理數據大概要5~6秒,通過這個計算結果得到的曼哈頓的光照數據資源大概是1GB的硬盤空間,
區域總數約4000個,Probe約116萬,物體表面5664萬。
使用這些數據,在游戲運行時再每幀進行光照的計算。本作中,不同的Probe Set之間的結果沒有做混合。這是因為需要短距離的GI效果,也算是本作的特征吧。
這種光照的在計算在性能上,每幀會對玩家所在的區域和另外的一個區域進行處理,每次處理800~900個Probe,在
Xbox One上異步0.95ms,
GTX760的PC上是0.47ms,在維持高幀率的同時獲得了非常好的效果。
【游戲內移動變化產生的光照變化】


上面記述的主要是本作的GI方法。本Session中,還介紹了很多游戲中采用的提升圖形品質的方法。每個都是比較熟悉的方法,不依賴通用的游戲引擎,而開發公司自己的引擎,就可以使用最合適的技術來制作來完成自己的畫面制作了。
UBI和EA的各個工作室的情況是,強力的工作室會制作公司自研的引擎,進行改良,並在幾個工作室內共享。這樣才能滿足游戲所需要的技術力,並運用到更多的游戲上,達成更高的銷量吧。
在越來越多采用
第三方的游戲引擎的現今,我想可以有這樣的決斷是相當難得的,不過為了畫面制作的多樣性,還是希望有技術和實力的工作室可以繼續這個方向。