小時候大概都玩過那種翻頁動畫本——本子角落畫著一連串稍稍不同的小人,用拇指快速翻動,小人就動起來了。翻得越快,動作越順;翻得太慢,就是一張一張斷開的靜態圖。
顯示器乾的事,本質上和這本翻頁本一模一樣:它每秒「翻」多少次給你看,就是更新率,單位是赫茲(Hz)。60Hz,就是每秒翻 60 頁。
聽起來簡單,但「每秒翻多少次」這件小事,背後藏著不少有意思的生理和物理問題。比如一個流傳很廣的說法是:人眼每秒只能分辨 24 幀,所以電影才用 24 幀,再高也是浪費。這話到底對不對?
先破一個迷思:人眼不是照相機
「人眼只能看 24 幀」是個被重複了無數遍的誤解。它的源頭其實很務實——1920 年代有聲電影剛出現時,24 幀是膠片成本和聲音同步品質之間的一個妥協,跟「人眼極限」沒半點關係。
人眼不是一台按快門拍照的相機,它更像一條一直在流水線上作業的感光管道。光線打在視網膜上,感光細胞產生反應,訊號傳到大腦,整個過程大概需要幾十毫秒,而且不會「清零重來」——前一幀的畫面還沒完全消退,新一幀就已經疊上來了。這種現象叫視覺暫留,殘留時間大約是 1/16 秒。
正是視覺暫留讓翻頁本、電影、顯示器裡的離散畫面,在我們眼裡變成了連續的動作。只要翻得夠快(大概每秒 15 幀以上),大腦就懶得去分辨「這是兩張圖」,直接腦補成運動。
但「能看成連續動作」和「能分辨出更順」是兩回事。研究表明,訓練過的人能察覺到遠高於 60Hz 的差異,戰鬥機飛行員甚至能在 1/200 秒的閃現裡認出飛機型號。所以高更新率不是玄學——你的眼睛確實感受得到,只是不像「看見一幀一幀」那麼直白,更多體現在「順滑」「跟手」「不拖影」這些微妙的感覺上。
順便解開另一個疙瘩:電影 24 幀不卡,遊戲 24 幀怎麼就卡?
有人會問:既然人眼能感受高刷,為什麼電影 24 幀看著挺順,遊戲跑到 24 幀就卡成幻燈片?
答案藏在「模糊」裡。電影攝影機拍攝時,快門在每一幀的曝光期間是打開的,運動物體在膠片上留下一條天然的模糊軌跡。這條模糊剛好填補了幀與幀之間的空缺,大腦看著就順。而遊戲畫面是逐幀渲染出來的,每一幀都銳利清晰,中間的運動過程是「空」的,24 幀之間就剩下一連串跳變,自然顯得卡。所以同樣是 24 幀,電影靠「真模糊」騙過了眼睛,遊戲卻把不連續暴露無遺。這也解釋了為什麼遊戲對更新率和幀率的要求,遠比看電影高。
那為什麼 60Hz 看著也還行?
既然越高越順,為什麼大家用了幾十年的 60Hz 螢幕,也沒覺得世界是卡頓的?這得回到更新率的另一半——運動模糊。
現實世界裡,物體移動是真正連續的,光訊號一直往你眼裡灌。而螢幕是離散的:每一幀之間有個極短的間隙,物體在這一幀和下一幀之間是「跳」過去的。這個跳躍在視網膜上拖出一條短暫的模糊痕跡。
幀率越高,跳躍越小,模糊越短,畫面就越清晰銳利。這就是為什麼從 60Hz 換到 120Hz,你會覺得「好像也沒什麼,但就是舒服了」——那種舒服,來自模糊變短、來自眼睛不用費力去腦補那些缺失的中間幀。
舉個更直觀的例子:一個白點在黑屏上勻速劃過。60Hz 時它一秒跳 60 次,每次跳的距離比較長,拖出一條明顯的尾巴;240Hz 時一秒跳 240 次,每次只挪一點點,尾巴幾乎消失,點看起來是「實」的。這正是 UFO 測試想讓你看到的東西。
順帶一提,「更新」這個詞本身就有來歷。早期的 CRT 顯像管,靠一支電子槍在螢光屏上一行行掃過去點亮像素,螢光粉亮一下很快就暗下去,所以電子槍必須不斷「重新刷」一遍才能維持畫面,refresh(更新)由此得名。今天的液晶和 OLED 螢幕早不用電子槍了,但這個叫法留了下來,「每秒刷多少次」的邏輯也保留至今——只不過現在刷的是整塊面板的像素狀態。
「生產」和「顯示」:一條流水線的兩個工位
到這裡可以聊聊更新率和幀率那個老生常談的區別了。很多人覺得這倆是一回事,其實它們是流水線上前後兩個工位。
幀率(FPS)是顯示卡這個「生產工位」每秒能造出多少張圖;更新率(Hz)是顯示器這個「顯示工位」每秒能擺出多少張圖。一個管造,一個管擺。
理想情況下,造多少擺多少,嚴絲合縫。但現實裡它們各跑各的,就會出現兩種尷尬:顯示卡造得太快、顯示器擺不過來,多出來的圖就被丟棄,或者兩張圖各顯示一半,於是畫面從中間斷開錯位——這就是撕裂;顯示卡造得太慢、顯示器沒的擺,只好把上一張圖再擺一遍,於是畫面像卡了一下——這就是卡頓。
垂直同步(VSync)就是強行讓顯示卡「等」顯示器,造一張擺一張,杜絕撕裂,代價是可能引入額外延遲。後來出現的 G-Sync、FreeSync 更聰明:不讓顯示器死等固定節奏,而是讓它跟著顯示卡的產出動態調整更新頻率——你造 80 張,我就刷 80 次。這就是可變更新率(VRR),也是現在高階螢幕的核心賣點之一。
瀏覽器是怎麼「數」出你的更新率的
說完原理,回到那個實際問題:網頁裡的測試,憑什麼能知道你的螢幕在跑多少 Hz?
這裡用到了瀏覽器一個很巧的介面,叫 requestAnimationFrame。它的設計初衷是讓動畫和螢幕更新同步:你把「畫下一幀」的指令交給它,它會在螢幕每次準備更新前精準地叫你一次。換句話說,這個介面被「焊」在了顯示器的同步訊號上。
於是測試的邏輯就很簡單了:開個碼錶,數這個介面一秒被叫了多少次。叫 60 次,就是 60Hz;叫 144 次,就是 144Hz。為了避免一兩次卡頓把數字帶偏,通常會攢夠幾百幀再算平均,最後歸整到 60、120、144、240 這些人們熟悉的檔位上。
有趣的是,這個「數數」的過程還能順便暴露一些螢幕之外的問題。比如你測著測著數字突然掉到 30,多半不是螢幕變了,而是瀏覽器發現你切到了別的分頁,為了省電把更新節流了;又比如多螢幕環境下,瀏覽器有時會遷就那塊更新率最低的螢幕,導致高刷螢幕的讀數也跟著掉。這些都是「數」出來的副產品,反倒幫你看清了整條顯示鏈路的狀態。
順便說說那個看不見的「閃」
最後聊一個更新率數字背後、卻經常被忽略的東西:背光頻閃。
你以為螢幕是穩定發光的,其實很多螢幕的背光是「一亮一滅」高速交替的,亮度越低,滅的時間越長。這叫 PWM 調光,在不少 OLED 螢幕上尤其常見。因為它閃得極快(幾百到上千赫茲),你的意識察覺不到「閃」,但視神經和睫狀肌會持續對這種明暗切換做出微反應。
這也是為什麼有些人長時間盯低亮度的 OLED 螢幕會覺得眼乾、眼脹,卻說不清原因。閃爍測試那種黑白整屏交替,誇張地放大了這個現象,讓你「看見」平時看不見的頻閃。它測的不是更新率本身,而是更新率背後那套調光機制對你的眼睛到底友不友好。
所以下次再看到「144Hz」「240Hz」這些數字,別只當成廠商的行銷話術。它們背後是一套關於視覺暫留、運動模糊、生產與顯示節奏配合的精巧設計,而你能用一個網頁測試,親手驗證這套設計在你這塊螢幕上到底有沒有跑通。
這大概就是科普最迷人的地方:那些藏在日常順滑感背後的小機器,一旦看懂了,世界就變得稍微不一樣一點。