Terminology

什麼是垂直同步,我應該何時啟用它?

  • April 7, 2015

大多數現代 3D 遊戲都有圖形選項“V-Sync”。它通常是開/關設置。我想了解我調整的設置,而這種設置讓我望而卻步。

“垂直同步”是什麼意思,我應該什麼時候打開它?


我嘗試了一些方法來回答我自己的問題:

  • 搜尋拱廊。關於啟用它的方式有一個更深入的問題,另一個關於為什麼將 FPS 限制為螢幕刷新率不會防止撕裂的具體問題,以及其他幾個特定於遊戲或硬體的問題,但沒有真正的問題或解釋它是什麼或何時使用它的答案。
  • 使用Google 搜尋,這會導致關於 tomshardware 的一個體面但非常摘要的論壇文章。它確實在某種程度上解釋了它是什麼,但沒有很詳細,也沒有關於何時打開它。
  • Wikipedia 上的一個子條目,它 (a) 相當短,並且 (b) 顯然是百科全書,而不是針對決定是否使用此選項的遊戲玩家。

最後,我嘗試在各種遊戲中弄亂設置,主要是當我看到並在Google上搜尋我在某些遊戲中的圖像“撕裂”時,但我仍然無法以遊戲玩家為導向的解釋什麼和什麼時候……

作為一個遊戲玩家對一個遊戲玩家:請告訴我選項是什麼,並給我一個經驗法則,我應該(並且不應該*)*考慮打開/關閉它?

V-Sync 是“垂直同步”的縮寫;它的唯一目的是避免遊戲中的螢幕撕裂

什麼是螢幕撕裂?

描繪模擬撕裂的圖像 圖片由 Vanessaezekowitz 提供,來自 Wikimedia Commons。在CC-By-SA 3.0許可下使用。

螢幕撕裂會發生,因為當後者尚未完成顯示其前一幀時,您的 GPU 會向您的螢幕發送一幀。您實際上是在同時看到一幅圖像的一部分和另一幅圖像的一部分。由於兩個圖像通常看起來非常相似,看起來圖片已經被撕裂,因此得名“螢幕撕裂”。

V-Sync 確保 GPU 在螢幕繁忙時不會發送幀。有多種方法可以實現這一目標。最廣為人知的使用雙緩衝或三緩衝。

當使用雙緩衝時,GPU 使用兩個幀緩衝;“前緩衝區”儲存發送到螢幕的幀,“後緩衝區”儲存下一個要顯示的圖像。

與雙緩沖不同,三重緩衝使用兩個後台緩衝區。一旦 GPU 完成下一幀,它就可以開始處理第二個後台緩衝區。如果在 GPU 填滿兩個後台緩衝區時螢幕仍未準備好,GPU 現在可以安全地覆蓋第一個後台緩衝區。這樣做的好處是,它減少了第 2 點中提到的滯後(見下文)。缺點是擁有一個額外的緩衝區需要更高的記憶體。

最近,一項旨在取代 V-Sync 的新技術被引入:G-Sync (Nvidia) 和FreeSync (AMD)。就像 V-Sync 一樣,它們的目的是消除畫面撕裂,但現在畫面會等待 GPU,如果後者無法提供足夠快的幀,則基本上消除了下面的第 3 點。


從遊戲玩家的角度來看,V-Sync 執行以下操作:

  1. 它消除了螢幕撕裂。至少它應該;我見過帶有錯誤 V-Sync 的遊戲,打開此選項並不能完全消除撕裂。
  2. 它引入了口吃或滯後。由於您的 GPU 現在必須等待螢幕準備好,您將在螢幕上看到的幀幾乎永遠不會是最新的。大多數人沒有註意到它和/或發現螢幕撕裂比前者更容易分散注意力。
  3. 如果您的 GPU 無法匹配螢幕的刷新率,它將影響您的幀率。例如,它會嘗試每 16.6 毫秒(1/60 秒)為 60 Hz 螢幕提供一幀。如果它不能足夠快地產生一幀,它就必須等待螢幕的下一個刷新周期才能顯示它。如果這種情況經常發生,即您的 GPU 不能每 16.6 毫秒提供幀,那麼您的有效幀速率將在刷新的整數倍之間反彈,也就是說,有時它會是 30 而不是 60。

根據經驗:

如果您佔多數並擁有典型的 60 Hz 顯示器:

  • 如果您玩第一人稱射擊遊戲有競爭力,和/或有感知輸入延遲問題,和/或如果您的系統在給定標題中無法維持至少 60 FPS,和/或您正在對顯卡進行基準測試,那麼您應該關閉垂直同步。
  • 如果以上都不適用於您並且您遇到明顯的螢幕撕裂,那麼您應該打開垂直同步。
  • 作為一般規則,或者如果您對任何一種方式都感覺不強烈,請關閉垂直同步。

另一方面,如果您擁有面向遊戲的 120/144 Hz 顯示器(如果您有,那麼您很有可能專門購買它是因為它具有更高的刷新率):

  • 您應該考慮僅在玩較舊的遊戲時才打開垂直同步,在這些遊戲中您會遇到持續的 >120 FPS並且您正在經歷螢幕撕裂。

如果滯後比撕裂更讓你感到不安,你可能想把它關掉。

如果即使在啟用 V-Sync 的情況下仍然看到撕裂 - 例如在 V-Sync 實現有問題的遊戲中 - 您可能需要將其關閉以查看撕裂是否會變得更糟;如果沒有,那麼 V-Sync 可能根本不起作用(在那個特定的遊戲中)並且沒有理由繼續使用它。

引用自:https://gaming.stackexchange.com/questions/198184