基於Unity3d 引擎的Android遊戲優化(續)

VSync Count 垂直同步

中新建一個場景空的時候,幀速率(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自然要受到操作系統刷新率運行值的制約。

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

更多unity2018的功能介紹請到paws3d學習中心查找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章