定義
一樣先從定義開始
FPS, Frame Per Second,指的是一個圖形裝置每秒可以完成幾張圖像。
Vsync (Frame rate; Refresh rate),垂直掃描頻率,指的是一個顯示裝置每秒更新其顯示內容的次數。註1
圖形裝置可想成顯卡,而顯示裝置可想成螢禜幕。講實際一點,fps指的是顯卡每秒可丟出丟少個frame,而vsync是對於顯卡丟出來的東西,每秒更新幾次。很明顯的這兩個很有關係!
關係
如果顯卡1秒丟60張,而螢幕1每更新60次,那就是相符的狀況,在game裡面,這叫做垂直同步。理論上,垂直同步的效果是會比較好,或者是說人眼比較可以接受。在沒有同步的情況下,例如顯卡設成120fps,而螢幕仍為60Hz,那表示螢幕更新一次時,顯卡丟了兩張frame,就有可能產生上半部是前一張,而下半部是後一張的情況。而當fps小於vsync時可能會產生的情況是在螢幕做一次更新時,一個frame還未完成 (因fps< vsync),這樣也有可能會造成一半舊frame,一半新frame的結果!
補充
有vsync,那有沒有hsync呢?是有的,可稱之為水平掃瞄頻率,定義上是每秒要畫多少條水平線,通常以KHz為單位,公式如下:
水平掃瞄頻率= 畫面上的掃描線數目 x 每秒有幾個畫面 = 垂直解析度 x 垂直掃描頻率
例如解析度為1024x768@60時,hsync=768x60=46.08KHz。但若加上blanking的話,就是795x60=47.7KHz,可參考:
root:/home/# gtf 1024 768 60
# 1024x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 64.11 MHz
Modeline "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
註1: 本文所指的vsync,單指vertical sync,而與game裡常見的設定vsync是不一樣的。game中的vsync指的就是垂直同步這件事。
Reference
留言列表