查看原文
其他

移动开发性能优化利器:Mesh Baker

2017-08-07 成亮 Unity官方平台

Unity目前正在在线商城(store.unity3d.com)进行促销,Unity为开发者们精心挑选了移动游戏、2D、VR、艺术4个开发工具包。如果订阅Unity Plus加强版以及Unity Pro专业版,新的订阅者可以从四个工具包中选择其一。这些工具包会帮助你更有效的使用Unity进行创作。

 

今天我们将详细为大家介绍移动开发工具包中的Mesh Baker。它是一套网格合并解决方案,既支持一般网格,也支持蒙皮网格,能够有效合并网格以及网格所使用的材质,来有效减少渲染批次。Mesh Baker可作为拓展Unity自带的静态批处理及动态批处理功能的解决方案,适用于一些需要动态加载并且可以提前合并的对象。

 

 

地址:https://www.assetstore.unity3d.com/#!/content/5017

 

合并一般网格

从Assetstore资源商店下载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简单易用,且对提升渲染性能大有裨益。

 

合并蒙皮网格

Mesh Baker不仅支持一般网格,还支持蒙皮网格(SkinnedMesh)。蒙皮网格常用于游戏中的各种角色。

         

合并蒙皮网格的步骤与合并一般网格基本一致,只是蒙皮网格需要在Mesh Baker中将Render设为SkinnedMeshRender。如下图所示,多个角色的蒙皮网格被合并为一个,并且仅使用一个材质。也就是说,只需一个批次就可以渲染场景中所有的角色动画。

 

 

Mesh Baker还支持将预制件中的网格数据动态合并到已合并的网格中,上图的红色工人之一就是在运行时调用AddDeleteGameObject接口动态合并的, 代码如下:


 

此外,Mesh Baker还支持将一般网格合并到蒙皮网格中,该功能也非常实用,因为在角色身上增加一些道具的需求也很常见,例如添加各种武器等。如下图所示,工人手中的剑就是通过AddDeleteGameObject接口动态合并到蒙皮网格中,而这把剑只是一般的网格对象。甚至Mesh Baker还可以将多个一般网格合并为一个蒙皮网格。


 

创建定制化角色是游戏中常见的功能, 比如定制不同的发型、衣服、鞋子等部分。实现该功能需要将角色模型划分成各个单独的模块。如下图所示,角色的原始模型由BareArmLeft、Head、BareTorso等模块构成。如果直接进行渲染,一个角色就需要多个渲染批次,显然效率较低。而使用Mesh Baker可以将各个子模块合并到一起,有效减少渲染批次。可以看到下图合并后的结果,最终Visible Skinned Meshes的数量为1。

 

 

更多功能

除了上述基本功能外,Mesh Baker还有诸如Batch Prefab Baker, Multiple Materials等扩展功能,可以满足不同的开发需求。

 

Batch Prefab Baker 可以合并多个不同预制件中的材质,这样无论是使用Unity自身的静态或动态批处理功能,还是使用Mesh Baker 的合并网格功能,都可以有效减少渲染批次。下图展示了如何利用Batch Prefab Baker功能将a、b、c三个预制件,输出为三个使用相同材质的预制件aa、bb、cc。

 

 

下图为合并后的图集。

 

 

Multiple Material 提供了单独合并子网格的功能。有的网格可能由多个子网格组成,因为子网格可以应用不同的材质。比如有的子网格使用了Tiling的材质,有的则没有,如果强行合并在一起就会出现问题。


 

上图展示了多材质合并的情况,合并后的网格使用了5种材质。

 

以上就是Mesh Baker主要的一些功能,想了解更多功能以及各个功能更为详细的介绍,请查阅Mesh Baker文档。

 

通过这些功能介绍,可以看出Mesh Baker易于使用,也能够支持多种应用场景,包括一般网格合并,蒙皮网格合并,Multiple Material合并,以及动态合并。通过合并材质和网格,可以有效减少渲染批次,提高渲染效率,是优化游戏性能不可或缺的实用插件。

 

我们还将继续为大家分享移动开发、2D开发、VR开发以及艺术设计工具包中好评率极高的优秀插件,请保持关注!温馨提示,现在订阅Unity Plus加强版或Unity Pro专业版即可免费获得其中一款工具包哦!


推荐阅读

Unity Pro专业版工具包:VR开发与艺术设计

Unity Pro专业版订阅福利:移动与2D开发工具包

Unity Pro专业版特惠,更有精彩大礼等您来!

Unity Analytics分析服务新功能,玩转“热更新”

Asset Store城建资源,助你一夜广厦千万间


点击“阅读原文”进入Unity官方中文社区

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存