[Unity]Mesh Baker3.1.0使用教程

时间:2024-04-08 17:25:54

Mesh Baker这款插件的开发,是为了帮助解决由于场景资源网格过多引起的drawcall过多的问题。

废话不多说,直接上教程。


先来介绍一下Mesh And Material Baker的使用方法吧:


-------------------------------2018/01/05修改-------------------------------------

下图中Bake时,Lightmapping UVs处,ignore uvs统一修改为:Generate_new_UV2_layout(插件作者默认推荐的也是这个)

-------------------------------2018/01/05修改-------------------------------------


1 打开场景文件

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

2 创建对象,GameObject->CreateOther->MeshBaker->MeshAnd MaterialBaker

然后会自动在场景中添加一个名为“MaterialBaker0”的对象,它包含两个脚本组件:MB3_TextureBaker 和MB3_MeshBakerGrouper,如下图所示:

[Unity]Mesh Baker3.1.0使用教程

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

3.点击Open Tools ForAdding Objects,弹出如下窗口

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程


4.点击 Select Folder forCombined Material Assets ,选择一个目录给存放材质这些资源

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

可以手动设置分组的方式来实现不同的需求。

 [Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

然后点击List Shaders In Scene,控制台会输出当前场景中所使用到的着色器,并且指出哪些对象在使用。(可以复制到excel表格内更直观的进行查看)。

[Unity]Mesh Baker3.1.0使用教程

[Unity]Mesh Baker3.1.0使用教程

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等值.如果图集大小小于原来所有对象用到的图的总和,则模型的材质会变得模糊。

如果原来的图集都是纯色的图片则可以尽可能设置成小图集。如果不是纯色而是有具体图像的则应该设置成合适的大小。

[Unity]Mesh Baker3.1.0使用教程

[Unity]Mesh Baker3.1.0使用教程

6 点击MeshBaker,在Inspector中设置对应的选项,然后点击Bake

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

默认烘培完成的网格是生成到场景对象的,可以更改Output值为Bake Into Prefab,使之保存到预制(可以新建一个空的预制体)。最后,点击“Bake”,将会生成一个包含合并后网格的新对象。

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

这里需要注意:假如出现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

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

2将需要合并的object拖至如图所示位置:

[Unity]Mesh Baker3.1.0使用教程
[Unity]Mesh Baker3.1.0使用教程

3点击如图所示位置,设置文件名和路径,点击确定。

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

4根据需求设置Max Atlas Size等选项,然后点击Bake Material Into Combined Material。


[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程

5点击MultiMeshBaker,然后设置output,默认为bake至场景,可以选择bake至预设体(预设体需要手动创建,空物体即可,然后将预设体拖至Combined Mesh Prefab中),然后点击bake即可。


[Unity]Mesh Baker3.1.0使用教程


最后,可能出现的问题:

bake之后场景模型贴图丢失:解决办法是,查看自己的platform是否设置正确,按需求switch至对应的平台即可。

报错提示:TextureFormat is invalid!
解决办法是:

将对应的贴图Format手动设置为RGBA32bit,如下图:

[Unity]Mesh Baker3.1.0使用教程[Unity]Mesh Baker3.1.0使用教程