当我们的客户在带上 AR 眼镜去体验所展示的三维模型的时候,常会遇到这样的问题:

模型内容帧率掉帧,动画播放时有卡顿!

这无疑让用户体验打了折扣。,在不受外界因素干扰的情况下,如何保证我们的虚拟模型内容在 AR 眼镜端展示规避掉帧的问题,动画“丝滑”播放呢?

其实一言以蔽之就是要降低耗能,把模型做的轻量化、标准化、精准化?

为了帮助大家更好地理解「AR-模型」的制作标准,我们首先“简单图说”Untiy 的渲染原理:

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

图 | Unity 渲染原理-颖慧

从上面这张导图我们可以清楚地了解到,渲染效果的核心主要体现在 CPU 和 GPU 交流计算资源上。它使引擎中的内容可在预期的帧率和分辨率下工作。其中,CPU 主要负责保证帧率,GPU 主要负责分辨率相关的一些处理。

也就是说:

  • 针对 CPU:我们要在 Batches 过程中减少 draw call 数目;
  • 针对 GPU:我们要多做减法。尽量减少需要处理的顶点数目;减少需要处理的片元数目(警惕透明物体、减少实时光照);减少计算复杂度,优化代码;减少纹理大小、利用分辨率缩放节省内存带宽。

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

依据以上理论,我们需要优化场景中的文件数量。那么,具体到场景中的三维模型,应该如何变地轻量化呢?

在「AR-模型」制作领域当前并没有一个统一的标准,我们通过大量的,在 AR 端的工业模型制作逐步积累总结经验,并最终通过大型项目而归纳总结了一套“干货标准”。

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

图 |「国家电网项目」三维模型图集

参照以下针对模型轻量化的 9 条标准,我们能够有效优化及释放算力,从而使得我们的模型在 AR 端播放的过程中“丝滑流畅”,不掉帧、不卡顿。

模型制作方面

关键词:标准化

严格参照图片制作设备外观,如需实际比例 1:1 还原,请严格参照实际尺寸。模型制作过程中对于看不到的面做删除,合并断开的顶点。

不做交互和动画的模型合并成一个模型,模型层级可分有一二,不可有第三层级,模型命名用拼音全拼(不缩写)。

模型面数方面

关键词:轻量化

单个模型面数控制在 30 万个面以内;1 个应用中的全部模型面数控制在 100 万个面以内。优化顶点数,保证顶点法线 1 根;减少切割 UV 零散,按照物体结构拆分,删除隐藏或被遮挡的面。

注意:设备测试加载的模型面数最高上限为 400 万个面,但不够为标准规范推广使用,只作为设备性能测试反馈。

贴图制作方面

关键词:2 次方

1 个模型用 1 张贴图(1024*1024,酌情可以 2 次方递减),贴入 diffuse 通道,diffuse 贴图包含 Color\AO\Roughness 信息(用 Ps 做信息叠加合成一张),格式 jpg,控制贴图数量。

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

图 | 贴图流程如图所示

材质属性方面

关键词:材质节点

带纹理无透明效果,材质属性建议使用默认普通材质;带透明效果,选择默认材质中的透明效果。

注意:材质贴图路径不能是本地路径,请以软件工程路径为准(防止导出 fbx 文件后贴图丢失)

提示:优化材质节点(提倡材质球的供用,控质材质球数量,清除废弃的材质节点,尽量优化、减少场景中透明、发光、高亮、折射、反射效果的材质)

命名方面

关键词:规范化

模型文件——项目名(大写首字母)+二级命名(课程名/二级类别,大写首字母)+model+模型名称(全拼)。

例:NW_GXRJ_model_bi.fbx

动画文件——项目名(大写首字母)+二级命名(课程名/二级类别,大写首字母)+An+模型名称(全拼)

例:NW_GXRJ_An_bi.fbx

输出方面

关键词:历史记录

清除历史记录、清除场景废弃模型、节点;清除隐藏显示模型;所有坐标参数归零;模型的物体中心坐标点在世界坐标点上。

maya/3DMax 系统单位设置“cm”,动画设置以 25/S,输出格式 fbx。

动画制作

关键词:可循环

Unity 动画统一使用 Unity 的 Animator 制作。(建议:设计可循环动画,时长 2S,25/S)

特效制作要求

关键词:粒子数

特效最好使用 Unity 自带粒子系统制作(不使用任何插件及脚本控制),特效的坐标中心点要保持在物体中心点,粒子发射。

应用中所有模型最终输出要求

关键词:分类/层级

输出模型文件为 unitypackage 文件,文件名(一级项目名称+二级类别名称+三级模型名称首字母。

例:NanWang_lensson1_gxrjqx),并且两个内容无交叉公用的 material,shander,texture 等内容,若有需要如图中所示建立 Common 文件分类存放。

要求:在 Unity 中调好材质效果、动画效果;方便直接对接开发使用内容)

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

图 | AR 课程制作的命名参考-颖慧

总结说明

最后,简单总结一下模型轻量化的几个要点:

  1. 优化模型的顶点数和面数;
  2. 控制贴图的数量、像素和格式;
  3. 控制材质属性和数量,灯光和阴影的数量,动画时长和骨骼数量;
  4. 对模型文件进行轻量化处理。

欢迎关注作者微信公众号:「联想上研」

拒绝卡顿掉帧!9 条AR模型内容设计干货一次给你!

收藏 1
点赞 10

复制本文链接 文章为作者独立观点不代表优设网立场,未经允许不得转载。