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、可以處理負縮放。
mesh baker使用教程
一、搭建場景
如上圖場景,新建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 了
