深入瞭解遊戲幀數:並非越高越好,穩定更重要

說到遊戲中的“幀數”,玩家們對幀數普遍最直觀的感受就是,幀數高等於畫面好,動作清晰流暢無模糊殘影;而幀數過低或跳幀(號稱60幀的遊戲,有時會因爲技術問題而頻繁在30幀與60幀間切換)不僅會導致遊戲畫面變差,甚至讓一些玩者產生頭暈噁心等強烈不適感。在高清主機上,幀數可謂是決定畫面優劣與遊戲體驗關鍵,因此一直是玩家們格外關心話題

不過,你是否真正瞭解遊戲以高幀運行的好處在哪裡?知名遊戲網站IGN就這個問題採訪了《Volume》的製作成員MikeBithell,讓大家更深入瞭解幀數及其重要性,並且爲何遊戲會以30幀或者60幀運行,而不是在這個範圍內的其他數字,比如折中的45幀?

Bithell的解釋是,幀數和顯示器刷新率相關,通常都是30Hz或者60Hz。“這是一個歷史性的的問題。因爲顯示器的刷新率標準在很久以前就被確定了,並以雙倍數計算。所以你可以理解爲何內存等數字是2,4,8,16,32,64,128,256,512這樣的數字增長,他們就是以倍數增長的。幀數也是差不多的概念基本上就等同於屏幕的刷新率。”

理論上來講,一個遊戲的確可以以45幀運行,不過當你設計一個遊戲時你不會想要從30幀跳到45幀,因爲那樣你需要渲染1.5倍的幀數,而直接雙倍幀數顯然效率更高。

“實際上,現今很多遊戲引擎都和幀數都是獨立運行的——這表示在很多情況代碼都是以每一幀來運行的,或者說在物理間隔中運行,又或者在獨立於幀數之外的物理間隔內運行。不過現在有極少部分遊戲是以每幀來計算和移動的,所以不管你玩COD是以12幀或者60幀運行,遊戲都需要運用插值運算:上一幀需要一定的時間去渲染並且我需要這個循環以讓這個過程進一步發展。這並不是說如果幀數糟糕你的遊戲就運行變慢了。”

舉例:一個賽車遊戲以原生30幀運行,不過開發者運用一個mod操作,讓其以60幀運行。那麼問題在於,這並不是以獨立幀運行的,意味着60幀下,賽車的速度達到了雙倍。

而最大的問題在於當遊戲出現掉幀時。人眼可以在訓練的情況下用某些特定的方式看到一些特殊的東西,所以當遊戲在30幀和60幀浮動時,問題就會顯得特別突出。開發商鎖定30幀的很大原因就是因爲這個幀數浮動——在這種情況下游戲以穩定30幀運行要比遊戲可以達到60幀但是卻不穩定來的要好。

“很多時候你感覺遊戲掉幀都是當你在60幀運行時,突然掉幀(比方說大約40幀),因爲你的眼睛已經開始習慣60幀時這一表象突然消失了。如果遊戲是以30幀穩定運行的話,事實上看上去要比不穩定的60幀來的過渡平滑。這也是爲什麼很多遊戲都鎖定幀數,即使是在PC上。所以開發商們經常說:我們不希望讓玩家們只是單純的玩到高速遊戲,因爲我們希望遊戲保持穩定性和幀數,而不是偶爾達到最高速度。”

那麼最大的問題是,這是否真的重要?不可否認,一個遊戲如果以60幀運行的確會看上去過渡更平滑(如果一切都正常運行)——但這並不是必然。如果某個遊戲在複雜的環境下有很多即時演算,有時候可能30幀每秒更加實惠,因爲如果追求更高的幀數可能會對硬件開發能力造成負擔。

“幀數有時候帶有欺騙性。幀數事實上比720p/1080p分辨率花費更多精力,因爲60幀比30幀的渲染效率提高兩倍,其工作量要比提升像素大很多很多。關鍵問題在於你還必須將其保持的非常平穩。比如說,如果你想要製作一個歷史類的遊戲運用到法國開放性世界,基本上你很難將幀數從30提高到60幀,因爲你需要對其進行相當程度的優化。”

另一方面,從720P到1080P雖然也很困難,但是隻要在適當的程序設計師幫助下,還是可以達到的。但是如果將一個遊戲重新設計以達到60幀呢?Bithell表示那就遠遠不夠。“花費大量的時間在加上一些頂尖圖像設計師,也許可以做到。不過60幀意味着你要多畫多於一倍的像素。另外也有一些方面也許玩家甚至都不會考慮到的;比如很多動畫引擎需要鎖定到每一幀。”

電影則和遊戲不同,基本以24幀每秒運行。而電影爲什麼可以看起來很平滑過渡主要是因爲動態模糊,在這一點上游戲開發商則需要引擎配合。就算有有效辦法來解決幀數不穩定的問題,正如Bithell所說,硬件所需要的內存負擔也會相對比較高。

“動態模糊開發成本非常昂貴;你必須要儲存很多圖像數據,因爲你需要渲染像素,然後保存,然後將它們設置到屏幕上,還要取決於顯卡和平臺機能,非常具有挑戰性。”

而對於Bithell正在開發的《Volume》這個遊戲,他舉例說:“目前在PC上,我的Mac上,遊戲大約是以120幀運行的。而在主機上,我們將會將其降到60幀以求穩定性,不過這還需要很多的工作,並不是像說的那麼簡單,這並不是表現我們的開發能力不行。我們具有開發能力,但這並不是主要原因。”