1. 程式人生 > >Unity MeshBaker 合併網格和材質

Unity MeshBaker 合併網格和材質


MeshBaker 能夠合併網格和材質,達到減少 Draw Calls 的目的。 在這裡簡單測試使用下,環境如下:
  • Unity 4.5.4
  • MeshBaker 3.3
1. 開啟示例場景“Assets\MeshBaker\Examples\SceneBasic.unity”,刪除物件“MeshBaker0”和“CombinedMesh-”,以便重新開始合併,如下圖所示:

2. 點選選單“GameObject -> Create Other -> Mesh Baker -> Mesh And Material Baker”,會自動在場景中新增一個名為“MeshBaker0
”的物件,它包含兩個指令碼元件:MB3_TextureBaker MB3_MeshBaker,如下圖所示:

3. 點選“Open Tools For Adding Objects”,會彈出“MB3_MeshBaker”視窗,點選“List Shaders In Scene”,將會在控制檯列出場景中所使用到的著色器,並且指出哪些物件使用。這對於規劃哪些物件進行合併非常有用,如下圖所示:

拷貝到表格軟體中,會更直接,如下表所示:
OBJECT NAME LIGHTMAP INDEX STATIC OVERLAPPING SUBMESHES OUT-OF-BOUNDS UVs NUM MATS MATERIAL WARNINGS
Diffuse (UnityEngine.Shader) (72 verts):
Cube1 (24 verts) -1 FALSE FALSE FALSE 1 [TestDiffuse1 (UnityEngine.Material)]
Cube3 (24 verts) -1 FALSE FALSE FALSE 1 [TestDiffuse3 (UnityEngine.Material)]
Cube4 (24 verts) -1 FALSE FALSE FALSE 1 [TestDiffuse4 (UnityEngine.Material)]
Specular (UnityEngine.Shader) (24 verts):
Cube2 (24 verts) -1 FALSE FALSE FALSE 1 [TestDiffuse2 (UnityEngine.Material)]
合併的物件,首先考慮使用同一種材質,其次考慮使用同一種著色器。 4. 選中要合併的物件,在MB3_MeshBaker”窗口裡,設定需要過濾的型別,可以依據所使用的材質、著色器等進行過濾。接著,點選“Add Selected Meshes”,就會將符合要求的物件新增到 MB3_TextureBaker 和 MB3_MeshBaker 元件的合併數組裡,如下圖所示:

5. 點選“Create Empty Assets For Combined Material”,將會建立一個合併材質記錄檔案,這裡取名為AllMat,如下圖所示:

6. 設定好烘培選項,這些選項的意義可以參看幫助手冊。然後,點選“Bake Materials into a Combined Material”,將會生成合並後的材質檔案,如下圖所示:

7. 設定網格烘培選項,預設烘培完成的網格是生成到場景物件的,可以更改Output值為bakeIntoPrefab,使之儲存到預製。最後,點選“Bake”,將會生成一個包含合併後網格的新物件,如下圖所示:

新生成的物件,如下圖所示:

參考資料: