Unity Stats 窗口詳解

Stats 窗口相詳解

名字

  • Statistices 窗口
  • 英文全稱: Rendering Statistics Window
  • 中文: 渲染統(tǒng)計(jì)窗口(渲染數(shù)據(jù)統(tǒng)計(jì)窗口)
窗口圖片

具體數(shù)據(jù)意思

FPS (Time per frame and FPS)

  • frames per seconds :引擎處理和渲染一個(gè)游戲幀所花費(fèi)的時(shí)間,該數(shù)字主要受到場(chǎng)景中渲染物體數(shù)量和GPU性能影響,FPS 數(shù)值越高,游戲場(chǎng)景的動(dòng)畫(huà)顯示會(huì)更加平滑和流暢.

  • 一般來(lái)說(shuō),超過(guò) 30 FPS的畫(huà)面人眼不會(huì)感覺(jué)卡,有視覺(jué)殘留的特性,光在視網(wǎng)膜上停止后,人眼會(huì)保持 1/24s 左右的時(shí)間,因此游戲畫(huà)面每秒幀數(shù)至少保證在30以上.

  • 獲取 FPS API: UnityStats.frameTime;

CPU

  • 獲取當(dāng)前占用CPU進(jìn)行計(jì)算的時(shí)間絕對(duì)值,或時(shí)間點(diǎn),如果Unity 主進(jìn)程處于掛斷或休眠,CPU time 保持不變

Render Thread

  • GPU 渲染進(jìn)程處理圖像所花費(fèi)的時(shí)間,具體數(shù)值有GPU性能決定

Batches

  • 全名: Batched Draw Calls
  • 詮釋: Unity 內(nèi)置 Draw Call Batching 技術(shù)
  • 什么是Draw Calls:
    • CPU每次通過(guò)GPU發(fā)出一個(gè)glDrawElements(OpenGL中的圖元渲染函數(shù))或者DrawIndexedPrimitive(DirectX的頂點(diǎn)繪制方式)的過(guò)程為一次 Draw Call.
    • 一般引擎每對(duì)一個(gè)物體進(jìn)行一次 DrawCall,就會(huì)產(chǎn)生一個(gè)Batch.
    • Batch里包含該物體的所有網(wǎng)格和頂點(diǎn)數(shù)據(jù),當(dāng)渲染另一個(gè)相同的物體時(shí),引擎會(huì)直接調(diào)用Batch信息,將相關(guān)頂點(diǎn)數(shù)據(jù)直接送到GPU,從而讓渲染過(guò)程更高效.
    • Batching 技術(shù)是將所有材質(zhì)相近的物體進(jìn)行合并渲染.
  • 對(duì)于一個(gè)有不同Shader和Material的物體,渲染是比較耗時(shí)的,因?yàn)闀?huì)產(chǎn)生多個(gè)Batch.每次的修改材質(zhì)和貼圖都會(huì)影響B(tài)atches的數(shù)據(jù)集的構(gòu)成.

優(yōu)化方案:

  1. 通過(guò)手動(dòng)方式合并材質(zhì)接近物體;
  2. 盡量不修改Batches物體的Scale,會(huì)生成新的Batch;
  3. 為提升GPU渲染效率,盡可能在一個(gè)物體上使用較少的材質(zhì),減少Batches過(guò)多的開(kāi)銷(xiāo);
  4. 不會(huì)運(yùn)動(dòng)的物體,考慮設(shè)置static,static 聲明的物體會(huì)自動(dòng)進(jìn)行內(nèi)部批處理
  • 獲取 Batch API : UnityStats.batches

SetPass calls

解釋: 一個(gè)游戲物體顯示特殊效果,它的的Material上帶有許多特定的Shader,為實(shí)現(xiàn)相應(yīng)的效果,Shader會(huì)包含很多Pass,每當(dāng)GPU運(yùn)行一個(gè)Pass之前,會(huì)產(chǎn)生一個(gè) SetPass call .

Batches and DrawCall 是繪制圖像的重要指標(biāo),作為衡量場(chǎng)景繪制的首要參考.
一個(gè)Draw Call = 呼叫一次 DrawlndexedPrimitive(DX) or glDrawElements(OGL) = Batch

25k bath/sec 的渲染會(huì)使 1GHz的CPU使用率達(dá)到100%
因此公式: 25Kn(GHZ)Percentage/Framerate = Batch/Frame

  • 獲取 SetPass calls API: UnityStats.setPassCalls

注: 面板中看到Batches是渲染總Batch = DrawCall,
但是 Unity可以獲取未批次處理之前的DrawCall.

Saved By Batching

  • 由于Batch減少DrawCall,可以間接的看到場(chǎng)景優(yōu)化的效果.
    有兩個(gè)部分組成: Static Batching 和 Dynamic Batching
  • Unity 內(nèi)建自動(dòng)合并,缺點(diǎn): 靜態(tài)合并會(huì)引發(fā)內(nèi)存和存儲(chǔ)的額外開(kāi)銷(xiāo),動(dòng)態(tài)合并會(huì)增加CPU的負(fù)擔(dān)
  • 材質(zhì)貼圖不同,可以貼圖合并; 使用ShawodCaster時(shí),材質(zhì)相同,貼圖不同也可合并渲染.

Dynamic Batches

  • 動(dòng)態(tài)合并滿足條件:
    1. 模型總頂點(diǎn)樹(shù)小于900
    2. 不包含鏡像transform改變,不改變Scale,
    3. 不適用多Pass的Shader.
  • 由于需要合并時(shí)通過(guò)CPU計(jì)算轉(zhuǎn)為世界坐標(biāo),這只在CPU消耗比DrawCall 消耗"便宜"才值得.這標(biāo)準(zhǔn)根據(jù)平臺(tái)有差異.
    如:在蘋(píng)果平臺(tái)上DrawCall消耗便宜,不該使用該技術(shù).
  • 設(shè)置此功能: Editor->Project Setting ->Player 設(shè)置
  • Unity Dynamic Batches API: UnityStats.dynamicBatches

Static Batches

  • 場(chǎng)景中不能移動(dòng)物體使用靜態(tài)合并,是不受定點(diǎn)數(shù)的限制,可以大幅度降低DrawCall.但為了將元素合并到一個(gè)大模型中,這項(xiàng)技術(shù)需要額外的內(nèi)存.主要內(nèi)存消耗在與共享多邊形會(huì)在內(nèi)存中重復(fù)創(chuàng)建.有時(shí)候就需要犧牲渲染效率來(lái)避免靜態(tài)合并,保證內(nèi)存夠小.

Tris 和 Verts

  • Verts : 攝像機(jī)事視野 (field of view) 內(nèi)渲染的定點(diǎn)數(shù).

  • Tris : 攝像機(jī)視野 (field of view) 內(nèi)渲染的三角面總數(shù)量.

  • Camera的渲染性能受到Draw Calls 影響.生成一個(gè)Draw Calls,它處理一個(gè)Draw Calls 的時(shí)間是有上邊的Tris和Certs數(shù)量決定.

  • Unity Stats 視圖中Tris 和Verts 不僅僅是視維中的梯形內(nèi)的Tris和Verts,而是 Camera 中 field of view 所有取值下的tris和verts.(假設(shè)Game視圖看不到這個(gè)Cube,如果當(dāng)你把 field of view 設(shè)定到179 過(guò)程中都看不到cube,stats面板才不會(huì)統(tǒng)計(jì),GPU才不會(huì)渲染,否則都是會(huì)渲染,而且Unity不會(huì)把模型拆分,所有哪怕只有一個(gè)頂點(diǎn)需要渲染,Unity 都會(huì)把整個(gè)模型都渲染出來(lái))

  • 獲取 Verts API: UnityStats.vertices

  • 獲取 Verts API: UnityStats.triangles

Screen

  • 獲取當(dāng)前Game屏幕的分辨率的大小,后面的值表是總內(nèi)存使用
  • 獲取 Screen API: UnityStats.screenRes

Shadown casters

  • 表示場(chǎng)景中有多少個(gè)可以投射陰影的物體,一般這些物體作為場(chǎng)景中的光源
  • 獲取 Screen API: UnityStats.shadowCasters

Visible skinned meshed

  • 渲染皮膚網(wǎng)格的數(shù)量
  • 獲取 Screen API: UnityStats.visibleSkinnedMeshes

Animations

  • 正在播放動(dòng)畫(huà)的數(shù)量
  • 獲取 Animations API: UnityStats.visibleAnimations

如果想了解更多關(guān)于渲染的信息,打開(kāi)Unity的Profiler窗口
打開(kāi)方式:
快捷鍵 Ctrl + 7
Window --- Profiler
右鍵 -- AddTab -- Profiler


Profiler界面

此文章摘錄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娶眷,一起剝皮案震驚了整個(gè)濱河市粱坤,隨后出現(xiàn)的幾起案子茵典,更是在濱河造成了極大的恐慌,老刑警劉巖挖垛,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件次伶,死亡現(xiàn)場(chǎng)離奇詭異茅撞,居然都是意外死亡帆卓,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)米丘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)剑令,“玉大人,你說(shuō)我怎么就攤上這事拄查⊥髡螅” “怎么了椅亚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵故黑,是天一觀的道長(zhǎng)膀钠。 經(jīng)常有香客問(wèn)我想诅,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮役拴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钾埂。我一直安慰自己河闰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布褥紫。 她就那樣靜靜地躺著淤击,像睡著了一般。 火紅的嫁衣襯著肌膚如雪故源。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天汞贸,我揣著相機(jī)與錄音绳军,去河邊找鬼。 笑死矢腻,一個(gè)胖子當(dāng)著我的面吹牛门驾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播多柑,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼奶是,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了竣灌?” 一聲冷哼從身側(cè)響起聂沙,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎初嘹,沒(méi)想到半個(gè)月后及汉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屯烦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年坷随,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驻龟。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡温眉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翁狐,到底是詐尸還是另有隱情类溢,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布露懒,位于F島的核電站豌骏,受9級(jí)特大地震影響龟梦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窃躲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一计贰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蒂窒,春花似錦躁倒、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至衰抑,卻和暖如春象迎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呛踊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工砾淌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谭网。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓汪厨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親愉择。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劫乱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容