问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity模型资源导入设置与优化指南

创作时间:
作者:
@小白创作中心

Unity模型资源导入设置与优化指南

引用
CSDN
1.
https://blog.csdn.net/qq_34800671/article/details/143935759

在Unity引擎中,模型资源的导入和优化是游戏开发中的重要环节。本文将详细介绍模型导入的设置和优化方法,帮助开发者提升游戏性能和资源管理效率。

优化的目标

在开始之前,让我们重申模型优化的主要目标:

  1. 文件体积尽可能小
  2. 内存占用尽可能小
  3. 画质够用

DCC中模型要求

在DCC工具中创建模型时,需要注意以下几点:

  • 文件格式:Unity支持多种标准和专有模型文件格式(DCC)。建议使用.fbx文件格式,避免使用专有文件格式。
  • 模型数据:优化原始导入模型文件,删除不必要的数据,如:
  • 统一单位
  • 导出的网格必须是多边形拓扑网格,不能是贝塞尔曲线、样条曲线、NURBS、NURMS、细分曲面等
  • 烘培Deformers,在导出之前,确保变形体被烘培到网格模型上,如骨骼形变烘培到蒙皮权重上
  • 不建议模型使用到的纹理随模型导出
  • 如果需要导入blend shape normals,必须指定光滑组smooth groups
  • DCC导出面板设置,不建议携带场景信息导出,如摄像机、灯光、材质等信息

Unity模型导入流程

原始模型文件对性能的影响点

  • 最小化面数:不要使用微三角形,一定要使用LOD对原始模型进行调整
  • 网络拓扑和平滑组:尽量保持闭包
  • 材质个数:尽量少使用,避免shader和贴图暴涨
  • 蒙皮网格:尽可能少使用
  • 骨骼数量:过多的骨骼数量可能导致CPU和GPU瓶颈
  • FK与IK节点:IK节点在Unity中不支持导入,导出时应删除

Unity模型的设置面板

Scene面板

  • Scene:场景级属性,例如是否导入灯光和照相机,以及使用什么比例因子。
  • Scale Factor:缩放因子,用于调整模型导入后的大小。
  • Convert Units:单位转换,默认为米。
  • Import BlendShapes:是否导入BlendShape表情。
  • Import Visibility:可见性是否导入。
  • Import Cameras:摄像机是否导入。
  • Import Lights:灯光信息是否导入。
  • Preserve Hierarchy:保留层次结构。

Mesh面板

  • Mesh Compression:设置压缩率级别以减小网格的文件大小。
  • Read/Write Enabled:启用后,Unity会将Mesh数据保留在CPU可寻址的内存中。
  • Optimize Mesh:确定网格中三角形的排列顺序,以提高GPU性能。
  • Generate Colliders:启用自动生成网格碰撞器。

Generate面板

  • Keep Quads:阻止Unity将具有四个顶点的多边形转换为三角形。
  • Weld Vertices:合并在空间上具有相同位置的顶点。
  • Index Format:定义网格索引缓冲区的大小。
  • Normals:定义是否以及如何计算法线。
  • Normals Mode:定义Unity如何计算法线。
  • Smoothing Angle:控制是否为硬边分割顶点。
  • Tangents:定义应如何导入或计算顶点切线。
  • Swap UVs:交换网格中的UV通道。
  • Generate Lightmap UVs:为光照贴图创建第二个UV通道。

Rig面板

  • Animation Type:有None、Legacy、Generic、Humanoid四个选项。
  • None:没有骨骼(静态物件)。
  • Legacy:使用旧版动画系统。
  • Generic:适用于非类人动物的装备。
  • Humanoid:适用于类人动物的装备。

Materials面板

  • Material Creation Mode:有None、Standard、Import via MaterialDescription三个选项。
  • Location:有Use External Materials和Use Embedded Materials两个选项。
  • Extract TexturesExtract Materials:用于导出材质和贴图。

优化思路

  • 尽可能合并网格
  • 使用共享材质
  • 避免使用网格碰撞体
  • 合理设置LOD级别
  • 控制Skin Weights
  • 合理压缩网格
  • 关闭不必要的功能
  • 禁用法线或切线
  • 使用多套模型

进一步优化建议

在处理导入Unity的网格时,应注意以下四点:

  1. Read/Write Enabled:如果不需要在运行时访问网格,应禁用此选项。
  2. Vertex Compression:将网格顶点信息的精度从float改为half,以减少内存使用和文件大小。
  3. Mesh Compression:提供四种压缩设置:Off、Low、Medium、High。
  4. Optimize Mesh Data:自动删除不必要的顶点数据,但可能会影响动画效果。

此外,还可以通过以下方式进一步优化:

  • 如果模型未使用法线、切线、光照等,可以设置为None或取消勾选。
  • 勾选Rig中的Optimize Game Objects。
  • 对于没有动画的模型,取消勾选Animation中的Import Animation。
  • 通过Anim.Compression选择合适的动画压缩策略。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号