模型资源优化
模型资源工作流
DCC导出设置
格式
Unity 支持多种标准和专有模型文件格式(DCC)。Unity 内部使用 .fbx 文件格式作为其导入链。最佳做法尽可能使用 .fbx 文件格式,并且不应在生产中使用专有文件格式。
数据
- 统一单位;
- 导出的网格必须是多边形拓扑网格,不能是贝塞尔曲线、样条曲线、NURBS、NURMS、细分曲面等;
- 烘培Deformers,在导出之前,确保变形体被烘培到网格模型上,如骨骼形变烘培到蒙皮权重上;
- 不建议模型使用到的纹理随模型导出;
- 如果需要导入blend shape normals,必须要指定光滑组smooth groups;
- DCC导出面板设置, 不建议携带场景信息导出,如不建议导出摄像机、灯光、材质等信息,因为这些的信息与Unity内默认都不同,除非自己为某DCC做过自定义导出插件;
原始模型文件对性能的影响点
- 最小化面数,不要使用微三角形,分布尽量均匀;
- 合理的网络拓扑和平滑组;
- 尽量少的使用材质个数;
- 尽可能少的使用蒙皮网格;
- 尽可能少的骨骼数量;
- FK与IK节点没分离,IK节点没删除;
模型优化
- 尽可能的将网格合并到一起;
- 尽可能使用共享材质;
- 不要使用网格碰撞体;
- 不必要不要开启网格读写;
- 使用合理的LOD级别;
- Skin Weights受骨骼影响个过多;
- 合理压缩网格;
- 不需要rigs和BlendShapes尽量关闭;
- 如果可能,禁用法线或切线;
- 多套模型;
Unity模型导入设置
- 导入选项如无特殊需求可以关闭;
- 网格设置:Unity默认不开启,但在保证网格正确的情况下可以采 用更激进的压缩方式,可以保证网格占用的磁盘空间更小,但运行时的内存并不会减少;
- 读写网格:开启后会创建一份网格副本,一份保存在内存中,一份保存在GPU显存中,只有运行时需要动态修改网格数据时才开启;
- Index Format:确认网格数不超过65535的情况下可以使用16bit索引;
- Player Settings:Vertex Compression设置每个通道的顶点压缩;Optimize Mesh Data可根据网格使用的材质删除不需要的数据,如模型没用到的法线、切线、uv等等;