Unity優(yōu)化利器: Meshbaker
meshbaker大名是在2015年4月份的Unite大會上出現(xiàn)的。合并mesh解決設備運行卡頓問題。

原理:為了減少dc,想用meshbaker區(qū)合并場景內(nèi)的網(wǎng)格和貼圖。
從drawCall 60左右 降到了十幾個,屬于優(yōu)化利器
故,合并的對象,首先考慮使用同一種材質(zhì),其次考慮使用同一種著色器。
Step 1: Shader in Scene
依據(jù)shader,對場景中的Mesh進行分類,每一類,使用一個MeshBaker的思想。 點擊“Open Tools For Adding Objects”,會彈出“MB3_MeshBaker”窗口,點擊“List Shaders In Scene”,將會在控制臺列出場景中所使用到的著色器,并且指出哪些對象使用。這對于規(guī)劃哪些對象進行合并非常有用:

Step2: add Selected meshes to Target
選中要合并的對象,在“MB3_MeshBaker”窗口里,設置需要過濾的類型,可以依據(jù)所使用的材質(zhì)、著色器等進行過濾。接著,點擊“Add Selected Meshes”。
Step3: Create Empty asset
點擊“Create Empty Assets For Combined Material”,將會創(chuàng)建一個合并材質(zhì)記錄文件,這里取名為Mat1。
Step 4: Bake Materis into Combined Material
設置好烘培選項,這些選項的意義可以參看幫助手冊。然后,點擊“Bake Materials into a Combined Material”,將會生成合并后的材質(zhì)文件。

Step5: Bake
設置網(wǎng)格烘培選項,默認烘培完成的網(wǎng)格是生成到場景對象的。最后,點擊“Bake”,將會生成一個包含合并后網(wǎng)格的新對象。 選擇MultiMeshBaker.Bake按鈕。
同時,也可以禁用原Renderers:?Disable Renderers On Source Objects。

大量的試驗:計算機是個有趣的系統(tǒng)工程,大量的試驗,必不可少!


Q&A 1: 超過64k vertices 怎么辦?
“Cannot add objects. Resulting mesh will have more than 64k vertices.
Try using a Multi-MeshBaker component. This will split the combined mesh into
several meshes. You don't have to re-configure the MB2_TextureBaker. Just
remove the MB2_MeshBaker component and add a MB2_MultiMeshBaker component.?”
使用MultiMeshBaker即可。

Q&A 2: 動態(tài)Mesh 怎么辦?
Renderer選擇 Skinned Mesh Renderer。

轉(zhuǎn)載:
http://zhuanlan.zhihu.com/p/31332655?from_voters_page=true
Unity優(yōu)化利器: Meshbaker - 知乎 (zhihu.com)