分类
大小:33.4 MB
语言:简体中文系统:WinXP, Win2003, Vista, Win7, Win8, Win10
类别:滤镜插件时间:2019-03-15
mesh baker是一款功能强大的unity模型材质优化插件,包括合并网格和材质、创建定制化角色、Batch Prefab Baker扩展等多种功能,还自带静态和动态批处理功能,为网格合并提供了新的解决方案,大大提高设计效率,提升游戏振率,有需要的朋友可以下载安装!
1、Mesh Baker是一套网格合并解决方案,既支持一般网格,也支持蒙皮网格,能够有效合并网格以及网格所使用的材质,来有效减少渲染批次。Mesh Baker可作为拓展Unity自带的静态批处理及动态批处理功能的解决方案,适用于一些需要动态加载并且可以提前合并的对象。
2、合并一般网格
在本站下载Mesh Baker插件并导入Unity工程,工程中会出现Mesh Baker文件夹,打开示例场景basicScene, 可以看到MeterialBaker1与Mesh Baker对象, 这两个对象包含了Mesh Baker的两个核心功能:合并材质以及合并网格。
上图的场景主要展示了将Cube1到Cube4合并为一个网格的过程。红色框图部分表示合并材质的过程,最终会输出合并后的材质MaterialBakeResult-mat以及新的UV映射关系MaterialBakeResult。合并后的图集如下:
Mesh Baker会利用材质合并结果来生成合并后的网格对象,如蓝色圈图部分所示。
如果隐藏场景上原先的4个Cube,可以看到渲染批次从原来的4个变为1个。Mesh Baker简单易用,且对提升渲染性能大有裨益。
3、合并蒙皮网格
Mesh Baker不仅支持一般网格,还支持蒙皮网格(SkinnedMesh)。蒙皮网格常用于游戏中的各种角色。
合并蒙皮网格的步骤与合并一般网格基本一致,只是蒙皮网格需要在Mesh Baker中将Render设为SkinnedMeshRender。如下图所示,多个角色的蒙皮网格被合并为一个,并且仅使用一个材质。也就是说,只需一个批次就可以渲染场景中所有的角色动画。
4、Mesh Baker还支持将预制件中的网格数据动态合并到已合并的网格中,上图的红色工人之一就是在运行时调用AddDeleteGameObject接口动态合并的, 代码如下:
5、Mesh Baker还支持将一般网格合并到蒙皮网格中,该功能也非常实用,因为在角色身上增加一些道具的需求也很常见,例如添加各种武器等。如下图所示,工人手中的剑就是通过AddDeleteGameObject接口动态合并到蒙皮网格中,而这把剑只是一般的网格对象。甚至Mesh Baker还可以将多个一般网格合并为一个蒙皮网格。
6、创建定制化角色是游戏中常见的功能, 比如定制不同的发型、衣服、鞋子等部分。实现该功能需要将角色模型划分成各个单独的模块。如下图所示,角色的原始模型由BareArmLeft、Head、BareTorso等模块构成。如果直接进行渲染,一个角色就需要多个渲染批次,显然效率较低。而使用Mesh Baker可以将各个子模块合并到一起,有效减少渲染批次。可以看到下图合并后的结果,最终Visible Skinned Meshes的数量为1。
7、Mesh Baker还有诸如Batch Prefab Baker, Multiple Materials等扩展功能,可以满足不同的开发需求。
8、Batch Prefab Baker可以合并多个不同预制件中的材质,这样无论是使用Unity自身的静态或动态批处理功能,还是使用Mesh Baker 的合并网格功能,都可以有效减少渲染批次。下图展示了如何利用Batch Prefab Baker功能将a、b、c三个预制件,输出为三个使用相同材质的预制件aa、bb、cc。
下图为合并后的图集。
9、Multiple Material 提供了单独合并子网格的功能。有的网格可能由多个子网格组成,因为子网格可以应用不同的材质。比如有的子网格使用了Tiling的材质,有的则没有,如果强行合并在一起就会出现问题。
上图展示了多材质合并的情况,合并后的网格使用了5种材质。
通过这些功能介绍,可以看出Mesh Baker易于使用,也能够支持多种应用场景,包括一般网格合并,蒙皮网格合并,Multiple Material合并,以及动态合并。通过合并材质和网格,可以有效减少渲染批次,提高渲染效率,是优化游戏性能不可或缺的实用插件。
1、结合网格和材料,以减少绘制调用。现在包括它自己的纹理包装器!
2、固定模型和创建地图集,这样他们就可以分享材料(静态/动态配料)。
3、导入模型中的缩放、旋转和平移。
4、与任何材质和材质一起使用。
5、全多材料支持。
6、结合和自定义皮肤网格。
7、贴图,法线,切线,自动调整。
8、烤平铺纹理。
9、全光照贴图支持。
10、源资产未触及。
11、简单,没有脚本,在5分钟内学习。
12、运行时API。
13、可以处理负缩放。
一、搭建场景
如上图场景,新建4个材质,分别附上这4个贴图,贴图是MeshBaker自带的。
运行后
二、使用mesh baker
1.创建对象,GameObject->CreateOther->MeshBaker->Mesh And MaterialBaker
2、上面有2个组件,注意,3.6版本的结构和这个有点区别,点击Open Tools For Adding Objects,弹出如下窗口
List Shaders In Scene 按钮是可以打印当前场景中物体使用的shader,lightmapping,等一些信息,可以做参考
3、选中需要合并的物体,点击Add Selected Meshes,一定要选中物体
4、输出如下信息
5、点回MeshBaker0会看到Objects To。。。里面已经有4个物体了,也就是我们刚才选中的物体,当然,你自己手动拖进去也是可以的。
接下来点击Create Empty Assets For Combined Material
6、弹出如下窗口,选好路径,自定义名字保存即可,这个主要是用来储存合并材质和合并信息的
7、之后点击Bake Materials Into Combined Material
8、等待操作完成后,找到下面这个脚本,点击Bake就可以了
会生成一个 CombinedMesh-MeshBaker0-mesh 的对象
然后点击Disable Renderers on Source Objects,就是隐藏原来物体的Render组件
9、运行后可以看到 DrawCalls 从 5 降到 2 了
展开