與 VSync 有什麼關係?
我經常在遊戲中遇到關於幾乎所有現代 3D 遊戲中存在的垂直同步 (VSync) 選項的非常強烈的觀點。該選項應該使遊戲輸出與顯示器刷新率同步,從而防止圖像撕裂。
有人說它會導致延遲,其他人說應該啟用它,因為它看起來更好並且無論如何都不會受到傷害。我還聽說它通常會降低幀速率,而不僅僅是當幀速率受到顯示器刷新率的限制時。
那麼,VSync 的技術缺點是什麼?有什麼正當理由可以在遊戲中禁用它?
這篇論壇文章盡可能詳細地解釋了 VSync。
http://hardforum.com/showthread.php?t=928593
它的要點是垂直同步停止螢幕撕裂。
螢幕撕裂是因為幀緩衝區在寫入螢幕時被下一幀填滿一半。VSync 在影片卡和幀緩衝區之間引入了一個後台緩衝區,該緩衝區儲存下一幀,然後等待螢幕刷新,然後再將自身複製到幀緩衝區。刷新信號稱為 VSync 脈衝(來自模擬)。這可以阻止撕裂的發生,但在某些情況下可能會導致影片性能顯著下降。當幀率低於刷新率時,就會出現這些情況。在這些情況下,在最壞的情況下,您的性能可能會下降多達 50%。
Triple Buffered VSync 通過添加另一個緩衝區在雙緩衝的基礎上進行了改進,並導致更小的性能損失。事實上,只要卡可以繪製幀(仍然與刷新同步),您就會看到幀,因為卡永遠不必閒置,它總是有一個可以寫入的緩衝區。唯一的損失是用於保存緩衝區的 VRAM 的少量損失以及將它們複製到幀緩衝區所花費的額外時間。這是可以忽略不計的。
僅在螢幕撕裂時才擔心 VSync。不要擔心在三重緩衝系統上啟用它。如果它只是雙緩衝,那麼這是個人選擇,是刷新率和撕裂之間的權衡。
對於更感興趣的:
從技術上講,垂直同步不需要第二個緩衝區。在渲染螢幕只需要刷新之間時間的一小部分的情況下,可以使用 VSync 脈衝來確定將新資訊寫入螢幕緩衝區的時間。如果渲染時間 < 刷新間隔。
當您玩遊戲時,渲染所需的時間要長得多。每當渲染時間 > 刷新間隔時,在 VSync 脈衝上寫入緩衝區將導致撕裂。第二個緩衝區可防止發生此螢幕撕裂,但意味著您可以在多次刷新後查看同一幀。這也意味著一旦後台緩衝區已滿,在垂直同步發生之前,卡就沒有地方寫下一個渲染了。這意味著實際上影片遊戲中的 VSync 總是會引入額外的緩衝區。
添加第三個緩衝區後,卡片可以在後台緩衝區已滿並等待刷新時寫入下一個渲染。
這些知識來自於為嵌入式系統程式顯示驅動程序。