幀數,從入門到入土

遊資網發表於2019-05-07
幀數,從入門到入土

幀數是遊戲圈的日經話題,也是最容易引起混亂的話題之一,部分原因是缺少必要的基本知識,另一部分原因是個人評價標準不同,這涉及到審美、閱歷甚至是視力,大家的觀點差異太大,經常是聊到一半就聊不下去了。個人因素沒辦法,但是基礎知識還是可以補習的,今天我們就把這個問題談透。

1為什麼3D遊戲30幀都覺得卡,動畫和真人電影只有24幀反而流暢?

關於人類為什麼會將連續播放的靜止圖片看成動態的影像,目前科學還不能完全解釋清楚,涉及到視覺暫留、似動現象等一大堆科學概念。我們今天不需要研究那麼深,我們要討論的問題很簡單:為什麼同樣的幀數下,電影看上去比遊戲流暢?

因為動態模糊。

電影的本質,是一堆連續播放的照片,而照片有快門時間/曝光時間的概念。電影的一幀,記錄的不是現實的瞬間,而是現實中一段時間內的資訊。而遊戲畫面受限於原理,每一張影像都是絕對的瞬間,相比電影影像缺失了很多資訊。

電影是每秒24張,但電影每張的曝光時間並不是1/24秒,因為膠片捲動和攝影機快門是兩回事。看過一張“索尼影視專業製作樂園”做的教學圖,一般的攝影機,1/200秒快門就已經有明顯的跳躍感了,要保證流暢最好用1/50秒或者說1/48秒的快門,即所謂的180度快門(攝影我是純小白,行家輕噴)

沒有動態模糊的24幀啥樣,我剛好找到個20幀的例子。

https://www.bilibili.com/video/av30916121

話說回來,電影卡不卡要看跟誰比,24幀這個標準太老了,在一些高動態的片子裡已經有明顯的卡頓感,如果遊戲能有240幀,就算不帶動態模糊也能吊打24幀的電影了。好萊塢也認識到了24幀的侷限性,所以才會有傑克遜的48幀電影和李安的超高幀電影出現,希望高幀率電影未來有一天能普及吧。

伯恩的電影截圖,慢快門高動態讓很多觀眾都感到不適

幀數,從入門到入土

王家衛標誌性的偷幀。

幀數,從入門到入土

有人會問了,皮克斯的3D動畫電影也是24幀,為什麼不卡呢?因為預渲染3D動畫會模仿電影攝製過程,加入動態模糊的資訊,3D動畫的一幀,並不是只包含了一幀的資訊。專業3D動畫軟體有非常複雜的演算法實現動態模糊,反正人家幾分鐘甚至幾小時才出一幀,有無窮無盡的算力可以浪費。而遊戲中的實時動態模糊特效當然不可能那麼講究,多數僅僅是高斯模糊的變體,這就是為什麼很多遊戲開了動態模糊效果反而讓人覺得卡。

理論上,如果機器算出120幀畫面,然後合成到30幀,那麼30幀的遊戲畫面會有巨大的提升,然而有那功夫把120幀原樣放出來就行了,沒必要脫了褲子放屁。當然,如果顯示裝置或者介面受限於60幀的限制,也可以使用幀合成的動態模糊演算法,這應該是未來算力富裕之後的事了。

這是實拍的截圖,注意看左側,影像模糊的方式非常複雜,車不是作為一個整體模式,而是要考慮到各部分在畫面上移動的速度。

幀數,從入門到入土

這是GT賽車的片頭預渲染CG動畫,很有點意思了。

幀數,從入門到入土

這是GT賽車的遊戲畫面,絕對清晰。

幀數,從入門到入土

這是GT賽車遊戲畫面在照相模式下進行後期渲染的效果

幀數,從入門到入土

顯然預渲染動畫的效果要比遊戲機實機畫面好得多,哪怕加上後期處理也是專業軟體更好。

然後再說動畫。動畫是人手畫的,按理說不會有動態模糊(後期特效另說)。而且日本動畫為了節省成本,一般是不會畫足24幀的,比如一拍三就是24幀只畫8幀,但是我們在看8幀的日本動畫的時候,並沒感覺特別的卡,這是怎麼回事呢?

其實動畫師在繪製時,已經考慮到了動畫的劣勢,做了大量的變形加工。包括迪士尼的十二法則,本質上也是為了彌補手繪的缺陷,才故意做出誇張的處理。

像京都這個手部的動態模糊,就完全是手工畫出來的。

幀數,從入門到入土

而結合變形後就是這樣了。

幀數,從入門到入土

有一種特殊情況是轉描動畫,就是先用真人拍一遍然後照著描成動畫,轉描時很難加入動態模糊,所以轉描方式的動畫往往給人以非常楞的感覺。24幀的轉描動畫本身效果就不好,如果是惡之華那種減幀的轉描,就非常噁心了。

幀數,從入門到入土

2幀數、重新整理率、動畫張數

重新整理率是一個硬體概念,指的是訊號本身和顯示器的特徵,與遊戲無關。之所以很多人搞混,是因為在模擬時代,遊戲的幀數與訊號重新整理率是繫結的。

美日的N制每秒是29.97幀影像,每個影像480行,受限於頻寬,實際傳輸時每幀拆成2組240行的隔行訊號,計算時一般取整到60,與59.94大約一分鐘差2幀。而早期街機和遊戲機輸出的是逐行訊號,第一幀和第二幀都是奇數行,偶數行空著,CRT遊戲特有的掃描線其實就是解析度不足出現的空行。也就是說老遊戲機每秒輸出60張不同的圖片。

3D時代初期的遊戲機開始採用480I訊號,輸出時是隔行的,也就是說奇數偶數幀的影像是不一樣的,這就是為什麼PS2的遊戲畫面在逐行裝置上會出現拉絲的現象。

歐洲與中國大陸的電視標準為PAL,頻率50HZ,也就是50幀。老式遊戲機的執行方式是行掃描,在使用歐亞版遊戲機執行日美版本遊戲時,遊戲內部機制仍然以60HZ為基準,這就導致了影像壓扁(因為P制訊號行數更多)和拖慢。不僅是影像,連聲音也是一樣,我們之前玩的FC上的盜版遊戲,由於沒有修改遊戲內部時鐘機制,影像和音樂都是比原版慢的。

老遊戲機的2D在遇到運算不過來的情況時,往往會採取拖慢的方式,這就是STG遊戲中著名的“處理落”,而運算3D遊戲時採用跳幀還是拖慢由設計者決定。像DC上的莎木1,場景人數一多就會拖慢。

幀數(FPS),指的是遊戲內部運算每秒產生多少張影像,與重新整理率是完全不同的概念。

幀數不足是“卡”,突然掉幀也是“卡”,兩者本質上是一樣的。比如遊戲輸出訊號是60hz,而遊戲畫面是30幀,那麼顯示卡就會把同一張圖輸出2次。如果遊戲突然掉到15幀,顯示卡會繼續輸出快取中的上一張圖,也就是一張圖輸出4次。

萌新常犯的一個錯誤是,認為卡頓是幀數不均勻造成的,這是不對的,30幀的遊戲卡,30幀突然掉到15幀更卡,你覺得30幀不卡僅僅是因為你弱。

動畫張數,這是一個讓很多人糊塗的概念。

像街頭霸王2,角色一個動作也就3、4張動畫,每秒還不到8幀,為什麼遠比3D遊戲的15幀要流暢呢?因為2D遊戲的幀數與動畫張數是完全無關的兩件事,雖然角色的動作沒有變化,但是角色仍然在畫面上運動,遊戲仍然是60幀的。所以你並不會產生3D遊戲的卡的感覺,只會覺得角色動作有點生硬。

比如這3張截圖,只有2張角色動畫,但實際上是3幀不同的畫面。

幀數,從入門到入土

越新的格鬥遊戲,角色動畫張數越多,有時候會在原有基礎上增加中間幀,目前為止角色動畫張數最多的應該還是街霸3,也並沒有達到全動畫的水平,有的必殺技每秒只有6張圖,換算到動畫僅僅是一拍四而已,

3影響幀數的因素

在2D遊戲時代,遊戲機遊戲的幀數基本是由CPU決定的。這是因為遊戲機的影像運算完全由顯示卡負擔,2D顯示卡採用硬體活動塊+硬體卷軸的原理,畫面上能同時出現多少個元素都是硬體定死的。如果畫面上元素太多,不好意思,只能輪流顯示了,所以FC遊戲經常發生畫面缺損。而2D遊戲的拖慢,一般是因為CPU無法負擔邏輯運算造成的,典型的就是STG遊戲的大量活動物體軌跡運算導致的拖慢。

同期的PC遊戲則不一樣,PC的影像運算由CPU生成,2D顯示卡只是一個簡單的合成單元,這就是為什麼早期PC的CPU效能是遊戲機的幾十倍,畫面卻不如遊戲機。

3D遊戲畫面的生成原理與2D完全不同,在光柵化體系下,影像運算分為空間座標變換+光影效果,以及光柵化渲染兩部分。早期的3D顯示卡比如VOODOO只負責光柵化的畫素紋理填充,3D運算的主體由CPU完成。同期的遊戲機比如N64也是一樣的結構。SS和PS結構更加奇葩一些,不過基本也是分成前後兩步。

之後來到以GeFore 256為代表的第二代顯示卡,賣點是硬體T&L,也就是顯示卡接手空間座標變換+光影效果的工作,CPU從圖形處理中解放了。而PS2之所以被罵,也是因為它在任天堂和微軟確定採用第二代顯示卡的情況下,仍然使用上代遊戲機的結構。(DC推出的早,沒用硬體T&L不怪世嘉)

由於CPU負擔的工作越來越少,導致遊戲機的CPU越來越弱。幀數不足的問題,CPU和GPU都有責任,但是GPU可以通過降低特效降低解析度等一系列方法減輕負擔,而CPU的運算是不能打折扣的,所以現在的遊戲機遊戲幀數不足一般都是CPU背鍋。

至於下一代光線追蹤遊戲機誰背鍋,再說吧。

4遊戲畫面多少幀才算流暢?

經常有人說自己10幀以下也能接受,15幀就不卡,進而得出結論“幀數不重要”。

來來來,給你看看16位機的3D賽車,你要還能嘴硬我服你。

https://www.bilibili.com/video/av30915947

遊戲圈把60幀定為標準,有一定的歷史因素。在80、90年代動作射擊遊戲的黃金時代,大部分街機和遊戲機都是輸出逐行訊號的,每秒有60幀不同的畫面。遊戲界所有關於手感、反饋、打擊感的概念,都是在60幀的情況下定義的,包括了從馬里奧到魂鬥羅,從街霸2到KOF的一系列經典大作。如果新遊戲不夠60幀,老玩家很快就能發覺,然後在媒體上批判一番。

為什麼很多人覺得30幀也能湊合呢?因為你們跟人家大佬玩的根本不是同一類遊戲。90年代興起的RPG AVG AADV這些型別,以及21世紀興起的沙盤遊戲(AADV或者ARPG),對動作性的要求遠不如早期的遊戲,所以30幀也能湊合玩。

同為後起之秀的FPS,對於幀數的要求比老街機遊戲還高,所以你看到PC上的FPS玩家都聲稱非60幀不玩,120幀最佳。

至於現在遍地的30幀,一方面是大部分玩家玩的遊戲型別對幀數要求不高,另一方面是3D時代硬體效能跟不上畫面的發展速度,廠商只能做到30幀。如果遊戲公司真的認為30幀夠用,就不會把60幀特意當作優點吹噓了。廠家認為大多數玩家更在意畫面的特效,解析度和幀數屬於可以犧牲的範疇,所以你看PS3和PS4兩代主機,越到後期解析度和幀數越糟糕。

為什麼最低標準是30幀不是20幀或者25幀呢?很簡單,因為90年代大家把各種幀數都試過了,典型就是我上面發的那個夢遊美國的20幀。經過實戰檢測,20幀和25幀連小白玩家都受不了。

除了畫面本身,遊戲的反饋延遲也影響到玩家的感受。FTG玩家要求60幀,是因為遊戲的判定以1/60秒為單位,比如A招在輸入後3/60生效,B招4/60生效,那麼A招就會有優勢。格鬥遊戲的製作公司會主動向玩家灌輸這些專業的概念,比如VR戰士中結城晶的提膝彈腿,明確要求按某個鍵1/60秒,超過這個時間就無效,所以格鬥遊戲玩家也被稱為“生存在1/60秒世界的人”。

當然,人的反應速度是絕對到不了1/60秒的,一般比較快的人有1/10就不錯了,但是實際遊戲過程中,我們的動作都不是憑藉臨時的反應,而是條件反射,如果遊戲反饋慢,會明顯影響感受,真的是1/10秒的話這遊戲也就不用玩了。如果遊戲空有120幀,操作要延遲4幀才能反應到畫面上,那跟30幀就沒有太大差別了。

由於現代電視大多帶有影像訊號強化功能,又進一步引入了新的延遲,有些電視的高階功能(比如補幀)會讓延遲高到難以置信的程度,所以玩遊戲時儘量關掉這些東西。像XRGB這類模數訊號轉換裝置也有專門的低延遲遊戲模式。


作者:孟德爾
專欄地址:https://zhuanlan.zhihu.com/p/43647705

相關文章