最近学习unity性能优化相关的知识,涉及到一个插件SimpleLod,其插件功能主要包括以下三个部分:

1.合并网格以达到减少draw calls的目的

2.合并材质和烘焙图集进一步减少draw calls

3.减少三角形面

一、合并网格(基本功能)

合并网格可以用Unity函数Mesh.CombineMeshes()来完成。当你将已经有子网格的网格结合起来时,且不能处理皮肤网格。对于简单的LOD,它有自己的合并函数。它将所有子网格和所有子对象合并成一个大的网格,每个共享材料的子网格。可以处理皮肤的网状结构。

您可以选择合并到一个空的父对象,或者直接进入到最顶层的游戏对象的网格中。第一种方法是最好的方法。创建一个空的gameObject并使所有你想要合并的子游戏对象。然后打开SimpleLOD并点击“merge child meshes"。

关于SimpleLod的学习笔记

操作的过程中,Hierarchy会出现临时文件夹_SimpleLOD_backups_delete_when_ready,从字面意思来看,如果你对生成的东西比较满意可以删除。此时原先的空文件夹就会自动添加对应的meshrenderer和meshfilter,查看相应的mesh就可以看到新生成的合并网格的外形。

完成合并后可以继续点击工具面板下方的a选项,Create LOD levels and LODSwitcher,就会自动为当前合并的网格生成相应的LOD网格,生成前可以调整参数,如图所示:

关于SimpleLod的学习笔记

先对2部分进行参数调整,一般默认即可,然后点击1部分,就可以生成不同层次的lod网格了。如果需要对lod进行操作,可以通过操作网格父级中的LOD Switcher.cs来进行控制,亦可以通过unity自带的LOD Group模块手动添加生成的LOD网格来进行控制,插件生成LOD Switcher面板如图所示:

关于SimpleLod的学习笔记


相关文章: