數毛社《最後一戰:無限》技術分析:為何演示表現不佳?

發佈日期

在Xbox遊戲陣容展播活動結束後,“數毛社”Digital Foudary製作了一段視訊,對展會上公開的《最後一戰:無限》實機內容進行了詳盡的技術分析。B站UP主@未來遊戲研究所製作了中文字幕,一起來聽聽“數毛社”對於《最後一戰:無限》實機畫面做出的技術解讀。

B站視訊原址:點選檢視

(轉載已獲視訊製作者授權)

文字版:

各位是不是覺得XSX展會上的《最後一戰:無限》畫面看起來很索然無味,是不是覺得畫面很平,不像次世代的遊戲?那麼這期視訊就是專門為你準備的,我會盡力的向你解釋為什麼這個預告片會這樣,這一切都有一個很簡單的原因,而那就是光照。

我所說的光照是什麼呢,這一演示中太陽掛在地平線上,場景中有許多交錯的樹木,2D版下就是這個樣子。

遊民星空

遊民星空

你可以看到演示片段主要是在陰影下進行的,而不是太陽的直接光照下,要麼是你人在山谷裡,要麼就是太陽被別的什麼東西遮住了。

由於技術上的決策,對於電子遊戲的畫面來說這是一個很大的問題,而《最後一戰:無限》就有這個問題,許多其他遊戲也是如此,幾乎所有的遊戲在陰影下的畫面表現都不怎麼樣。

遊民星空

《最後一戰:無限》使用的是實時光照與實時陰影,你能夠在這一預告片中看到時間的些許流動,這也許是為了遊戲性或是受制作設計影響,但既然決定了使用實時光照與陰影自然也有它們所帶來的問題。

第一點就是實時直接光照與陰影相比靜態光照陰影效能開銷更昂貴,因此像是《最後生還者:第二章》這樣的遊戲就在光照方面上省下了不少效能,而其主要是靜態的,靜態光照有著像是能夠輕鬆表現出一個場景中反射光這樣的優勢,因此在陰影下這些靜態的方面往往看起來都很不錯,因為反射光已經烘培到那一物件的表面上了。

遊民星空

不過當然靜態光照也是有缺點的,其需要大量的開發迭代時間,而美術師對場景的任何一個小改動都需要重新計算光照,靜態光照的本質也意味著會有一些真實性與一致性上的問題,所有靜態光照的遊戲都有這個問題,但你可能只是下意識的忽略了這一點。

遊民星空

無論如何《最後一戰:無限》中的動態光照與陰影效能開銷都更大,但有著能夠同時照明靜態與動態物件的優點,雖然畫面上沒有什麼長處但也沒什麼短板。與此同時,像是《最後一戰:無限》中傳統的非光線追蹤動態光照與陰影,無法在陰影區域中真實的反射光線,因此在陰影下並沒有很好的間接陰影,也就看不到陰影中的反射光細節,遊戲中所有的光照都為動態而不是覆蓋在整個場景上的靜態紋理意味著在陰影區域中的光照並不準確。

遊民星空

這也是一種權衡,不過實時光照既然不需要重新計算靜態光照迭代時間是很快的,並且能夠隨著你的遊玩過程讓時間流動,或是在光源能夠更輕易的變化。

如我所說,《最後一戰:無限》在陰影下的畫面是有問題的,像是在沒有任何太陽光或是其他光源的場景中,以現有的技術來看,有幾種方式來模擬這些區域中的光照,而第一個我要提到的《最後一戰:無限》已經在用了,它是使用了是使用了一種叫影像探針系統的技術,再借由螢幕空間環境光遮蔽改良,也許還用到了像是螢幕空間反射這樣的螢幕空間技術,這些結合在一起的技術被用來模擬陰影區域下的反射光與陰影這樣的光照,在演示中退出介面後的幾幀載入畫面中可以看到這一效果的使用前後區別。

遊民星空

不過因為這種探針間接光照是將那一光照如紋理般覆蓋在模型上,所以並不能很好的表現出光照的方向,就好像四面八方都有光在照,其次它所捕獲的光照通常是把自己排在外的,因此一個模型的角落縫隙和其他部分本不應受到光照影響,然而卻還是亮的,這就導致模型邊緣或是模型整體發光,而許多遊戲都有這個問題,不只是《最後一戰:無限》,哪怕是本世代畫面頂尖的遊戲也會有這個問題,像是此處的《死亡擱淺》,山姆模型的大部分都在陰影下,然而他卻在詭異的發白光。

遊民星空

這就是在模型上用探針間接光照的效果,雖然有助於模擬出間接光照,但同時也有著自己的缺點。

遊民星空

第一個用上這項技術的是2012年由育碧製作的《孤島驚魂3》,也有著我剛才所提到的這些問題,也就是說這個技術已經比較老了,在這些沒有直接光照的場景中很能體現出這一點,像是沒有太陽光或是火把的地方。

遊民星空

看看此處演示開頭的步槍,看到在陰影下這支突擊步槍的光照有多平了嗎?就好像這支突擊步槍身上一點細節都沒有似的。

遊民星空

或是此處野怪身上的光照,注意到他們的腳和身體即便是在陰影下方卻仍然在發光了嗎?這光到底是從哪來的呢。

遊民星空

像是這裡當士官長走向疣豬號時,在陰影下的整個疣豬號內飾都由探針照亮,並且這一亮光僅受螢幕空間技術遮擋,因此疣豬號的整個內飾都有發光的邊緣。

遊民星空

說真的我認為這些材質紋理與模型的質量其實都是很高的,只不過這一演示中的光照以及大部分遊玩都是在陰影區域下進行的,使得這些人物模型材質與紋理的實際細節無法很好的體現出來。動態光照是一把雙刃劍,再加上基於物理的渲染這一原則使得其更加危險。

遊民星空

以往開發者都會選擇直接將大部分的光照烘培到紋理上,但也並不是像《最後生還者:第二章》中那樣的靜態光照,不過概念上是相同的。在以前模型紋理主要是由其漫反射紋理與鏡面紋理來決定的,並且漫反射紋理非常的重要,其掌管著一個物件上所有的大致光照,因此一大堆東西都是畫在漫反射紋理上的,陰影,磨損,標記甚至是假反射都畫在上面。

遊民星空

遊民星空

如果再去看看像是《光環:致遠星》這樣的遊戲中突擊步槍上的紋理,你能夠看到無論所處場景中的光照如何,這把槍模上的小細節都很精良,但在物理上並不準確,並且不能很好的與場景光照互動。但細節也確實很足,基於物理的渲染或者說現代遊戲中紋理與材質的做法完全改變了這一點,如今漫反射紋理或是更常見的叫法,Albedo只帶有一點顏色資訊,然後就沒了,相反的是當今賦予一個模型或是紋理光照的是法線貼圖光澤貼圖與金屬貼圖,其決定了一個模型會如何受到實時光照影響,因此一個模型或紋理的細節都只有在動態光照或陰影下才能夠體現出來。

遊民星空

那麼問題就很明顯了,像是《最後一戰:無限》這樣有著動態光照的遊戲,陰影下的物件與紋理都會損失很多細節,高細節的模型與紋理看起來既沒有立體感也沒有細節,因為它們僅由陰影區域中光與影的基本模擬照明。

遊民星空

遊民星空

這裡就是一個很好的例子,與士官長對決的精英怪從沒有投影光源的室內走到室外與室內之間的區域,這一區域沒有受到直接照明,完全處於陰影之下,隨著精英怪走進陰影時暫停這個畫面你就能看出我所提到的問題了,整個精英怪的模型和紋理看起來都很平,因為本次演示對於光照的做法,基於物理的渲染紋理與材質細節都無法很好的表現出來,演示中的許多物件都有這一現象。

遊民星空

遊民星空

那要怎麼解決這個問題呢,靜態光照這一方案可能並不符合《最後一戰:無限》的設計理念,也並無法解決像是人物模型,植被等動態物件上光照的問題,《光環》可是一個非常動態的世界,唯一的解決方案我認為應該會是次世代光照技術,無論是XSX宣佈所支援的硬體光線追蹤,或是某種軟體追蹤,像是虛幻引擎5中的Lumen技術,或是CE引擎中基於體素的全域性照明,SVOGI。

遊民星空

在我看來這些技術雖然效能開銷大,但卻物有所值,那麼就用《地鐵:離去》來舉例證明有多麼值,在這場景中人物模型這樣的動態物件,以及人物模型周邊的場景都主要在太陽陰影下,因此《地鐵:離去》中的人物模型與場景僅由探針光照方案照明,以及螢幕空間環境光遮蔽還有螢幕空間反射,有沒有注意到人物模型與周邊的場景都有著與《最後一戰:無限》一樣的問題,成千上萬的其他遊戲也是這樣,場景中人物與所有金屬物件都有著漏光和發光現象,面部,裝甲以及衣服上的光照都非常的平,即便已經使用了螢幕空間反射與螢幕空間環境光遮蔽,這些不同的材質看上去卻都長的差不多。

遊民星空

但《地鐵:離去》同樣還支援光線追蹤全域性光照,一旦開啟此特效,場景中人物模型與所有材質的觀感都有了大幅度的變化,陰影下不再沒有光照,這些PBR紋理也終於能夠很好的體現出來了,光線有了方向,因此這些材質上也有光照方向了,完全將這一場景與模型從平平淡淡,缺少細節變得栩栩如生,精細入微。

遊民星空

遊民星空

在看《最後一戰:無限》演示時覺得畫面不行的你也許就是想要這個效果,有一說一我也想,使用某種形式的光追有助於改善陰影下的間接光照,《最後一戰:無限》也會因此變成一款畫面相比本次演示完全不同的遊戲,但要使用這些光照技術必然需要做出些妥協,比如X1和X1X版本肯定無法使用這項技術,但我們買來XSX就是為了和以往完全不同的次世代畫面,所以就算那些較老的平臺用不上最新最好的技術又能怎樣呢,XSX的硬體加速光線追蹤不是擺著當擺設的,用在這上面會是一個很好的選擇。

在XSX上使用某種追蹤技術必然會使得解析度降低,對我而言這並不是多大一回事,只要能跑到60幀並且把GPU吃滿那高解析度就完全沒必要,在影像重建與動態解析度的這樣一個時代下這一點尤其如此,你真的寧願要4K下的過時光照技術,也不要2K的次世代光照嗎?

更多相關資訊請關注:最後一戰:無限專區

相關攻略文章

最新攻略