為什麼電影24幀就很流暢而遊戲30幀卻卡得要命?
很多朋友或許都有這樣一個疑問:大部分電影的幀數都是24幀,播放起來非常流暢,肉眼根本捕捉不到任何卡頓現象;但是用電腦玩遊戲的時候卻完全不同,只要幀率在60幀以下,總是覺得遊戲變卡了,這究竟是為什麼呢?談論這個問題之前,有必要先為大家簡單介紹以下幀數是什麼。
其實很好理解。幀數就是在1秒鐘時間里傳輸的圖片的量。通常用fps(Frames Per Second)表示。每一幀都是靜止的圖像,快速連續地顯示幀便形成了運動的假象。高的幀率可以得到更流暢、更逼真的動畫。每秒鐘幀數(fps) 愈多,所顯示的動作就會愈流暢。
絕大多數的數字電影拍攝幀率仍然是24Hz
所以我們看到參數中的“30幀” 其實就是說“在一秒的時間內,拍攝30張靜態畫面,然後通過播放使其連接起來”,因為人眼的視覺殘留特性:是光對視網膜所產生的視覺在光停止作用後,仍然保留一段時間,原因是由視神經元的反應速度造成的。反應速度時值是二十四分之一秒(也就是說播放每秒超過24幀靜態畫面,在人類肉眼看起來就是流暢而連續無卡頓的動態畫面),這也是電影等視覺媒體形成和傳播的根據。所以我們目前看到的電影基本都是24幀的。
那麼我們的問題來了,為什麼電影24幀很流暢,而遊戲30幀卻卡的要命呢?其實,主要原因就在於,電影和遊戲的圖像生成原理不同。
電影的24fps,是每1/24秒拍攝一副畫面,如果你玩過相機的手動設置,你應該知道如果以1/24秒的快門速度拍攝一個運動的物體會“糊”掉,而正是這樣“糊”掉的畫面連起來才讓我們的眼睛看上去很“流暢”。
而遊戲卻不用。遊戲畫面不是按1/24秒快門拍出來的,而是每一幅畫面都是獨立渲染出來的,之所以跑成24fps是因為顯卡處理能力不夠而“丟棄”了其中的一些畫面,這樣一來每兩幅畫面之間就不連續了,自然看上去會“卡”。
舉個例子,一個圓從左上角移動到右下角,如果是電影,第一幀與第二幀可能是類似下圖這樣的:
二如果是遊戲畫面,第一幀與第二幀會類似下面這兩張圖:
大家也可以拿電影中的快速移動畫面截圖與遊戲中的相比較,效果會更加直觀,例如這樣:
可以看出上面第一張極品飛車裡的截圖,車速明明很快,但是如果我們截圖的話,還是清晰的幀。而電影中無論是車輛還是快速運動的背景都是虛化的。
簡單來說,電影雖然幀率僅為24幀,但是每一幀都包含了一段時間的信息,而遊戲則只包含那一瞬間的信息。一個電影在一段時間內曝光,畫面的每一幀,都包含有一段時間的信息,這段時間的長度由快門時間決定,最長不能超過1/24秒,所以視頻中每一幀包含信息量較大(幀與幀之間有模糊的圖像,這與人眼快速轉換視角也是相似的)。而遊戲裡的每一幀只有這一個瞬間的信息,幀與幀之間的信息完全丟失了,所以必須通過更多的幀數來使圖像過渡自然,為了解決這一問題,一些遊戲中也加入了模擬電影模糊效果的畫質選項。
此外,幀與幀之間,間隔恆定:人眼對於動態視頻的捕捉是非常敏感的,電影幀率是固定不變,肉眼很難察覺出異常,而遊戲的幀率卻是很容易變化的— — 如果手動鎖定幀數,顯卡會默認渲染最高幀率,玩家觸發的很多劇情往往伴隨劇烈的畫面變動,這時顯卡的幀率就會出現下降,前後不一致的幀率很容易被肉眼捕捉,這時我們就會覺得,遊戲變“卡”了。