為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

前言:

每當我在知乎談起多少幀流暢的時候,總有那麼一兩個啥也不懂的就喜歡跳出來說,電影只要24幀啊,主機就30幀啊,你說PC需要60幀才算流暢,你就是忽悠別人多花錢買不必要的配置。這些人很明顯不懂動態模糊和垂直同步到底是啥,也不懂輸入反饋是啥。所以今天這篇文章詳細來解釋一下,為什麼電影24幀就算流暢,主機30幀就算流暢,而電腦需要60幀流暢。

正文部分:

這是極客灣的視頻,視頻內容和我這篇文章想介紹的一樣:【極客週刊】玩遊戲為何要60幀才流暢,電影卻只需24幀?視頻裡講的比我文章說的清楚的多,推薦各位有時間有流量的能看視頻的直接看視頻,文章畢竟不如視頻好理解。

https://www.bilibili.com/video/av16461036?t=117

【幀的概念】

首先我們需要知道什麼叫幀數。下面這個GIF裡的玩具想必大家小時候都玩過,就是畫很多有細微區別的靜態圖畫連續播放,利用人眼的視覺暫留效應,他就會變成動畫,我們的電腦也是利用這個原理來工作的。


為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?


上面的動圖裡,每一張靜態畫面就被稱之為1幀,一秒鐘閃過了30張畫面,那就是30幀/秒,幀/秒的單位是FPS,也就是30幀每秒就等於30FPS。

那麼這裡你自己也能總結出一個結論,那就是幀數越高你的畫面越流暢,1秒鐘閃過1張畫面,和一秒閃過10張畫面和1秒閃過100張畫面,那肯定是100FPS流暢。但是我們的肉眼有一個識別上限,也就是說,當幀數超過一定水平,你就無法分辨了。這個值到底是多少,我們後面詳細說。

電腦裡用於輸出幀數的元器件叫顯卡,顯卡的用途就是繪製圖像並輸出。所以衡量電腦遊戲的流暢度,就是看你的遊戲FPS,遊戲的FPS就代表了你的顯卡一秒向顯示器輸出了多少幀,這裡我們暫且不討論顯卡刷新率大於顯示器刷新率會發生什麼,如果想了解的請看這個文章:【什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?】

【靜態幀與模糊幀】

這時候就要引入一個概念,靜態幀與模糊幀。

我們知道電影拍攝的時候,相機都有一個曝光時間,假設我們的快門時間是1/10秒也就是0.1秒,那麼在拍攝這張畫面的時候,快門就會打開0.1秒,那麼你的畫面就會包含著0.1秒內全部的信息,那麼這一幀,包含的內容就是這0.1秒裡畫面所有的變化。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

就比如這個馬,從A點跑動到B點花了0.1秒,相機快門時間也是0.1秒,那麼這一幀就完整的記錄了馬從A點跑動到B點的模糊圖像。這裡不相信的話你可以隨便播放一個電影或者用攝像頭錄製的畫面,你在畫面發生變化的時候任意一個時間點暫停,那你得到的都是一個模糊的畫面,這就是快門時間導致的。

相機的記錄原理就註定了,假設快門時間是0.042S,1秒能錄24幀,這24幀每一幀雖然都是模糊的,但是你把這24幀連貫起來,他就是完整的馬從A點移動到C點的一個完整流程。也就是說,電影裡的每一幀都是模糊幀,而模糊幀是包含了物體在整個曝光週期內的完整運動信息。比如下圖,這個人的腿從左邊到右邊運動的過程,這個過程的運動信息被相機捕捉到了,所以這一幀包含了他的腿部從左側運動到右側的信息。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

但是我們的遊戲不是這樣,我們的遊戲是由遊戲引擎渲染出來的,渲染出來的每一張畫面,都是清晰的幀,你任何時候截屏,你截圖出來的畫面都是一張非常清晰的畫面,這就導致了一個問題那就是,清晰幀與清晰幀之間的間隔是缺失了運動信息的。比如下圖GTA5的截圖,如果是電影裡開車的場景,你暫停一下,周圍的畫面肯定是模糊的,但是遊戲裡,車速明明都120km/h了,你截個圖,還是清晰的幀。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

這裡我做了個圖,左邊是一滴水從高處落下,右邊也是,但是左邊是模糊幀,右邊是靜態幀,所以當你去以動畫視頻的形式播放的時候,左邊的畫面就會明顯比右邊連貫的。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

【電影為什麼24幀就流暢?】

那你瞭解了模糊幀和靜態幀之後,你也就清楚了為什麼電影只要24幀就算流暢。因為電影全程都是模糊幀,每一幀與每一幀之間銜接的都非常順暢,但是遊戲不一樣,遊戲裡第一幀到第二幀之間的所有信息都是丟失的,假如你在電影裡一個轉身鏡頭,你會看到類似下面的一個這樣的畫面,周圍的場景全是模糊的,他包含了這個轉身鏡頭裡所有的信息。而在遊戲裡,你只能看見,起始點,中間的幾個點,還有終點,點幀與點幀之間的過渡信息完全丟失。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

那既然這樣,我在遊戲裡打開[動態模糊]這個選項不就行了麼,當然沒問題,從原理上講,遊戲內的動態模糊選項就是用來模仿電影的模糊幀的,但是這裡有個問題就是,電影為了保證觀感,很多的影片廠商做特效的時候都是逐幀修改的,力求整個一個半小時的影片每一幀都是完美的表現,但是遊戲不是,遊戲每秒都要輸出大量幀,不可能說讓某個後期去給你每一幀每一幀優化吧,所以遊戲裡的動態模糊都是利用固定算法來模擬的,這個動態模糊的效果肯定不如電影那種高度定製化的模糊幀,所以說即便你在遊戲裡打開了動態模糊,24幀的遊戲依舊算不上流暢,因為遊戲的動態模糊無法和電影那種比。

【幀生成時間】

電影裡,一秒就是24幀,這是固定的,每一幀都是0.042的間隔。所以幀與幀之間是平滑的。但是電腦遊戲不是,你的顯卡性能是恆定的,但是遊戲的場景複雜程度不是恆定的,可能你一會在大廣場,畫面裡啥都沒有,這時候幀數是100,一會你進了森林,全是樹葉,那畫面複雜了,幀數就是70了。所以以為畫面會有變化,顯卡性能卻不變,那麼就會出現幀數波動的情況。

比如舉個例子

第一組:第一幀與第二幀間隔了0.3秒,第二幀與第三針間隔了0.1秒,第三針與第四幀間隔了0.2秒,第四幀與第五幀間隔了0.4秒。

第二組:每一幀都間隔0.25秒

那麼這裡幀與幀之間的間隔就被我們稱之為幀生成時間。

那麼你從面板上看,兩者都是5 fps,都是一秒5幀,但是由於前者的幀數不平滑,導致實際上流暢度也不如後者。就是因為幀生成時間不夠平滑導致的。

舉個極端例子,前半秒就1幀,後半秒59幀,雖然你從面板上看是60fps,但是這個畫面你就是會覺得鈍了一下。

【垂直同步】

關於垂直同步的詳細工作原理這個文章有介紹,有興趣的可以瞭解一下:【什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?】

不願意看文章的我簡單說一下,垂直同步可以強制顯卡的輸出幀和顯示器刷新率完美契合,也就是說,開啟垂直同步就可以緩解幀生成時間不均勻導致的不流暢,強制顯卡的所有輸出幀間隔一樣,但是垂直同步會大幅增加鼠標延遲,導致你會覺得鼠標變肉,就和鼠標底部粘了口香糖一樣,等於是丟了西瓜撿芝麻。鼠標延遲遠比畫面不流暢更難受

【交互性】(此子標題內容來自極客灣科普視頻)

https://www.bilibili.com/video/av16461036?t=117

無論是電影還是主機,都是一種調動我們感官的一種娛樂項目,而電影只是用來看的,那麼只需要保證音畫同步,你就不會覺得違和,但是遊戲是用來玩的,所以不僅需要保證音畫同步,還需要保證你所有的輸入操作都和屏幕實時同步,不然就會被我們的大腦所捕獲到,產生違背日常認知的感覺,這種感覺就會讓你很難受。一般來講,正常情況下,普通人對於遊戲畫面的響應時間在100ms左右,如果我們晃動鼠標,鼠標晃動這個畫面在100ms內輸出到了顯示器上,你就不容易察覺不到輸入延遲。

而我們的遊戲引擎工作原理決定了一件事就是我們的操作必須要3-5幀之後才能反饋到屏幕上,如果是60幀的畫面,操作延遲大概在70-110ms左右,你很難察覺,而如果是24幀的畫面操作延遲就達到了150-240ms,如果是30幀,那麼延遲也在100-180ms之間,也就是你的操作反饋到屏幕上會出現滯後的現象,那麼這就會違揹你的認知,讓你非常難受。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

所以這裡有個結論,就是你的幀數越低,你的操作延遲越高,而很明顯60幀已經是100ms附近的極限值了,也就是說,如果你使用的是PC端,那你必須要保證幀數高於60你的鼠標才能在100ms之內反饋到屏幕上。

【為什麼主機30幀就算流暢?】

很多主機用戶經常說,我們主機30幀就流暢了,那些說60流暢的是不是要求太高了。這裡就可以解釋這個問題了,首先,主機上幾乎所有的遊戲都是默認開啟動態模糊的,那麼由於有動態模糊的存在,30幀所帶來的畫面不流暢會被緩解一部分,其次,主機上是強制開啟垂直同步的,那麼就是主機的所有輸出幀,都會和電影那樣每一幀間隔都力求完美相同。所以動態視力稍微好一點的人,都會察覺的出來PC的30並不如主機上30流暢。而主機使用的是手柄,開了垂直同步操作的延遲也不會那麼明顯,所以垂直同步的負面作用也被手柄抵消了。

再者,很多主機用戶都是在客廳玩遊戲,你距離電視比較遠,通常都在3-8米,所以距離拉開後,就算是30幀不流暢,你的畫面也不會顯得那麼不流暢。而電腦屏幕不是,電腦屏幕絕大多數人都是在1米之內去觀看的,所以低幀率更容易被人眼所捕獲。

而且手柄不會受到操作操作延遲的影響,因為手柄需要的輸入反饋次數很低,搖桿的操作就算滯後100ms你也不會覺得什麼,按鈕滯後100ms你同樣不會覺得什麼,而鼠標的操作,一旦滯後超過100ms,那麼你絕對會產生不適應感。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

【人眼的適應性】

我們的眼睛適應能力是非常強大的,假如說,你從來沒見過60幀,你一直在玩30幀主機,那麼你的眼睛就會逐漸適應30幀,你的畫面實際上並不流暢,只是因為你的眼睛適應了這個不流暢,所以你的大腦把這個不流暢當成了理所應當。就好像你在廁所呆一下午,廁所裡的味道你的鼻子也會適應,然後你就會感覺廁所也沒什麼味道啊,但是實際上還是有味道的,只是你的鼻子適應了。同理,你長期使用30幀,你的眼睛也適應了,所以你並不會覺得30卡,但是如果說讓你長期玩60幀的畫面,突然再讓你回去玩30幀的主機,相信我,地球上所有眼睛正常的人都會認為30幀卡,因為你的肉眼適應了60後,你會覺得30很難受,畫面不連貫。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

最為致命的就是,PC上游戲的優化不像主機那麼好,主機由於就一臺,一個型號,針對性優化非常容易,可以一直恆定30幀,加上我上面說的,人眼適應了,你就不會覺得那麼卡,PC遊戲,很多人的電腦配置不一樣,那麼廠商就沒法統一優化,導致幀數各種亂跳,一會60非常流暢,一會又40突然掉幀,那麼這種一會流暢一會不流暢,就會讓你的眼睛非常難以適應,你眼睛習慣了60,突然畫面複雜,掉幀到40,這時候你眼睛還沒適應,你就是覺得卡,然後突然恢復了60,又覺得流暢,然後這種流暢,掉幀,掉幀,流暢,波動的幀數就會讓你非常難受。你的眼睛也根本無法適應這種波動的幀數。就像一個廁所一會臭氣熏天一會香氣撲鼻,你就會覺得異常噁心,但是把你一直放在臭氣熏天的環境,一會你的鼻子就會適應。

【為什麼電腦30幀就不流暢?】

電腦和主機不一樣,動態模糊和垂直同步是可選選項,大多數遊戲默認是不開啟的,那麼就導致PC上如果還是30幀,畫面會因為全是靜態幀以及幀生成時間不均導致異常的不流暢。

打開動態模糊後,會影響視覺觀感,雖然能緩解畫面不流暢。而不開垂直同步,幀生成時間不均勻也會讓你感覺畫面不流暢。開啟垂直同步會增加鼠標延遲,鼠標延遲比畫面不流暢更噁心。那麼你想要保證畫面流暢,還不要輸入延遲,那唯一的方法就是增加幀數,幀數上去了,就算幀生成時間不均勻,幀的數量也可以彌補這個問題,輸入延遲也會隨著幀數的提高而顯著降低

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

鼠標和手柄的操作區別也是影響流暢度的關鍵,比如你同樣是轉動視野180度,從正前方轉到後方,手柄因為搖桿範圍就那麼大,你推到頂,你視野轉動的速度也就是上限了,但是鍵鼠不一樣,鼠標做轉身180度操作的時候,你可以飛快的甩鼠標,瞬間就能把頭扭過來,那麼手柄操作就是,你得緩慢的看著視野從前面轉動到後面,而鼠標瞬間就能從正前方轉動到後方。那麼在主機上,這個轉動視野的整個流程你都需要完整的看完,而鼠標你可能只看見了正前方的畫面,然後瞬間就轉到了後面的畫面,所以手柄的操作強制了你不能進行大幅度視野晃動,所有的晃動視角你必須要看著動畫走完,那麼這無形間增加了你所看見的畫面數量,比如你轉身用手柄,花了3秒轉身,每秒30幀,那麼你轉身這個動作你看見了90張畫面,而鼠標瞬間轉過來,他只看見了正前方的畫面,轉過來後正後方的畫面,他有可能只看見了2張畫面,所以同樣一個轉動視野180度這個操作,因為鼠標和手柄的差異,導致了PC上絕對不能用30幀來衡量流暢。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

手柄的活動區域是被限制死的,但是鼠標的活動區域是整個鼠標墊,所以操作的不同就註定了手柄的輸入延遲沒那麼明顯,而鼠標反饋必須要100ms內。

【電腦遊戲需要多少幀才算流暢】

既然遊戲的動態模糊效果不如電影,而不開垂直同步幀生成時間不平滑,開了垂直同步會大幅增加鼠標延遲,幀數低了也會增加鼠標延遲。那麼電腦遊戲到底多少幀算流暢呢?

根據我個人的流暢恆定(僅代表我個人感覺)如果你的顯示器沒有G-sync或者Freesync技術,刷新率是60Hz,那麼你至少需要保證你的幀數在60-90穩定才能保證沒有明顯的鼠標延遲,同時畫面較為流暢。而如果你想要獲得絲滑般順暢,注意這裡是絲滑,不是流暢,那麼你必須要用144的顯示器並且跑到100幀以上。

而很多人說我的遊戲畫面40-60也很流暢啊,其實這就是井底之蛙理論,因為你沒有體驗過更流暢,而且加上你的眼睛適應了這個幀數,所以你會覺得流暢,而真正的流暢你還沒見過呢。就像你讓一個人從出生就吃樹皮,那麼他會覺得樹皮也不錯,但是你讓他吃飯後,他肯定不願意吃樹皮了。你讓一個長期吃飯的人去吃樹皮,那他打死也不會吃。

40-60光鼠標延遲都能被人體明顯感知,所以不可能會流暢,當然,如果你是說我在電腦上用手柄,那當我沒說這句話。

【簡單測試肉眼可識別的幀數上限】

我並沒有找到任何一家權威的醫療或者生物機構測試肉眼刷新率上限,那麼我們只能自己測試。

首先想要測試肉眼可識別的幀率上限,那就必須要有一個刷新率超高的顯示器,我自己用的顯示器是宏碁XB271HU,刷新率是165hz。

為什麼電影24幀就算流暢,而電腦遊戲需要60幀流暢?

測試方法:遊戲使用優化較好的守望先鋒和GTA5兩款遊戲,保證全程200幀以上,不開垂直同步,不開動態模糊,手動將顯示器刷新率設定為24,60,85,100,120,144,165,從30開始,30hz玩10分鐘,調到60hz玩10分鐘,感覺有區別,那麼往上調到85hz玩10分鐘,感覺還是有區別,那麼調到100hz玩10分鐘,感覺100hz和85hz區別不是很明顯,調回85hz玩10分鐘,感覺還是沒區別,那麼85就是他的肉眼識別上限。測試前不會告知使用者檔位數據,採用盲評模式,其次會告知被測試人只關注畫面流暢度,不需要考慮鼠標的輸入延遲。

根據我對我10名男性10名女性,包含兒童,成年人,老年人,我的同學,我的客戶,我的朋友,我的親戚等測試,我初步得出不專業的測試結果:

兒童的識別上限在100-120

常年玩射擊遊戲的識別上限在144-165

絕大多數成年人的識別上限在85-100

老年人的識別上限在60-85

最後是全文總結:

模糊幀包含了物體在整個曝光週期內的運動信息靜態幀只包含了物體在那一瞬間的位置信息幀與幀的間隔被我們成為幀生成時間電影雖然只有24幀,但是全是模糊幀且幀間隔完全相同,所以看著比較連貫電影裡的動態模糊是高度定製和逐幀修改的遊戲裡的動態模糊是靠著算法模擬的,效果不如電影的原生動態模糊遊戲主機30幀畫面看著不卡是因為開啟了動態模糊和垂直同步大多數主機玩家距離顯示器比電腦玩家要遠,距離可以緩解低幀數的不流暢感人眼具有適應性,長期適應30幀後你就不會覺得30卡,但30幀其實並不流暢電腦30幀不流暢是因為默認沒有開啟動態模糊和垂直同步開啟垂直同步會大幅度增加輸入延遲,導致鼠標有粘滯感電腦即便開啟了垂直同步和動態模糊,30幀也不流暢,因為輸入延遲太高輸入延遲的太高會導致大腦認為違背日常認知,導致你會很彆扭電影不需要考慮輸入延遲,音畫同步就行,手柄受輸入延遲的影響小鼠標的輸入延遲最好控制在100ms內,臨界值是60幀手柄轉動視角速度是受搖桿限制的,電腦上甩鼠標並沒有被限制角度鼠標和手柄的不同就註定了鼠標必須要高幀率來緩解輸入延遲根據不專業測試,人肉眼可識別的刷新率上限是90-120附近即便是非常不敏感的人都能察覺出120hz和165hz的輸入延遲的差別144hz的顯示器真的非常重要,這從來就不是噱頭,用過你才知道


原文鏈接:https://zhuanlan.zhihu.com/p/48674410


分享到:


相關文章: