U3D 垂直同步


  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自然要受到操作系統刷新率運行值的制約。

        而如果我們選擇不等待垂直同步信號(也就是我們平時所說的關閉垂直同步),那么游戲中作完一屏畫面,顯卡和顯示器無需等待垂直同步信號就可以開始下一屏圖像的繪制,自然可以完全發揮顯卡的實力。但是不要忘記,正是因為垂直同步的存在,才能使得游戲進程和顯示器刷新率同步,使得畫面更加平滑和穩定。取消了垂直同步信號,固然可以換來更快的速度,但是在圖像的連續性上勢必打折扣。這也正是很多朋友抱怨關閉垂直后發現畫面不連續的理論原因。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM