历史版本11 :FVS模型性能优化指南 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 适用场景

此文档为适配FVS的模型优化指南。

这套模型优化指南会在建模软件中的模型处理方式上区别于其他3D可视化工具。

模型优化大致分为模型处理和贴图处理2类。

1.2 注意事项

其中标题后有“*”的为建模软件中需要重点关注的地方。

建议先根据GLB模型使用问题排查了解模型有什么问题,然后再根据优化指南知道如何解决模型问题。

2. 导出Glb模型编辑

3. 性能优化-模型处理类编辑

3.1 合并独立网格对象(减少mesh/对象数)*

什么是mesh数:

  • mesh数是影响glb文件在产品中性能的主要因素。

  • mesh指glb文件中的独立网格,所以mesh数是glb中所有独立网格的数量,且一个mesh上只会有一种材质。

  • mesh数也可以简单理解为三维软件中的对象数,但不同点在于三维软件中的对象可以有多个材质。

注:Glb中一个mesh只会有一个材质,所以当三维软件中导出glb时,其中的对象会根据其材质进一步拆分,所以会出现mesh数比三维软件中的对象数多的情况。

如何查看mesh数:

使用Chrome或者Microsoft Edge来打开babylonjs模型检测网站FVS模型检测网站,选择要查看的glb文件并上传,在右侧即可查看该文件的mesh数。

Mesh数建议:

一般mesh数建议控制在1000以下,不然容易造成预览卡顿,帧数低等情况。

操作方法:

若三维软件中对象数较多,可以通过合并那些不需要交互、没有实际业务使用需求的对象来减少对象数,从而导出后就能对应减少mesh数。

在blender中,合并的方式为:选中你想要合并的那些对象,按CTRL+J来进行合并。

 

附:

3.2 关联相同的对象 *

关联复制有什么效果:

可以起到共用一份物体数据,减少文件大小及预览帧数的作用。

这个优化方法适用于在场景中有很多重复的相同对象时去使用,例如多台机械设备、仓库货架、货物等。

根据建模完成情况,有2个阶段可以处理这类优化:1.模型制作过程中处理。2.模型已经做完后进行处理。

操作方法:

  • 模型制作过程中处理:

在blender中,选中你想要复制的物体,按快捷键ALT+D进行关联复制。同时右侧“数据”窗口会有你关联复制之后的对象数量。

如下图:“3”为已经关联复制之后的数量。

  • 模型已经做完后进行处理:

在blender中,如果现在所有的模型已经做完了,并且在做的过程中没有进行关联复制。可以对已经做好的对象进行处理,选中所有相同样子的对象,按快捷键CTRL+L来关联物体数据。

如下图所示,CTRL+L之后会跳出关联/传递数据的菜单,选择点击关联物体数据。同理,在进行关联物体数据之后,右侧“数据”菜单会有关联之后的对象数量,如下图的“20”。

 

注:过多的关联对象会使对象数量(mesh)变多。把不需要交互、没有业务使用需求的对象优先进行“合并”。其次把需要交互的、有业务使用需要的相同对象,进行关联复制/关联物体数据。

附:

3.3 减少模型面数

如何查看模型面数:

在blender中,在视图叠加层中找到统计信息并打开,就可以看到此模型的面数总数。如下图所示:

面数建议:

一般glb文件面数建议控制在1000w以下,不然容易导致文件较大、加载慢等问题。

操作方法:

减少模型面数的方法大致分为3种:使用低模素材、手动重新拓扑、借助建模软件内的功能精简模型。

  • 使用低模素材

在场景中,我们应该重点展示的是有业务使用需求的对象。其他配景模型或辅助模型都建议使用低模素材,例如雕塑、植物、装饰品、汽车、广告牌等。

  • 手动重新拓扑

如果我们现有的模型精度非常的高,又或者是建模软件、建模逻辑、模型互通等不同原因导致模型面数很高,我们应当手动重新以简洁的建模方法去新建相似的模型进行替换。

如下图,为圆柱体模型优化前后的面数变化,原本的圆柱体面数在500多个面,重新做一个简洁的圆柱体做替换只有50多个面。

 

  • 借助建模软件内的功能精简模型

可以借助建模软件内置的功能来进行模型简化。在blender中,使用修改器中的精简-塌陷/反细分/平面并修改其参数,从而对面数较高的模型进行优化精简并应用。

如下图,为使用精简修改器中的功能实现面数的优化。

  

注:精简完之后要”应用“。

附:

3.4 Draco压缩优化*

在blender中,导出时,应当勾选压缩选项(使用默认压缩设置即可)再进行导出。

使用Draco压缩可以在几乎不影响效果下,有效减小文件中网格数据占的大小(部分模型使用压缩会出现炸面的情况,可以先三角化再导出来解决该问题)

操作方法:

导出glb时,勾选”压缩“按钮,即为Draco压缩。

附:

三维模型相关文档快速引导:压缩glb文件(基于Node.js)

3.5 细节合理取舍

舍:

如果模型只是宏观展示时,因视觉距离远原因,其实没必要做出过多的模型细节,可以舍弃掉一些小的零部件或不重要的模型来减少对性能的影响,或使用简化的几何体来概括模型。

如下图,这么大的一个车间场景下,是看不清小物件的细节的。(如果需要镜头拉近了看,建议保留主要结构,删除螺丝等小零件。)

取:

在页面下钻到产线、单台设备的界面时,可以保留更多细节,因为视觉距离更近。

3.6 清除模型中孤立的数据

在建模软件中清理未使用的材质、网格、笔刷等模型残留物。

操作方法:

在blender界面的右上角显示模式中找到“孤立的数据”,点击清楚并点击确定,就会自动清理那些模型中没有使用的残留物。如下图:

 

4. 性能优化-贴图处理类编辑

4.1使用纹理贴图*

用贴图代替复杂的模型来表现模型细节。

操作方法:

如下图,看起来细节很多的模型,其实就是一张贴图贴附在简单的白模上。省去了去建那些门、窗等细节的时间,也减少了很多面数的增加。

注:需要建模师掌握UV贴图相关知识。