什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?

前言:

之前我的文章《遊戲內畫質選項怎麼設置》一文詳細說了各個設置對於畫面的影響,但是我並沒有提到垂直同步與三重緩衝,而垂直同步基本上是每一個遊戲都有的選項,因為這兩個東西介紹起來非常麻煩,不是三言兩語能說清楚的,那麼這裡就單獨開一篇文章來詳細給大家介紹一下什麼是垂直同步,什麼是三重緩衝。垂直同步到底要不要開,垂直同步和三重緩衝到底有什麼用。

這篇文章的文章部分為本人撰寫,但是圖片與GIF來自Bilibili視頻作者:啃芝士,本文的素材已獲得啃芝士本人口頭同意授權。他經常科普一些乾貨滿滿的視頻,大家有興趣的可以看看,啃芝士個人主頁鏈接:嗶哩嗶哩 ( ゜- ゜)つロ 乾杯~ Bilibili

這篇文章我雖然盡力精簡語言,但還是異常難理解,所以如果想看懂,不要跳字不要跳行,一句一句看。

正文部分:

在瞭解垂直同步之前,我們需要了解一些基礎概念。

【幀的概念】


什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?


這個玩具想必各位小的時候都玩過,就是畫很多具有微小變化的單張畫,然後按照順序連續翻頁,就會達到一種“動畫”的感覺。

我們的顯示器也是這樣的,你看顯示器上是“動畫”,就和上面那個簡易玩具一樣,顯示器也是靠連續播放無數張靜態畫面來達到一個視覺上的錯覺,通過人眼的視覺暫留,讓你的眼睛誤以為這是動畫。

顯示器都有一個自己的刷新頻率,60Hz的顯示器一秒鐘就是刷新60張畫面,144Hz顯示器就是一秒鐘刷新144張畫面。這當中,每一張畫面我們都稱之為一幀。

顯示器的刷新率是固定的,比如60Hz顯示器那麼他就是固定每隔1/60秒刷新一幀。

【顯卡的作用】

顯示器只是一個顯示設備,他並不知道自己要顯示什麼,所以必須有東西來告訴他你要顯示什麼畫面,這個東西就是顯卡,顯卡的作用就是繪製“幀”,然後把幀發給顯示器,顯示器收到幀之後,開始往顯示器上顯示。

什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?

【逐行掃描】

顯示器刷新一幀的時候並不是一次性把整個畫面全部刷新出來,他是從上到下一行一行逐漸把圖片繪製出來的,具體的是什麼情況,一張gif就能很好的說明了。除了逐行掃描外還有隔行掃描,至於區別就是一個是一行一行畫,一個是隔著一行畫。目前大多數顯示器採用的都是逐行掃描。老設備帶寬不足只能隔行掃描,現在的新設備基本都是逐行掃描了。


什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?


該GIF來自Bilibili up主啃芝士視頻:1080P與1080i的區別

也就是說60HZ的顯示器並不是說屏幕一秒閃60次畫面,而是60HZ的顯示器一秒可以逐行掃描60次,你看到的幀是一行一行畫出來的,而不是一張一張閃的。

【顯示器的前緩存和後緩存】

因為顯示器是固定刷新率的,比如60Hz顯示器就是固定每隔1/60秒逐行掃描繪製完成一幀,顯示器只管顯示畫面就行了,所以他是固定的,但是顯卡渲染畫面就是有波動的,因為你在玩遊戲的時候,畫面一直在變化,畫面的複雜程度也在變化,但是你的顯卡性能是不變的,所以就會導致簡單場景顯卡輸出幀數高,複雜場景幀數輸出低,舉個很簡單的例子,你在遊戲裡看著一個油桶,由於油桶畫面簡單,顯卡一秒輸出了100幀,但是突然油桶爆炸了,碎片亂飛,這時候畫面突然複雜,顯卡在這一秒就只輸出了80幀。所以顯卡的輸出幀是波動的。

另外顯卡輸出來的幀數間隔也不一樣,比如第一幀與第二幀中間間隔0.01秒,第二幀與第三幀結果間隔了0.04秒,第三幀與第四幀間隔0.03秒,他並不是像顯示器那樣固定刷新率,他會受到你遊戲的波動影響。前半秒1幀,後半秒59幀,那你看幀數其實也是60。但是前半秒的幀生成時間就很長了。

那麼一個固定輸出的顯示器和一個波動的顯卡搭配,為了避免衝突,我們不能讓顯卡直接去給顯示器繪圖,而是添加了一個緩存,這就是顯示器的前後緩存,顯示器在默認情況下是有2個緩存的.

顯示器會讀取前緩存內的圖片,並利用逐行掃描顯示到顯示器面板上,而顯卡這時候會去繪製後緩存裡的畫面,然後顯示器繪製完前緩存的畫面,就會去讀取後緩存裡的畫面,然後顯卡去繪製前緩存裡的畫面。


什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?


【畫面撕裂】

那麼這裡就有一個很有趣的情況,因為逐行掃描需要時間這個時間是固定的,但是顯卡刷新不是固定的,那麼顯卡很有可能會:搶跑,也就是繪圖速度超過顯示器。

什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?

假如顯示器還沒有顯示完前緩衝的畫面【1】,還在逐行掃描進行中只畫了一半,顯卡已經畫好了後緩衝的畫面【2】。這時候顯示器正在畫前緩存的畫面【畫了一半的1】,顯卡不會停下來,他畫完後緩存【2】會直接過來覆寫前緩存【開始往前緩存寫3】

這裡就會出現一個情況:顯示器上半部分是第一幀【半個1】因為還沒逐行掃描完,第二幀【2】在後緩存裡顯示器還沒有讀取到,而顯卡開始往前緩存裡寫第三幀【3】,那麼顯示器的下邊就會顯示第三幀的畫面【半個3】。

這就是畫面撕裂現象,具體的效果看圖你們就知道了

什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?

【錯幀現象】

就還拿上面那個123舉例,顯卡輸出3幀,顯示器走3hz,【1】在畫面上就顯示了一半,【2】被寫入了後緩存等待輸出,【3】在畫面上也顯示了一半,那麼就很有意思了,顯示器第一Hz的時候,上面有半個1,下面半個3,第二Hz是個完整的2,第三Hz是完整的3,所以實際上你並沒有看見完整的3幀,雖然你的電腦顯示是3fps,你的肉眼只看見了2.5幀,

所以雖然很多人對於遊戲畫面流暢的定義是60FPS,但是你要清楚的就是,在你不能保證顯卡輸出的幀和顯示器刷新率完美契合,那麼顯卡輸出60FPS實際上是不流暢的,因為你的顯示器一直會發生錯幀現象,你可能就會看到50幀的畫面,所以這就是為什麼,保證遊戲畫面流暢的幀數需要高於60而不是等於60。

【垂直同步】

那麼為了避免顯卡“搶跑”這種事情發生,這時候就有一項技術,叫垂直同步,垂直同步的作用就是強制顯卡和顯示器同步,如果顯示器還在顯示前緩衝,顯卡畫好了後緩衝,那這時候禁止顯卡進行繪圖,直到顯示器把前緩衝的畫面顯示完整了,顯示器跳後緩衝後,才允許顯卡去繪製前緩衝。簡單理解就是強制顯卡的刷新率和顯示器刷新率完美契合。那如果你是60HZ顯示器,開了垂直同步就會被鎖60了。

這樣一方面可以解決畫面撕裂現象,因為不會出現緩衝還沒畫完被覆寫的情況了。

另一方面也可以解決錯幀現象。這裡你可以做一個實驗:

不開垂直同步,鎖定60幀,然後玩一分鐘,再打開垂直同步,再玩一分鐘,你會發現,同樣是60幀,開了垂直同步會比不開畫面流暢,因為不會發生錯幀了。

【垂直同步的弊端——鼠標延遲】

但是,垂直同步這麼好,為什麼很多人都不開啊?這裡就要提到一個鼠標反饋了。假如你移動了1CM的鼠標,這時候,電腦收到這個消息,直接把移動1CM鼠標輸出給顯卡,顯卡收到後,把鼠標移動這個畫面輸出給顯示器,那麼這裡就是瞬間完成,所有的請求都不會被延後,延遲就是電路延遲而已。

但是如果你開了垂直同步,顯卡繪製完成後緩衝後,顯示器還沒顯示完前緩衝,顯卡只能在這裡等著,那麼你鼠標移動1CM這個指令會和顯卡一塊在這裡等著,直到顯示器繪製完成前緩衝,你移動鼠標這個畫面才會被寫入顯示器後緩衝。

那麼等於你操作鼠標的指令,路途上需要等個紅綠燈,這樣無形間就會增加延遲,所以打開垂直同步後,你會發現鼠標有粘滯感,就感覺你的操作反饋到屏幕上都要滯後那麼一點點。所以這裡就是為什麼不推薦第一人稱射擊類遊戲和MOBA遊戲打開垂直同步。

【三重緩衝】

那麼這裡有一個名詞就可以解釋了,那就是三重緩衝,默認情況下顯示器只有2個緩衝區,而打開三重緩衝後,顯示器就有了3個緩衝區。這樣你的鼠標移動指令的滯後會被提前,但是治標不治本,這頂多就是減少道路上紅綠燈的時間,你和關閉垂直同步那種無紅綠燈比,還是有鼠標延遲。所以打開三重緩衝後,只能緩解鼠標延遲,但是不能根治。

什麼是畫面撕裂?垂直同步,G-sync,Freesync到底有啥用?

【G-sync與freesync】

既然垂直同步有鼠標延遲,那麼我們想另一個辦法來解決畫面撕裂和錯幀,既然顯卡是波動的,那麼我們讓顯示器也波動不就行了麼,這就是G和F技術,搭載G-sync和freesync的顯示器可以動態調整他們的刷新率而不是固定的1/60秒或者1/144秒掃描完一張畫面,他會去適應顯卡的輸出幀,而不是在這裡等著,說白了就是:顯示器刷新率變頻技術。這樣的話不僅可以解決畫面撕裂,解決錯幀,還可以保證幾乎沒有的鼠標延遲。

但是因為是顯示器去適應顯卡,所以如果你的顯卡輸出幀遠高於顯示器刷新率的時候,G和F只能解決顯示器本身刷新率內的錯幀和畫面撕裂情況,高於顯示器刷新率的幀數就不會被顯示出來了,這些幀就被浪費掉了。所以如果你的顯示器開啟了G或者F,推薦就把幀數限制在和你的顯示器一樣就行,但是不要開垂直同步。

但是這裡就有個問題,G-sync技術是N卡專用的,你必須要用N卡,配合G-sync顯示器才能激活這項功能,Freesync技術是A卡專用,你必須要使用ATI(AMD)的顯卡才能激活這項功能。而這裡就又有一個問題,G-sync是需要在顯示器內植入芯片的,而且需要不小數目的授權費,所以G-sync的顯示器起步價都大多是3000了,而Freesync雖然是免費的,只需要顯示器廠家去和AMD授權一下就行,但是A卡的高端力量又不足,最強的VEGA64也就是摸到1080的尾巴。所以G太貴,F又沒什麼好顯卡搭配,最後說到底還是錢包不足的問題。

【N卡能不能用Freesync顯示器?A卡能不能用G-sync顯示器?】

經常有人問我,大佬大佬,我的顯示器是Freesync的,但是我要買的顯卡是N卡,會不會不支持點不亮啊,這個問題實際上你根本不需要擔心,G和F只是顯示器的一項附加功能,你的顯卡和顯示器不匹配的話,只是不能開啟這項功能罷了,你還是可以把它當成一個普通顯示器來用,就當這項功能不存在就行了。比如你用N卡搭配F的顯示器,完全可以正常用,只是你開啟不了Freesync這項功能罷了,A搭配G同理。

那麼全文到這裡也就結束了,相信大家也瞭解了什麼是垂直同步,以及顯示器的工作原理,那麼話題到這裡就有了另一個話題:144顯示器的提升到底有多明顯?這個文章那就等日後有空再寫了。


最後,如果你覺得我的文章寫的不錯,對你有幫助的話,那就點一波關注吧,你的關注是對我最大的支持!!!


分享到:


相關文章: