【从零开始游戏开发】静态资源优化 | 全面总结 |建议收藏
【从零开始游戏开发】静态资源优化 | 全面总结 |建议收藏
·
你知道的越多,你不知道的越多 🇨🇳🇨🇳🇨🇳
点赞再看,养成习惯,别忘了一键三连哦 👍👍👍
文章持续更新中 📝📝📝
1️⃣Audio导入设置🔥🔥🔥
Unity下资源工作流程图
资源类型与导入
⭕️外部导入资源
模型网格Mesh、纹理、音频、字体、动画、视频
⭕️内部创建资源
prefab预制体、AnimationController、TimeLine、RenderTexture、VFX
资源检查并优化
UPR Asset Checker
资源检查报告解读
⭕️Audio
检查ForceToMono,减少内存和磁盘占用
使用未压缩Wav格式,通过平台控制压缩
安卓使用Vorbis压缩方式,ios用MP3
音频采样值通常为为22000HZ
设置为OverrideSampleRate
⭕️音频加载类型 LoadType
小于200KB 使用DecompressOnLoad
大于200KB 使用Compressed In Memory
超大的背景音乐 使用streaming流式加载 避免卡顿
EditorSetting
FBX
Prefab
Scene
Texture
安卓手机优化前后
包体大小减少
内存开销大幅度减少
CPU开销小幅度上升
2️⃣Model导入设置检查与优化🔥🔥🔥
Unity模型导入基本流程
DCC工具导出设置(美术)
⭕️导出FBX格式
⭕️优化原始导入模型文件,删除不必要的数据
统一单位
导出网格必须是多边形括扑,不能是贝塞尔曲线、样条曲线等Unity不支持的网格
导出之前确保所有的Deforners都烘焙到网格模型上
不建议将模型使用的纹理随模型导出
导出时不要携带摄像机、灯光、材质等场景信息
⭕️原始模型对性能的影响点
最小化面数、三角面尽量分布均匀
不需要微三角面(1个三角面只包含个位数像素,LOD解决)
合理的括扑结构与平滑组,尽可能是闭包,防止Unity烘焙错误
尽量少的材质个数
尽量少的蒙皮网格
尽量少的骨骼数量
防止Unity后期CPU和GPU性能消耗
FK与IK节点分离,导出时要删除IK骨骼节点
Unity不支持导入的IK骨骼
模型导入设置
⭕️设置模型Model
Scene
Meshes
SkinMesh动态修改要开启Write/read
Mesh压缩
Geometry几何体
⭕️设置Animation
模型不涉及动画,可以关闭
⭕️设置Material
模型不涉及动画,None
⭕️模型优化
尽可能网格合并
尽可能共享材质
不使用网格碰撞体
不必要 不开启读写网格
合理使用LOD
SkinWeights受骨骼影响多
合理压缩网格
不需要rigs和BlendShapes劲量关闭
如果可以,禁用法线和切线
多套模型
检测报告解读
⭕️检查动画资源压缩方式Anim.Compression
最佳压缩方式提高加载速率
⭕️设置PlayerSetting
不涉及动画情况下,设置以下两个
Vertex Compression
OptimizeMeshData删除不必要的数据
⭕️检查FBX资源顶点数(可以忽略)
优化对比
包体大小不变
后期运行时,模型资源优化才是重点
3️⃣纹理的基础概念🔥🔥🔥
🚩Unity纹理的类型
Default
默认的纹理类型格式
NormalMap
法线贴图,可将颜色通道转换为适合实时法线贴图的格式
EditorGUI and LegacyGUI
在编辑器GUI控件上使用的纹理
Sprite
2D使用的Sprite或UGUI使用的纹理
Cursor
鼠标光标
Cookie
用于光照Cookie剪影类型的纹理
LightMap
光照贴图纹理
SingleChannel
原始图片只有单通道
🚩纹理大小
2的幂次方,1024,,52
Unity可以采用Bundle变体设置多套资源
⭕️通过Mipmap来限制不同平台、不同硬件来加载不同精度的贴图
纹理加载方式:TextureSteaming、稀疏纹理SparseTexture,VirtualTexture
增加细节贴图DetailMap或增加高反差来添加细节
在不降低视觉效果的情况下尽量减少贴图大小
通过SceneView-》DrawMode》MipMap查看
防止过采样(红色)和欠采样(蓝色)
🚩纹理颜色空间
⭕️默认大多数图像处理工具都会使用sRGB颜色空间处理和导出纹理,这时纹理选项的sRGB需要开启。
⭕️ 如金属度贴图、粗糙度贴图、或者法线贴图需要关闭,否则视觉错误表现
🚩纹理压缩
保持贴图视觉质量的同时,尽量减少纹理数据的大小
默认纹理原始格式是PNG或TGA
采用硬件支持的压缩方式
🚩纹理图集
优点
采用共同纹理图集的多个静态网格资源可以静态合批处理,减少DrawCall调用
纹理图集可以减少碎纹理过多,通过压缩降低纹理的内存成本和冗余数量
缺点
美术合理规划模型,模型有相同着色器,或需要制作通道图去区分不同材质
制作和修改成本较高
🚩纹理过滤
Trilinear 与 Bilinear 类似,但纹理也在不同的 MIP 级别之间模糊
Bilinear 纹理在靠近时变得模糊。
Point (no filter) 纹理在靠近时变为块状。
🚩纹理MipMap
⭕️逐级减低分辨率来保存纹理副本,相当于纹理LOD
优点
GPU不需要远距离对对象全分辨率采样,提高性能
解决了远距离下过采样导致噪点问题,提高渲染质量
缺点
额外内存开销
🎁🌻🌼🌸 粉丝福利来喽 🎁🌻🌼🌸
- 免费领取海量资源 🎁
简历自测评分表、Unity职级技能表、面试题库、入行学习路径等- 《Unity游戏开发五天集训营 》50个名额 🎁
我给大家争取到了 50个《游戏开发五天集训营 》名额,原价198,前50个免费
扫码加入,暗号小听歌
即可参加ARPG狼人战斗系统、饥荒生存类游戏开发、回合制RPG口袋妖怪游戏等游戏开发训练营- 额外抽奖机会🎁
参加游戏训练营、还有机会获得大厂老师在线面试指导、或者有机会获得价值1998元的《Unity极速入门与实战》课程
更多推荐
已为社区贡献1条内容
所有评论(0)