天天看點

VSync Count 垂直同步

Unity3D中建立一個場景空的時候,幀速率(FPS總是非常低)。大概在60~70之間。

一直不太明确是怎麼回事。如今基本上明确了。我在這裡解釋一下原因,如有錯誤,歡迎指正。在Unity3D中當執行場景打開Profiler的時候,我們會看到VSync 這一項占了非常大的比重。這個是什麼呢,這個就是垂直同步,稍後再做解釋。我們能夠關閉VSync來提高幀速率,選擇edit->project settings->Quality 在右側面闆中能夠找到VSync Count

把它選成Don't Sync。這就關閉了VSync(垂直同步)。如今在執行場景看看,幀速率是不是提高非常多。

       如今來說說什麼是垂直同步,要知道什麼是垂直同步,必需要先明确顯示器的工作原理。顯示器上的全部圖像都是一線一線的掃描上去的,不管是隔行掃描還是逐行掃描。顯示器都有兩種同步參數——水準同步和垂直同步。

       什麼叫水準同步?什麼叫垂直同步?

       垂直和水準是CRT中兩個主要的同步信号。水準同步信号決定了CRT畫出一條橫越螢幕線的時間,垂直同步信号決定了CRT從螢幕頂部畫究竟部。再傳回原始位置的時間,而恰恰是垂直同步代表着CRT顯示器的重新整理率水準。

       為什麼關閉垂直同步信号會影響遊戲中的FPS數值?

       道理一點都不複雜。首先我們平時執行作業系統一般螢幕重新整理率是多少?大概一般都是在85上下吧,那麼顯示卡就會每依照85的頻率時間來發送一個垂直同步信号。信号和信号的時間間隔是上兩次螢幕更新的時間間隔。

假設我們選擇等待垂直同步信号(也就是我們平時所說的垂直同步打開),那麼在遊戲中也許強勁的顯示卡迅速的繪制完一屏的圖像,可是沒有垂直同步信号的到達。顯示卡無法繪制下一屏。僅僅有等85機關的信号到達,才幹夠繪制。這樣FPS自然要受到作業系統重新整理率執行值的制約。

        而假設我們選擇不等待垂直同步信号(也就是我們平時所說的關閉垂直同步),那麼遊戲中作完一屏畫面。顯示卡和顯示器無需等待垂直同步信号就能夠開始下一屏圖像的繪制。自然能夠全然發揮顯示卡的實力。

可是不要忘記。正是由于垂直同步的存在,才幹使得遊戲程序和顯示器重新整理率同步。使得畫面更加平滑和穩定。取消了垂直同步信号,固然能夠換來更快的速度,可是在圖像的連續性上勢必打折扣。

這也正是非常多朋友抱怨關閉垂直後發現畫面不連續的理論原因。