Unity優化知識小結

Unity優化知識小結

概述:

Unity項目的優化是每個開發團隊中必備的技能,以前雖然也知道如何去優化,但是一直沒有系統的總結過,剛好最近在看SHADER的書籍,其中講到了優化的知識,所以特地總結一下,這樣也可以讓自己的對優化的瞭解更加系統。

優化,首先要知道爲什麼要優化?爲了能保證遊戲在預期的幀率和分辨率下工作。在開始優化前,我們可以通過unity自帶的渲染分析工具來查看渲染中的數據信息,這些數據信息可以幫助我們分析遊戲渲染性能,從而幫助我們更加有針對性的進行優化。查看渲染數據有以下幾種方式,

Stats(渲染統計窗口)


參數詳解:

渲染統計窗口主要包括三個方面的信息:Audio,Graphics,Network,重點就是第二個方面,圖形方面。

在Graphics中,給出了渲染一幀需要的時間和每秒傳輸的幀數,和批處理數量,節省的批處理數目,三角面數目和頂點數目,屏幕的大小以及佔用的內存,通道呼叫,以及陰影等。

1378.2FPS(0.7ms) :這個參數表示每秒傳輸的幀數是1378.2幀,這個值越大遊戲越流暢,0.7ms表示渲染一幀需要的時間。(單位換算:1s=1000ms)

CPU/render thread :前者表示獲取的cpu進行渲染設置當前幀需要的時間,後者表示GPU處理渲染所需要的時間。

Batches:表示花費的批處理數目

Saved By batching :表示節省的批處理數目

Tris&Verts:表示三角面和頂點數目

Screen:當前屏幕大小以及佔用的內存

SetPass:shader中的通道渲染 

Shader caster:陰影數目

Visible skinned meshes & Animations:渲染的蒙皮網格數目以及動畫數目

通過渲染統計窗口的各個數值表達,我們就可以具體看出在渲染輸出中到底是哪一部分數據對遊戲性能進行降低,這樣更加有針對性的進行渲染。上圖中的數據,是因爲存在攝像機,天空盒子之類的,當我們刪除了天空盒禁用了攝像機之後,同時注意,Audio裏面的數值靜音或者無聲音時候默認74.8dB。


接着打開一個真正的遊戲工程,我們來看看真實的渲染數據是什麼樣的:


這樣通過渲染統計窗口,我們就能對這個渲染過程中的數據有一個整體把握,從而有針對性的進行渲染性能瓶頸查驗,從而找到提高渲染性能的方法。不只是通過渲染統計窗口可以查看渲染數據信息,通過另外一種渲染分析工具也可以實現,那就是profile(性能分析器),如下圖:


我們可以從地下的詳細數據看到,這些數據和我們的渲染統計窗口是符合的,但是通過拖到渲染調試基準線,會發現有的時候有些數目會大於渲染統計窗口中的數目,比如上圖中的批處理數目爲57,渲染統計窗口中的數目爲56,這是因爲unity背後還要爲我們做一些別的工作,因此會耗費更多的drawcall。


好了這兩種工具,配合使用能夠更加清晰明瞭的瞭解性能優化方面的具體該怎麼去做。

(未完待續.....)

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