1.概述
在制作或者转换完模型(GLB格式)之后,模型可能还是会存在着一些问题,一般是因为在建模时,没有依照 FVS 所需的建模规范来进行操作导出,但是问题的原因可能是多方面的,所以在此进行一个问题分类指引,从问题源头开始检索,帮助大家更快找到问题发生的原因,也能够对症下药更快速的解决问题。
1.1 Sandbox介绍
使用 Chrome 或者 Microsoft Edge 打开 babylonjs 沙盒网页 Sandbox检查器链接(一个glb模型预览工具)将 glb模型 拖入窗口中,加载完成后点击右下角的按钮来调出菜单栏,可以获取到模型的相关信息。
1.2 模型数据总览
在右侧菜单中点击第三个按钮查看文件的总览数据,其中需要注意以下几项:
预览帧数:一般 60 帧即为流畅,若在 babylon.js 中帧率较低,则在 FVS 中帧率一定不高,显示上会有明显卡顿。
模型mesh数:模型中独立的网格的数量,是影响 FVS 性能的明显因素(因为导出 glb 后,模型会根据材质的不同进一步拆分为单个材质的网格,所以 mesh 数往往要比三维软件中的对象数要高)。
模型面数:模型中所有网格的三角面数(因为导出 glb 后,模型会将所有的四边面和多边面自动转换为三角面,所以模型面数也比三维软件中的面数多)。
模型使用贴图数:模型中所有材质所使用的贴图数量。
1.3 贴图信息
在左侧菜单中点击「Texture」展开贴图栏,在右侧菜单中点击第一个图标选项切换到选中的贴图信息。
点击左侧菜单中的任意一项贴图,在右侧菜单中即可以看到选中贴图的预览和分辨率。
点击右侧贴图下面的「Edit」选项即可在弹出窗口中放大观察贴图。
1.4 材质信息
在左侧菜单中展开「materials」栏,然后在列表中选中想要查看的材质,点击右边栏的第一个按钮即可查看该材质的相应参数,需要注意以下几项:
注:贴图可以点击贴图名称跳转到纹理信息界面,即可预览。
背面剔除:会将模型的背面剔除不显示
Alpha(不透明度):模型不透明的程度,数值从 0 到 1 ,表现为完全透明到不透明,需要搭配 alpha 模式来表现模型的透明效果
alpha模式:用于决定模型是怎么透明的,和 Alpha 值搭配表现透明效果,Opaque 为不透明,alpha test 则只能表现全透明和不透明两种,alpha blend 可以表现半透明效果
漫射贴图(通道):用于表现材质上的颜色,另外该贴图的alpha通道用于表现材质的透明程度
金属糙度贴图(通道):用于表现材质上的金属度和糙度,该贴图上的绿色通道用于表现粗糙度,蓝色通道用于表现金属度
法线贴图(通道):用于表现材质上凹凸不平的效果,建议使用 OpenGL标准 下的 normal 贴图(不建议使用 directX 标准,也不建议使用 bump 贴图)
自发光贴图(通道):用于表现材质上的自发光的效果
漫射颜色:材质的基础颜色
自发光颜色:材质自发光的颜色
金属度:数值为 0 为非金属,数值为 1 为金属
糙度:材质粗糙的程度,数值从 0 到 1
1.5 模型导出相关信息
点击右侧菜单的工具栏,其中展开「gltf validation」栏,再点击超链接来打开更多细节窗口,在窗口中按 CTRL+F 打开查找选项,输入下列关键词来检索相关信息
【draco】:查找该关键词,有图上所示的文本即表示该文件经过 draco 压缩,没有相关文本即表示该文件没有压缩
【generator】:查找该关键词,有该文本,则可以找到该文件是通过什么方式导出的,若没有该文本,则不能确定导出方式
2.模型问题分类定位
2.1 模型导入FVS不成功或模型不显示
在将模型导入 FVS 时,可能会遇到导入不成功或导入成功后模型未在场景中显示等问题。以下是导致模型导入失败或导入成功却未正确显示在场景中的几种常见原因:
(注:模型在导出时,可能会遭遇glb文件损坏的情况导致模型导入 FVS 失败,请优先尝试重命名后重新导出。)
问题描述 | 原因排查 | 解决方案链接 |
模型命名不规范 |
| 模型命名规范 |
模型网格数过大 |
| |
模型面数过多,导致文件体积大 |
| 减少模型面数 |
模型太小 |
| 模型大小比例参考 |
模型坐标轴里中心太远 |
|
2.2 模型导入成功后
2.2.1 场景卡顿
问题描述 | 原因排查 | 解决方案链接 |
模型太大 |
| |
贴图分辨率过大 | 优化贴图大小 | |
贴图数量或重复材质太多 | ||
同时开启fvs中多种功能 |
| FVS场景调整基础课程(详见第5章性能调整) |
电脑性能不足 | - | FVS安装及配置要求 |
2.2.2 物体坐标轴不位于模型中心点或底部
模型的坐标轴不在模型的中心位置,导入 FVS 之后看不到模型,可以点击右侧的模型列表,如果模型列表中有模型名称则代表导入成功。
对列表中的模型名称进行点击,看看场景中有没有出现坐标轴
如果没有出现坐标轴和模型可以滚动鼠标进行缩放或平移旋转物体,进行寻找
如果出现了坐标轴但是没有出现物体的话,导入 Sandbox 中查看是否模型为空物体
注:若确定为坐标轴问题,则需回到建模软件中将模型的中心点进行重置。
2.2.3 模型导入后外观显示问题
问题描述 | 原因排查 | 解决方案链接 |
模型材质丢失 |
| 材质查看详见本文1.4 |
模型部分面消失 |
| |
模型材质出现黑面 |
| |
半透明 Alpha 材质不显示 |
| 透明材质设置 |
发光材质不发光 |
| |
贴图显示错误 |
| |
模型导出与 blender 中有差别 |
| 修改器应用 |
3.动画出现问题
3.1 动画播放错误
模型动画导出步骤是否正确
导入 FVS 中后是否添加模型动画并开启
模型是否带有模型动画
3.2 动画播放速率与模型动画中不一致
模型动画制作完成后,导入 FVS 中添加模型动画并播放后,发现在 中的模型动画与在建模软件中制作的模型动画速率不一致。
建模软件中动画速度正常:
导入FVS中动画速度变快:
模型动画导出步骤是否正确
动画帧制作时的帧数与 FVS 默认帧数是否一致
解决方法:模型动画问题解决方法