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”,将会生成一个包含合并后网格的新对象,如下图所示:
 
新生成的对象,如下图所示:
 
 

参考资料:
1. Mesh Baker的基本操作与功能演示  http://www.narkii.com/club/thread-301789-1.html

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

猜你喜欢

转载自www.cnblogs.com/sjwics/p/10460470.html
今日推荐