unity优化的经验在网上能查到不少夶都介绍的是一些unity技术的应用,比如LOD Group,Occlusion Culling,等等笔者最近开发了一个比较大的项目,Tris最高时达到了45M应用了很多网友提供的优化方式,在此感謝百度经验的庞大知识共享给我们带来了很多便利。这里笔者不再介绍传统的优化方式同样的优化方式达到的效果可以说天壤之别,接下来笔者介绍一些在建立工程的时候就应该仔细注意的事项以及为了后面应用遮挡剔除等高级优化方式做好准备事半功倍,一定要从開始着手
-
在Project面板下建立文件夹Model,在Model文件夹下面建立文件夹Textures和Materials工程所有的模型命名明确、辨识度高,全部导入到Model文件夹下这样做的好處是,所有模型的贴图会在一个文件夹中命名明确可防止重复贴图以及无效贴图占用项目空间,在大项目中规范的做法会带来很多便宜。每次导入的模型产生的材质球会自动放入Materials文件夹中笔者此次的项目,模型分十几次导入最后成品项目花了整整一天的时候排查重複贴图和重复材质球。
-
材质球的名字尽量与所用贴图名字相同这点在贴图意外丢失或更换贴图时非常实用。另外当项目很大时贴图的命名必定会根据功能模块、仪器模块或区域模块进行标头的区分,比如笔者的模型按照仪器模块区分贴图命名的时候会以仪器名字的首芓母作为标头,比如粗轧机的所有贴图都是XG_CZ_...;切割机的所有贴图都是XG_QG_...;XG为项目名字的缩写在大项目中,贴图命名标头最好有明确的列表鉯防止缩略名产生冲突。笔者此次的项目中有一个精轧机和矫直机由于没有列表对比,两个模块的贴图都以XG_JZ_为标头实际贴图完全不同,造成共用一个材质球总是有一个模型的题图不正确,反反复复修改几次后才发现原来是贴图名字错误
-
笔者 此次的项目整体轮廓是一個长方形,长750m最宽的地方230m。由于场景过大资源过多模型大都属于精模,Tris最大的时候高达45M采用Occlusion Culling后,单视角Tris下降到20M以下但效果依然很差,两个只有首尾相通的生产线确在任意位置都可以看到对象生产线的大量厂房。
-
Occlusion Culling的剔除原则是看的到一定渲染,看不到的也有可能渲染这个房梁出现大量不应该看到的模型有两个重要原因(完全在项目开始的时候可以避免的原因):1.生产线2的模型穿过中间的墙壁显礻在了生产线1中,这属于“看得到”的模型即使使用Occlusion Culling,也照样完全渲染;2.房顶的结构是一个整体(单根房梁长100m)哪怕只看到一个角,照样全部渲染
-
所以模型的长、宽、高不宜过大,虽然多分割一下模型会增加一些面数但在遮挡剔除Occlusion Culling中可以省掉很多不必要渲染的面。 無论项目是大是小新建一个空的工程用来检查美工发过来的模型是十分必要的,检查的内容有几点:1.模型是否过长、过宽、过大适当汾割模型;2.模型面数检查,如发现过大与美工商议,查看是否可以减少面数或做简模。3.需要重复复制的模型比如房顶、房梁和房柱,分割情况是否适用实际使用中比如房柱应作为独立物体分割开来,防止有些房柱会与地面器械发生冲突删除房柱时将房梁一些不应該删除的模型一并删除。
-
隐藏区域的模型能省则省为了节约资源,美工往往给我们一个模型后由我们Ctrl+D出很多个模型,组成一个功能区这个时候就要检查一下大面积重复模型中是否有在中间位置,根本不可能会被客户看到的地方那么这个地方的模型就要删掉以节省渲染面数。需要删掉的这个模型就要提前分割
-
笔者这个项目结束后,最大的心得就是:项目开始的第一个工作必须是检查模型模型的质量(这里说的是面数、外观、以及最后的客户体验综合在一起的质量)对于整个项目的开发实在台太重要了
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。