Unity3d面向英特爾? x86 平臺的 Unity* 優(yōu)化指南: 第 3 部分

目錄

編輯器優(yōu)化

遮擋剔除

LOD:細(xì)節(jié)級別

陰影

使用一個攝像頭

渲染隊列排序

光照貼圖

針對復(fù)雜模型熄云,使用簡單的碰撞器代替網(wǎng)格碰撞器

返回至第 2 部分教程:

面向英特爾? x86 平臺的 Unity* 優(yōu)化指南: 第 2 部分

編輯器優(yōu)化

遮擋剔除

遮擋剔除是 Unity 的一種特性鳞滨,可幫助您剔除被攝像頭可視范圍內(nèi)其他物體遮擋的物體恤煞。我們以奇幻 MMORPG

為例來做簡單說明癞松。如果玩家前往一座具有延綿大城的巨大城堡函卒,那么您真的希望將系統(tǒng)資源用于渲染城墻內(nèi)所有被遮擋住的商店/玩家嗎适瓦?答案是否定的驯遇。遮擋剔

除可幫您解決這個問題(圖 21)。

圖 24.遮擋說明

遮擋剔除可通過整體減少繪制調(diào)用的發(fā)送來緩解 GPU 的處理壓力(如果遮擋剔除計算可相比保存驅(qū)動程序調(diào)用花費更少的時間捎琐,則可能還會減輕 CPU 負(fù)載)抑钟。 在設(shè)置遮擋剔除時,了解 Unity 使用的一些術(shù)語會比較有幫助野哭,因為這可以幫助您設(shè)置執(zhí)行剔除的場景。

遮擋物 (Occluder) – 充當(dāng)屏障的任何物體幻件,可防止對可視范圍內(nèi)被遮擋的物體(被遮擋物)進(jìn)行渲染拨黔。

被遮擋物 (Occludee) - 由于被遮擋物遮擋而無法被渲染到屏幕上的任何物體。

您碰到的大部分物體都有可能會成為被遮擋物或遮擋物绰沥,具體取決于攝像頭方向和游戲邊界篱蝇。比較值得推薦的做法是,通覽全部場景徽曲,選擇多個應(yīng)

該包含在遮擋剔除計算中的物體零截,并將其標(biāo)記為“靜態(tài)遮擋物 (Occluder Static)”或“靜態(tài)被遮擋物 (Occludee

Static)”。

圖 25.如何在檢視面板中設(shè)置遮擋物和被遮擋物

增加遮擋剔除流程的最后一步是烘培場景秃臣。

這可通過打開遮擋剔除窗口(位置:Window>Occlusion Culling)來完成涧衙。 您將會看到一個如圖 20

所示的窗口,其中具有從較高性能 / 較低準(zhǔn)確率到較低準(zhǔn)確率 / 較高性能的各種不同的調(diào)整技巧奥此。 您應(yīng)該在您的應(yīng)用中使用“最低有效量”技巧弧哎。

圖 26.遮擋窗口和調(diào)整按鈕

設(shè)置完遮擋剔除系統(tǒng)之后,請認(rèn)真設(shè)置您的遮擋區(qū)域稚虎。在默認(rèn)情況下撤嫩,Unity 將整個場景作為遮擋區(qū)域,這可導(dǎo)致沒有意義的計算蠢终。 為確保不使用整個場景序攘,需手動創(chuàng)建遮擋區(qū)域,并環(huán)繞僅包含在計算中的區(qū)域寻拂。

Unity 可支持您形象地看到遮擋剔除系統(tǒng)中的每一部分程奠。 要想查看您的相機卷、可見性線和門戶兜喻,則只需打開遮擋剔除窗口 (Window

> Occlusion Culling) 并點擊 Visualization 選項卡便可梦染。

這樣您便可形象地看到場景視圖中的所有這些要素了。

圖 27.場景視圖中的遮擋剔除可視化圖

更多信息請訪問:http://docs.unity3d.com/Manual/class-OcclusionArea.html

LOD:細(xì)節(jié)級別

細(xì)節(jié)級別 (LOD) 組件可支持游戲?qū)ο笤诓煌募?xì)節(jié)級別上轉(zhuǎn)換網(wǎng)格,具體取決于物體與攝像頭的距離帕识。 LOD

特性可幫助顯著降低一個幀對內(nèi)存的要求泛粹,同時幾乎不會對視覺逼真度產(chǎn)生影響。 通過在較低的 LOD 級別上提供較少的幾何圖形肮疗,調(diào)整 LOD

可緩解輸入裝配器和頂點著色器的壓力晶姊。

您可以通過查看 Unity 分析器來確認(rèn) LOD 特性是否已啟用。 具體方式為:打開“CPU 使用”分析器伪货,并向下導(dǎo)航至 Camera.Render > Drawing > Culling们衙,然后檢查是否顯示 “LOD.ComputeLOD”。

圖 28.在 Unity 分析器中核實 LOD 的使用

您還可以使用 GPA 捕捉一個幀碱呼,選擇模型相應(yīng)的繪制調(diào)用蒙挑,然后點擊 Geometry

選項卡,進(jìn)而驗證是否啟用正確的模型愚臀。您將能夠借此清晰地看到提交的實際模型的幾何圖形以及其他有用的統(tǒng)計數(shù)據(jù)(如頂點數(shù))忆蚀。您可以驗證頂點數(shù)是否與在攝

像頭捕捉距離內(nèi)使用的理想模型相一致。

細(xì)節(jié)級別通常取決于頂點姑裂。 如果每個頂點需要過多的計算的話馋袜,則會阻礙其性能。使用移動版 Unity 著色器可顯著減少每個頂點所需的計算舶斧。 如果物體偏小或偏遠(yuǎn)欣鳖,則可在不需要這些細(xì)節(jié)時限制 LODGroup 中的頂點數(shù)。

圖 29.要想為游戲?qū)ο筇砑?LOD 組件茴厉,則需點擊 Component->Rendering->LOD Group

圖 30.在 LOD Group 中調(diào)整

圖 31.高質(zhì)量

圖 32.低質(zhì)量

陰影

陰影能夠占用大量的 GPU 性能泽台。要想了解陰影所占用的系統(tǒng)資源量,請查看 Profiler > GPU > Shadows

部分矾缓。您可以通過多種優(yōu)化方式來最大限度地提高陰影性能师痕,具體取決于您的場景布局。例如而账,如果大部分場景陰影因平行光而起胰坟,則縮短陰影距離(設(shè)置路

徑:Project Settings > Quality)可顯著提升陰影性能。 陰影距離大多與片段著色器的性能緊密相關(guān)泞辐。在 GPA

幀捕捉中笔横,您可以選擇一個從陰影貼圖中采樣的繪制調(diào)用,然后查看片段著色器執(zhí)行單元的停止/激活指標(biāo)和采樣器的讀取/寫入指標(biāo)咐吼。陰影距離值可在代碼中動態(tài)

設(shè)置吹缔。 對于點光燈來說,調(diào)整陰影分辨率有助于降低內(nèi)存帶寬開銷锯茄,因為這在移動網(wǎng)絡(luò)上成本非常之高厢塘。

以下簡要介紹了 Project Settings > Quality 提供的每種陰影選項(更多信息請參考《Unity 質(zhì)量設(shè)置指南》):

陰影過濾– 用于過濾陰影的一種方法

硬陰影 - 當(dāng)從陰影貼圖中采樣時茶没,Unity 會選擇距離最近的陰影貼圖像素

軟陰影 - 取幾個陰影貼圖像素的平均值,創(chuàng)建更平滑的陰影晚碾。 這種方法成本更高抓半,但是可以打造更自然的陰影

陰影分辨率– 生成的陰影貼圖的分辨率

如果使用多個點光燈/聚光燈,則會顯著影響其性能

陰影投射– 用于投射陰影的一種方法

穩(wěn)定 - 渲染分辨率較低的陰影格嘁,攝像頭移動時不會引起顫動

緊密配合 - 渲染分辨率較高的陰影貼圖笛求,攝像頭移動時可輕微顫動

陰影級聯(lián)– 在級聯(lián)陰影貼圖中使用的平行碎片的數(shù)量(距離觀者越近的級聯(lián)分辨率越高,以便提升質(zhì)量)

可嚴(yán)重影響平行光的性能

圖 33.未啟用任何陰影級聯(lián)

圖 34.啟用四個陰影級聯(lián)

陰影距離– 距離投射陰影的物體的最大距離

如果使用平行光糕簿,則會嚴(yán)重影響片段著色器的性能

可通過腳本動態(tài)更改

性能結(jié)果將會有所變化探入,因為 GPU 的使用取決于場景以及投射/接收陰影的物體數(shù)量。 而有一點始終至關(guān)重要懂诗,即應(yīng)該使用所需的最低質(zhì)量設(shè)置來獲得理想的外觀蜂嗽。 通常建議將默認(rèn)的陰影距離更改至一個較低的值。

圖 35.Unity Bootcamp 演示中基于陰影距離的 FPS殃恒。

要想查看 Unity 生成的陰影貼圖徒爹,您可以捕捉場景的其中一幀,然后在 GPA 幀分析器中進(jìn)行查看芋类。 前往最終的渲染目標(biāo),并導(dǎo)航至 Textures 選項卡查看陰影貼圖界阁。

圖 36.生成的級聯(lián)陰影貼圖在 GPA 幀分析器中的視圖

堅持使用一個攝像頭

有時候為了達(dá)成某些特定的效果侯繁,使用多個攝像頭也能夠理解。例如泡躯,如果您想創(chuàng)造視差效應(yīng)贮竟,那么其中一種方法便是使用以不同速率移動的多個攝像頭。

但您可能沒意識到的是较剃,每個攝像頭都需要一組獨立的 Clear 調(diào)用來連接顯卡 API 和新渲染目標(biāo)咕别。如果使用 3 個攝像頭和一個 UI

攝像頭(canvas 物體需要一個額外的攝像頭)從簡單場景中捕獲其中一幀,則僅 Clear 就會占據(jù) 5.4% 的場景写穴。

圖 37.與 4 個攝像頭拍攝所得的某一場景相關(guān)的繪制調(diào)用時間表惰拱。紅色中的色彩 / 深度 / 模板清除循環(huán)。

渲染隊列排序

圖形編程中有一個概念叫做過度繪制啊送,是指一個像素被不必要地繪制了多次偿短,從而導(dǎo)致顯卡資源浪費。 Unity 提供了一種方法來確定不同模型的渲染順序馋没,即渲染隊列屬性昔逗。渲染隊列屬性是一個可通過網(wǎng)格渲染器材質(zhì)進(jìn)行設(shè)置的數(shù)值。

為了解該特性的優(yōu)勢篷朵,我們來繪制一個上面具有大量物體的地面勾怒。 首先對地面進(jìn)行渲染婆排,確保半個屏幕上的每個像素點都有涉及。 接下來所有物體都將在這個地面上進(jìn)行渲染笔链。 這產(chǎn)生了許多不必要的工作段只。 在這個例子中,與任何物體接觸的任何像素都被繪制了兩次卡乾。

圖 38.通過可切換的渲染隊列排序方法(默認(rèn)或智能)所獲得的正常場景翼悴。

圖 39.在默認(rèn)的渲染隊列排序模式下使用 GPA 系統(tǒng)分析器時,同一場景的過度繪制可視化圖幔妨○惺辏灰色區(qū)域表示過度繪制。 注意误堡,之前所示屏幕截圖中的地面在形成綠色漂浮方形區(qū)之前進(jìn)行了繪制古话。

圖 40.在智能渲染隊列排序模式使用 GPA 系統(tǒng)分析器時,同一場景的過度繪制可視化圖锁施∨悴龋灰色區(qū)域表示過度繪制。注意悉抵,唯一過度繪制的部分是超出地面方形區(qū)的綠色漂浮方形區(qū)肩狂。通過認(rèn)真地手動排列問題繪制調(diào)用順序,您可以避免大量的像素計算姥饰。

光照貼圖

光照貼圖是指針對場景中的物體傻谁,首次將所有場景燈光烘培到一個從著色器中采樣的光照貼圖(帶有預(yù)計算燈光數(shù)據(jù)的紋理),而非在著色器中動態(tài)計算燈光

值列粪。在內(nèi)存帶寬 / 采樣器的使用都不會成為阻礙的情況下审磁,這種方法可顯著提升性能。Unity 可支持您通過這種方式將燈光烘培到場景中岂座。

Unity 還支持您通過使用燈光探測器為動態(tài)物體生成烘培的燈光數(shù)據(jù)态蒂。 燈光探測器是您放在場景中的點,可對周圍的燈光和陰影條件進(jìn)行采樣费什。 當(dāng)一個動態(tài)物體經(jīng)過受燈光探測器限制的區(qū)域時钾恢,則會對這些燈光探測器產(chǎn)生的數(shù)據(jù)進(jìn)行采樣。 經(jīng)過的物體所使用的燈光/陰影值可在所有周圍探測器之間進(jìn)行插值替換鸳址。 放在場景周圍的探測器能夠形成一個三維體赘那,并在動態(tài)物體可能覆蓋的區(qū)域周圍更加密集地分散開來。

圖 41.左側(cè):Unity 生成的平行光照貼圖氯质。右側(cè):Unity 生成的密集光照貼圖募舟。(如 GPA 幀分析器所示。)

為烘培燈光數(shù)據(jù)闻察,請在檢視面板(“遮擋剔除”部分所提及的檢查框)中將所有靜態(tài)幾何圖形標(biāo)記為靜態(tài)拱礁,并將燈光探測器放在場景周圍琢锋,形成一個三維體以

覆蓋即將接收燈光數(shù)據(jù)的動態(tài)物體的所有潛在路線。 物體標(biāo)記完成并且燈光探測器到位以后呢灶,通過 Wndow->Lighting

打開光照貼圖窗口吴超,并點擊 “Bake Scene” 按鈕。

圖 42.通過光照貼圖烘培場景

您將會在窗口右下方看到一個小型加載進(jìn)度條鸯乃。烘培完成之后鲸阻,便大告成功了!您可以移除/禁用場景中不需要的所有動態(tài)燈光缨睡,但如果您在檢視面板中將燈

光標(biāo)記為“烘培”的話鸟悴,就不必費此一舉了。烘培的燈光將會自動加以應(yīng)用奖年。跟蹤場景中烘培燈光的一種簡單方法便是將其全部置于一個空白游戲?qū)ο笙孪钢睿员阍谛?/p>

要重新烘培時快速激活/停用。如果您選擇這種方式陋守,則請確認(rèn)您的光照貼圖烘培工作流模式未設(shè)置為自動模式震贵。

針對復(fù)雜模型,使用簡單的碰撞器代替網(wǎng)格碰撞器

對于可碰撞的復(fù)雜物體來說水评,使用原型碰撞器組合非常重要猩系,而不是簡單地將網(wǎng)格碰撞器投擲在一切之上。 原型碰撞器是一個簡單的三維體(容器中燥、球體寇甸、盒裝等),而網(wǎng)格碰撞器是您試圖啟用碰撞的網(wǎng)格褪那。 如果可能的話,請選擇原型碰撞器式塌,而非網(wǎng)格碰撞器博敬。

圖 43.三個原型碰撞器用于這種大型結(jié)構(gòu)。其性能遠(yuǎn)超網(wǎng)格碰撞器峰尝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偏窝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子武学,更是在濱河造成了極大的恐慌祭往,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件火窒,死亡現(xiàn)場離奇詭異硼补,居然都是意外死亡,警方通過查閱死者的電腦和手機熏矿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門已骇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來离钝,“玉大人,你說我怎么就攤上這事褪储÷芽剩” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵鲤竹,是天一觀的道長浪读。 經(jīng)常有香客問我,道長辛藻,這世上最難降的妖魔是什么碘橘? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮揩尸,結(jié)果婚禮上蛹屿,老公的妹妹穿的比我還像新娘。我一直安慰自己岩榆,他們只是感情好错负,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著勇边,像睡著了一般犹撒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粒褒,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天识颊,我揣著相機與錄音,去河邊找鬼奕坟。 笑死祥款,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的月杉。 我是一名探鬼主播刃跛,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苛萎!你這毒婦竟也來了桨昙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤腌歉,失蹤者是張志新(化名)和其女友劉穎蛙酪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翘盖,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡桂塞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馍驯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藐俺。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡炊甲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出欲芹,到底是詐尸還是另有隱情卿啡,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布菱父,位于F島的核電站颈娜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏浙宜。R本人自食惡果不足惜官辽,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粟瞬。 院中可真熱鬧同仆,春花似錦、人聲如沸裙品。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽市怎。三九已至岁忘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間区匠,已是汗流浹背干像。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驰弄,地道東北人麻汰。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像戚篙,于是被迫代替她去往敵國和親五鲫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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

  • 目錄 編輯器優(yōu)化 壓縮紋理 移動存儲著色器 靜態(tài)批處理 動態(tài)批處理 HDR – 高動態(tài)范圍 選擇最佳渲染路徑 注意...
    好怕怕閱讀 765評論 0 1
  • 111. [動畫系統(tǒng)]如何將其他類型的動畫轉(zhuǎn)換成關(guān)鍵幀動畫已球? 動畫->點緩存->關(guān)鍵幀 112. [動畫]Unit...
    胤醚貔貅閱讀 12,975評論 3 90
  • 首先介紹下draw call(這個東西越少你的游戲跑的越快): 在游戲中每一個被展示的獨立的部分都被放在了一個特別...
    楊夏MX閱讀 13,319評論 0 17
  • 新學(xué)了一個技能—900宮格智亮,是最近學(xué)“時間管理”學(xué)到的,老師還發(fā)了一個視頻点待,所有人看到自己的表格都看哭了阔蛉。 給大家...
    點滴XY閱讀 3,948評論 0 1
  • 明多之處暗亦多,歡濃之時愁亦重癞埠。 最近很愁苦状原,工作聊無趣味聋呢、生活聊無趣味,甚至喜歡的看書也變得聊無趣味了颠区。不過話說...
    liuliuliu2016閱讀 109評論 0 0