【工具】Unity中如何自动化对模型减面?
本文首发公众号洪流学堂。洪流学堂,让你快人几步。你好,我是你的技术探路者大智。
在Unity中,模型的面数对性能的影响非常大。特别是工业领域,工业模型面数通常非常多,在Unity中直接使用如果能跑起来基本都非常卡,在PC上FPS可能只有个位数。如果想用于VR、AR、MR那就基本跑不起来了。
那么有没有什么办法可以自动化对模型做优化呢?答案是有的。
本文探索现有(2021年3月28日)可用的工具,看看最好用的自动化减面工具是什么。
本文不涉及自动减面的原理或算法。
1 先上结论
任何自动化减面工具都只能得到还行的结果,想要完美的结果还是需要人工手动。
减面工具中个人认为最好用的是Simplygon,原因有几个:
免费版足够用(但注意免费版会与微软共享数据,原文是:Content data share with Microsoft)与Unity集成度高支持保存减面后的数据(原高模可以删除)除了模型减面还有很多额外的工具对模型做优化
另外两个选择:
独立工具:ATangeo,65k顶点以上模型需要使用付费版云平台:老子云,根据转换的文件大小收费
2 探索过程
拿到这个题目之后,那肯定先做一番搜索,关键词包括:
中文:Unity自动减面简化英文:UnityMeshSimplifyLOD
搜索渠道主要是:Bing、知乎、Github
拿到的结果经过一番筛选可选项有以下这些,按照用途分类探索一下:
2.1 Unity插件
Unity插件如果有合适的应该是最简单了,可以直接在Unity中使用。
可以在Unity中直接使用的插件有如下几个:
simplygon(https://www.simplygon.com/) 微软出品
推荐指数:
可以直接在Unity中对模型进行面数的精简,还包含其他一系列的模型优化功能。面数精简的同时会充分考虑到UV、法线,还可以对贴图进行合并。
simplygon
还发现了一些其他的开源库,由于各种原因不做详细探索(想学习减面算法可以看源码)。
[*]
ecidevilin/UnityMeshSimplify(https://github.com/ecidevilin/UnityMeshSimplify)
应该是AssetStore中的MeshSimplify插件。用于运行时减面,对离线不友好。
[*]
Habrador/Computational-geometry
(https://github.com/Habrador/Computational-geometry)
仅包含相关实现的API,无编辑器扩展,距离工具还差很大一截。
2.1.1自动LOD工具
LOD工具有个问题,就是结果中还是会包含原来的模型,然后再包含LOD。在游戏中比较合适。
下面这俩库无法实现只想要减面后模型的离线结果。
[*]Whinarn/UnityMeshSimplifier
Unity官方的AutoLOD中的减面模块也是使用了上面这个
[*]Unity-Technologies/AutoLOD
(https://github.com/Unity-Technologies/AutoLOD)实际上是集成了自动减面功能,然后帮你自动生成LOD,无法对减面进行单独控制
2.2 CCD插件
各个CCD软件的减面插件(可以根据熟悉的CCD软件自行搜索,本文不讲解)
基本所有的CCD软件都有自己的减面插件:
3ds MaxMayaBlenderZBrush
2.3 独立工具
如果不仅在Unity中使用的话,独立工具可能更合适一些。
2.3.1 ATangeo
下载地址:https://atangeo.com/
免费版只能处理及保存导出65K顶点以下的模型,可导出;收费版可以试用看效果,但是没办法保存优化后的模型。收费版52刀,也不算特别贵。
2.3.2不推荐独立工具
大智也探索了下面两个独立工具:
Mesh Lab(https://www.meshlab.net/) 不稳定,经常崩Magic3D(http://geometryhub.net/magic3d)缺少dll无法运行,没有过多尝试
2.4 云平台
老子云(需要付费,功能比较多)
https://www.laozicloud.com/
执行完付费,可以先看下预览效果再决定要不要付费下载。
你用过最好用的自动减面工具是啥?欢迎评论私信,咱们一起探索。
我是大智(:zhz11235),你的技术探路者,咱们下次见!
别走!点赞,收藏哦!
好,你可以走了。
页:
[1]