Mesh Baker这款插件的开发,是为了帮助解决由于场景资源网格过多引起的drawcall过多的问题。
废话不多说,直接上教程。
先来介绍一下Mesh And Material Baker的使用方法吧:
-------------------------------2018/01/05修改-------------------------------------
下图中Bake时,Lightmapping UVs处,ignore uvs统一修改为:Generate_new_UV2_layout(插件作者默认推荐的也是这个)
-------------------------------2018/01/05修改-------------------------------------
1 打开场景文件
2 创建对象,GameObject->CreateOther->MeshBaker->MeshAnd MaterialBaker
然后会自动在场景中添加一个名为“MaterialBaker0”的对象,它包含两个脚本组件:MB3_TextureBaker 和MB3_MeshBakerGrouper,如下图所示:
3.点击Open Tools ForAdding Objects,弹出如下窗口
4.点击 Select Folder forCombined Material Assets ,选择一个目录给存放材质这些资源
可以手动设置分组的方式来实现不同的需求。
然后点击List Shaders In Scene,控制台会输出当前场景中所使用到的着色器,并且指出哪些对象在使用。(可以复制到excel表格内更直观的进行查看)。
5.点击Generate Baker
Hierarchy面板中会生成一个MeshBaker-Mobile-Diffuse-LM-1,然后点击Bake Materials Into Combined Material,然后在project面板中会生成相应的图集文件:MeshBaker-Mobile-Diffuse-LM-1-mat-_MainTex-atlas0。
这里需要注意的是:合并成的图集大小与清晰度大小由 Max Atlas Size参数控制,一般取512,1024等值.。如果图集大小小于原来所有对象用到的图的总和,则模型的材质会变得模糊。
如果原来的图集都是纯色的图片则可以尽可能设置成小图集。如果不是纯色而是有具体图像的则应该设置成合适的大小。
6 点击MeshBaker,在Inspector中设置对应的选项,然后点击Bake
默认烘培完成的网格是生成到场景对象的,可以更改Output值为Bake Into Prefab,使之保存到预制(可以新建一个空的预制体)。最后,点击“Bake”,将会生成一个包含合并后网格的新对象。
这里需要注意:假如出现Cannot add objects. Resulting mesh will have morethan 64k vertices. Try using a Multi-MeshBaker component.错误提示。
可以使用MB3_MultiMeshBaker来解决。MB3_MultiMeshBaker使用会在下面介绍。
---------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------
使用Multi-mesh合并网格
Multi-mesh我理解为批量自动的合并网格,同时可以解决顶点数超过64k的问题。
1 Create Other Mesh Baker Multi-mesh And Material Baker
2将需要合并的object拖至如图所示位置:
3点击如图所示位置,设置文件名和路径,点击确定。
4根据需求设置Max Atlas Size等选项,然后点击Bake Material Into Combined Material。
5点击MultiMeshBaker,然后设置output,默认为bake至场景,可以选择bake至预设体(预设体需要手动创建,空物体即可,然后将预设体拖至Combined Mesh Prefab中),然后点击bake即可。
将对应的贴图Format手动设置为RGBA32bit,如下图: