Unity项目美术资源优化篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jinsenianhua2012/article/details/81006930

本着尽量不独立造车轮的态度,嘿嘿。笔者也是在一直在学习借鉴别人的经验,在没有明确的个人设计方案之前,不如先按照别人的来。个人认为在程序学习中摸着石头过河没有照葫芦画瓢理解的快些,在明白之后再加入自己的设计是较好的一种学习方法。 分享一篇大牛的文章


一、同屏视野内的顶点数量和面数的控制

在主流移动平台(如 骁龙835芯片手机和 IPhone7)同屏面数30万左右运行还算流畅。

在游戏制作中为了满足在多数移动手机中流畅运行,纯美术场景面数控制在 6万面以内。游戏运行同屏面数控制在10万面以内。

在 Unity Game窗口 States中可以查看当前视野内的渲染信息。

    Tris 表示的当前视野内渲染的面数;

    Batches: 多少次批次渲染,可以将它等同于 DrawCall操作

    Saved By Batching: 由于合批操作减少的 Drawcall,可以间接看做场景的优化效果,它是由静态合批 + 动态合批 操作。

    高端机型尽量控制DrawCall 在 300以内


二、模型

减面:去掉对模型造型没有影响的面,用尽可能少的面数表达清楚模型的结构和造型,可以美术童鞋在美术编辑器中手动去除(这是最能保证模型效果的方法),也可以借助减面工具 如 Cruncher 来处理模型(减的太过会严重失真)

模型合并:合并场景中 材质相同距离较近的模型,将它们合并成一个模型,同时将贴图合并成一张大的贴图,贴图尺寸不超 1024。材质合并可以有效减少 DrawCall .

LOD: 复杂的场景物体可以采用 Lod 来减少同屏的面数,适合大场景。

模型复用: 美术同学在制作场景前可以将模型做成 prefab,也可以由程序通过脚本在模型资源导入时在指定的目录中生成对应的 prefab。相同的物体使用prefab复制,可以通过引擎优化内存,但也只是少量的复制,当复制数量过多时,大量的顶点会开销大量的内存。

地形优化: 使用 T4m等插件,尽量不要直接使用 Terrain地形,可以借助其他插件将 Terrain转成 T4m或是其他。可以有效减少地形的面数和顶点数量


三、贴图材质

贴图大小:控制在 1024 和 512以内,游戏中的贴图应尽量以 1024 和512尺寸的为主。美术同学出图一定要尺寸为2的幂次,且正方形哦

贴图合并:将小物件模型的贴图合并

模型贴图数量:模型贴图尽量一个模型只使用一张贴图,相同贴图的材质球统一

PBR材质的使用限制:适合于小场景,且PBR只有在实时光环境下才有效果。大场景避免使用 PBR材质,且大场景尽可能使用烘焙光影达到光照效果。且烘焙场景中的物体不需要法线效果,因为烘焙完就没有法线效果啦

贴图压缩 :Andriod使用 ETC/ETC2 ,IOS使用 PVRT格式。建立不压缩目录,放置一些不适合压缩的图片

场景材质使用 substance材质。Substance材质可以大大压缩贴图数据的大小但不损失贴图质量。

减少透明贴图的使用:透明贴图非常消耗GPU,而且会在成 较高的 OverDraw,所以能少用就少用。比如一些小粒子特效贴图,就可以使用不太透明通道的贴图。


合理的资源目录结构很重要

合理的划分归类美术资源非常重要,具体怎么划分可以根据项目需求和个人的项目经验来。

在资源优化中常用的手段就是批处理,批处理模型,批处理图片等。这时合理的目录规范就可以很好的使用批处理啦  


后续持续更新……

猜你喜欢

转载自blog.csdn.net/jinsenianhua2012/article/details/81006930