【影格速率】何謂 FPS (Frames Per Second) 為什麼電影 24 格就行,但遊戲卻要 60 格?


永不言敗,是成功者的最佳品格。
如果你向神求助,說明你相信神的能力;如果神沒有說明你,說明神相信你的能力。
要成功,先發瘋,頭腦簡單向前衝。
一個人只要有夢想,生命就有了依託;一個人只有不懈地追逐著夢想,活著才覺得意義深遠,趣味無窮,也才能將生命的潛能發揮到極致。
有了夢想,就應該迅速有力地實施。坐在原地等待機遇,無異於盼天上掉餡餅。毫不猶豫儘快拿出行動,為夢想的實現創造條件,才是夢想成真的必經之路。

 

每秒跑多少張圖
在FLASH下設影格速率

30 FPS 代表 每秒跑30張畫面
12 FPS 代表 每秒跑12張畫面

30 FPS 代表 一秒"重繪"或"更新"30次
若一個物件跑一段距離
他在一秒內 他的位置 會更新 30 次 每次 位置不同
所以你才會有動的感覺

一秒30次
第一次 位置在 2
第二次 位置在 4
到第三十次 位置就在 60

每次物件都在更新位置 物件才有"動"的感覺

同樣是20格影格的動畫 用 30FPS去跑 很快就撥完 因為一秒撥30次
同樣是20格影格的動畫 用12FPS去跑 比較慢撥完 因為一秒撥12次

一個物件在同樣地點去同樣目的地 若用的影格數相同
用12FPS跑 會有慢的感覺
用30FPS跑 會有快的感覺

—————————————————————–

FPS 畫面更新率
維基百科,自由的百科全書


幀率(Frame rate)(臺灣注音讀作 ㄓㄥˋ 音同"正" )是用於測量顯示幀數的量度。所謂的測量單位為每秒顯示幀數(畫面更新率)(Frames per Second,縮寫:FPS)或「赫茲」(Hz)。此詞多用於影視製作和電子遊戲。

由於人類眼睛的特殊生理結構,如果所看畫面之幀率高於16的時候,就會認為是連貫的,此現象稱之為視覺暫留。這也就是為什麼電影膠片是一格一格拍攝出來,然後快速播放的。

現代電影的幀率為24,對一般人而言已足夠流暢,但對高動態的電子遊戲,尤其是第一人稱射擊遊戲來說,幀率少於每秒30幀的話,遊戲就會顯得不連貫,這是因為兩者顯像原理不同所致。
電影的一格幀中其實隱含了1/24秒內的所有訊息,但電子遊戲的一格幀就只有該時間點上的畫面,故電子遊戲需要更高的幀率來達到順暢的視覺效果,此缺失可用一些電腦圖形學的技術來彌補。
有一句有趣的話:「FPS(指FPS遊戲)重在FPS(指幀率)。」

—————————————————————–
FPS 不是越高越好(電競除外)

有人說
「56、59 FPS 和 60 FPS 根本分不出來」,
但事實上,59 跟 60 FPS 不但很容易分得出來,
59 FPS 還是所有繪圖張數裡面遊戲體驗最糟的一個。
從某種角度來看,甚至比 30、40 FPS 還糟。
同理,61 FPS 的遊戲體驗也會是很糟糕的。

有玩遊戲機的巴友們不知道有沒有想過,
為什麼遊戲機永遠只鎖 30FPS 跟 60FPS,
從來沒有遊戲鎖 35 40 50 55 等數字?

原因在於,遊戲每秒繪圖的張數必須與螢幕的刷新率呈倍數關係
才有辦法產生流暢的畫面。(G-synch 螢幕除外)
為什麼? 因為螢幕更新畫面的速度是固定的。

以 60Hz 的螢幕來說,每張畫面的間隔都是 16.66 毫秒。
如果你的顯卡餵給它每秒 60 張的畫面,
那螢幕每一次刷新都可以換上一張新的畫面,
而且每張畫面的間隔時間都相同,
這樣的結果就是最完美的流暢感。
同理,120 Hz 也是一樣完美。

如果餵給螢幕每秒 30 張,
雖然螢幕每刷新兩次才有辦法換上一張新畫面,
但畫面的間隔仍會是穩定的 33.33 毫秒,
雖然因此流失一半的畫面,但影像的流動仍是順暢的。

重點來了,
那如果顯卡餵給螢幕每秒 59 張呢?
前面講了,螢幕的刷新頻率就是固定每秒 60 次,
如果硬要在 60 次的刷新率中放入 59 張畫面,
那勢必每秒會有 1 張畫面待在螢幕的時間是其他 58 張的 2 倍。
同理,如果顯卡餵給螢幕每秒 61 張畫面,
勢必有其中 1 張畫面會被跳過。

這兩種情形都會讓玩家覺得畫面有頓挫感。

因此,純粹從畫面品質(暫不考慮延遲)的角度來看,
60Hz 螢幕最完美的 FPS 值就是 60 跟 120,次完美的就是 30。
其他任何數值都一定不可能產生流暢的畫面。

那有沒有甚麼折衷的辦法?
難道沒辦法達到 60 FPS 就一定要降到 30 嗎?

我個人的論點是,其實還有一個可以接受的數字,就是 40FPS,
因為 40 是頓挫頻率最高的 FPS 值(每秒 20 次),
因為頻率太高,反而很容易可以感到習慣。

反之,59 跟 61 就是最糟糕的 FPS 值,
因為每一秒頓挫一下,這樣的頻率最容易被人眼察覺。

結論,純粹以畫面品質(而暫不考慮延遲)的角度來看,FPS 並不是越高越好。
除非能夠一次衝到 120 FPS,不然高於 60FPS 的畫面品質
理論上是不如穩定 60 FPS 來得好。

———————————————–

大家玩遊戲這麼多年,或許都會有那麼幾個疑問:為什麼 2D 圖像化的古董超級瑪莉不卡,但 3D 遊戲卻卡了?為什麼電影每秒 24 格不覺得卡?但遊戲沒 30 格就卡得受不了?雖然網上有各種各樣的回答,但很多都不盡科學不夠全面,所以筆者還是來全面科普一下吧。

生理基礎

雷鋒網配圖

▲ 電影膠捲記錄的逐格資訊。

所有的故事都要從人類肉眼的「視覺暫留」和「腦補」現象說起,前者是指人類視網膜在光訊號消失後,殘像還會保留一定時間的現象;後者是大腦自行補足畫面中間隔的「腦補」功能。它們的混合作用,讓我們誤以為每秒 24 格重播的照片是「連續」的。

而至於為什麼要把數字定在 24,這裡面更多是約定俗成和玄學,電影規格本身也經歷了 16 到 24 格的轉變,這個數字以後估計也會繼續增長。而 PAL / NTSC / SECAM 三種電視訊號規格,把格數定在每秒 25 格和 30 格的原因,其實只是因為不同地區的供電頻率不同(50Hz 和 60Hz)……為了方便計算,採用 NTSC 制式的美國和日本,在遊戲中很自然地了沿用了每秒 30 格的習慣(NTSC 制式為 29.97 格)。

但為什麼看 24 格的電影毫無違和感,但 30 格,甚至 60 格的遊戲中也會出現卡頓?這裡直接說結論,決定遊戲流暢度有 4 個:動態模糊效果、操作回應、影格率和影格率均勻度,當中以動態模糊最為重要。

 

動態模糊

動態模糊,是指相機快門慢於物體運動而導致的運動軌跡拖影。3D 遊戲和電影的重要差別:電影是現實光影的記錄,而 3D 遊戲是 3D 模型形狀/位置的即時算圖,前者會有動態模糊,而後者不會。

電影是恒定頻率拍攝的膠捲 / 數位照片,它可以完整記錄一段時間內的光線資訊。一般 24 格每秒的影像,會選取高一倍的 1/50 秒的快門,可以完整記錄半秒的光線資訊。而這些「多出來」的豐富圖像資訊,會像重影一樣疊在一起而造成動態模糊 / 拖影,其原理和「光繪」一樣,只是快門不是幾秒,而是 1/50 秒。

雷鋒網配圖

▲ 高快門速度的樣張。

雷鋒網配圖

▲ 低快門速度的樣張。

在人類大腦中,動態模糊是視覺訊息量的一個重要表現,即使實際看到的格數不夠,加入動態模糊的間隔畫面也足夠我們用來進行腦補,從而實現「流暢」。另外,偏題一下,如果同樣的每秒 24 格,如果快門速度提高到 1/96 秒,那膠捲中記錄的光線資訊只有 1/4 秒(24×1/96),不見的光線資訊會讓模糊效果減弱,這樣的電影看起來也是會有卡卡的感覺。

雷鋒網配圖

▲ 左側為不同快門速度記錄的光線訊息量(快門越慢,記錄的光線越多),右為實際畫面。

而遊戲則是把這個「快門速度」提升到極致的產物,遊戲中的 30 格,是遊戲引擎生成的 30 個無限短的瞬間畫面,而且這些瞬間無論多快,物體本身都是清晰無比,絕對不會有模糊效果。如果這時候還以 24 格每秒播放,大腦會抗議,這東西動的這麼快,為什麼我還看得那麼清楚,完全不科學啊,結果「腦補流暢度畫面」過程就無法進行,我們就真的在看播幻燈片了。

要解決這個問題,要不提高取樣率,要不就人為增加模糊效果。前者是下面會說到的高更新率方案,而後者就是增加模糊效果欺騙大腦,讓它以為自己看到是高訊息量的畫面(然而模糊效果也很耗資源)。

畫面更新率大小

遊戲中的物體如果每秒移動 1 個畫素點,我們或許還能覺得流暢,但如果物體每秒移動 10 個畫素點,那就有明顯段落感了。這時候需要提高取樣率,把中間缺掉的畫面補出來,如果更新率提高到每秒 10 格,我們就可以看到接近剛才 1 秒 1 個畫素點的流暢度了。

透過把每秒 24 格的畫面,提升到每秒 48、甚至 60 格,雙眼接收到的訊息量大到一定程度,就足夠用來「腦補」出流暢效果了。雖然最完美的遊戲應該是要格數盡可能地多,那樣才是真正類比現實情況,但對於遊戲來說,計算格數越多,需要的性能就越高,這個方案的代價太大了。而現在大家公認的是,做到 30 格就能完成腦補過程了。

更新率均勻度

然而實際遊戲中,30 格照樣會時有卡,甚至提升到 60 格也還是會卡。平時我們看手機評測的時候,常見兩部不同 GPU 的手機,就算顯示的 FPS(每秒格數)相同,照樣也是會有流暢度差異,這是為什麼呢?

雷鋒網配圖

▲ 兩款顯卡的 FPS 對比。

雷鋒網配圖

▲ 兩款顯卡 FPS 渲染時間對比。

這裡的問題出在「格」的精確上。即使之前時間都能 30 格以上算圖,但只要有那麼幾個瞬間跌破 30 格,那依舊是卡。理想情況下的 30 格每秒,是 30 格均勻分布,但實際上有可能前半秒計算 29 格,最後的整整半秒只算了 1 格。

因為運算能力和畫面複雜度的限制(例如從平原中突然有巨大爆炸的畫面),前半秒算圖壓力小,可以滿格跑,但一到爆炸場景,運算量暴增,來不及計算,後面格數就下降了。肉眼雖然對格數的絕對值不敏感,但明顯的格數變化還是能輕易察覺的。

很明顯平時我們看的 FPS(每秒更新率)的精度完全不夠用,我們需要把精度,從每秒多少格,提升到每毫秒多少格才能精確衡量畫面更新率的穩定性。

回應時間與操作速度

遊戲和電影的最大區別是,遊戲是需要使用者做出動作並對動作進行即時回饋。除了視覺流暢,我們還需要操作流暢。大家追求 60 格高更新率的重要原因,為的就是降低回應時間。我們感知一個動作是否完成,是要機器接受操作資訊,並最終反映在下一格才算完成。而實際操作中,大多數遊戲引擎在接受操作指令後,要 3 格間隔才能呈現在畫面上。

畫面更新率速度越高,我們能感知的操作速度就越快。30 格的遊戲,即使忽略操作指令傳送速率,每個畫面持續 33 毫秒(1s/30=0.033s),一個操作需要 100 毫秒(33 毫秒×3 格)才能反映在畫面上,而 60 格的遊戲,則只需要 50 毫秒就能反應過來了。這 50 毫秒,在遊戲中很有可能決定你是爆別人頭,還是被人爆頭了。

另外,如果出現畫面壓力太大,機器來不及算出畫面,畫面出現掉格甚至卡頓,我們的操作指令也是會被順延輸入的。效果就是我們幾秒前做的操作,在幾秒後才逐一顯示在畫面上,那就會非常卡了……

雷鋒網配圖

(本文由 雷鋒網 轉載) 

———————————————————————-

螢幕Hz和FPS的關係

何謂Hz:
赫茲(英語:Hertz)是計算頻率的單位,屬於公制的一種,意為每秒的週期運動次數。其命名取自德國物理學家海因里希·赫茲,符號是「Hz」。
也就說他是一種頻率的計算單位,頻率越高,每秒的周期運動次數也就越高,
這邊就是螢幕的Hz更新單位,
那高Hz的螢幕有什麼好處呢?
就我個人的經驗,
不管是畫面的流暢度、眼睛的舒適度、反應、殘影,
都有十分顯著的感覺,
當然~這個部分跟每個人動態視力也有相當的關係,但就大部分的人而言,
還是能明顯的感覺出其中高、低Hz的差異,

接下來我們談談電腦的FPS
何謂FPS:

每秒顯示張數(英文:Frame per Second,FPS)一個動作、畫面,經由計算後將其連貫起來,形成一個連貫性的畫面,一般來說FPS用於描述影片、電子繪圖或遊戲每秒播放多少幀。
因此當遊戲中計算出來的FPS越高,
畫面就越順暢也越擬真,

在談到螢幕與硬體間的關係前,我先來做個簡單的比喻,
首先,我們將螢幕的Hz看成一條高速公路,
而將FPS看成車子,
當高速公路(Hz)每秒只能讓60台(FPS)通過的時候,
你有144、165、240台(FPS)甚至是更多的車子,高速公路(Hz)也是一樣每秒只能讓60台(FPS)經過而已,
因此,
Hz的最高上限限制了你FPS顯示的最大上限
公式是
Hz < FPS,顯示畫面等於Hz=FPS
60<100顯視畫面等於60=100→60

同理,
這邊我們將高速公路(Hz)拓寬到每秒可以讓240台(FPS)通過,
這個時候你只有60、100、144台(FPS)車子經過,
他不會有任何的堵塞,有多少車子就過多少車子,一路順暢,
因此,
當Hz的最大上限大於FPS的最高上限那螢幕顯示出來的Hz以FPS數字為主
公式是
Hz > FPS,顯示畫面等於FPS=Hz

240>100,顯示畫面等於100=240→100

所以可以看得出來,Hz與FPS是禍福相倚,任何一邊偏低,另一邊就跑不出他的實力,
這邊我們就已經說出了他們之間的關係了,
現在我們來說一說它們彼此之間可能會發生的問題,
若剛剛有仔細再看我說的小兄弟就會發現

當高速公路(Hz)比較小,但車子(FPS)數量多灌爆高速公路的時候會怎樣?
會問這個問題的小朋友,真的很棒,
當你在高速公路上,前面時速100,你開120會怎樣?
當然是往前面那台車的屁股給親上去呀,
也就是發生了車禍,那發生了車禍螢幕上會發生什麼事情呢?
也就是會產生了撕裂感,
如下圖:

而為了阻止這種事情的發生,就需要打開"螢幕垂直同步"這個技術,
也就是請一個交通警察,在高速公路上面站著,控制每秒過多少車子,不准任何車子偷跑,
因此當您在遊戲中打開了垂直同步,
會將車子(FPS)數量限制在警察(垂直同步)設定的數量,
公式是
Hz<FPS帶入垂直同步,顯示畫面等於FPS=垂直同步數值

好了,已上就是Hz and FPS的因果關係,不知道此講解大家是否茅廁頓開呢?

發表迴響