三维模型轻量化
一、现存问题和主要技术路线
在数字孪生场景应用中,模型大小一直是影响使用的关键因素。常见的轻量化手段有:
1. 消除模型中不必要的因素,看不见的地方都可以删掉。删除不必要的几何体从而减少模型的大小,同时还不影响模型整体效果。
2. 三维模型进行切分,按功能区等进行分类,分步骤加载场景。
3. 优化网格模型减少模型大小和离散化。减少模型之间重叠的面。
4. 通过减少模型顶点数进行轻量化。
5. 优化纹理贴图从而减小文件大小。
6. 精简化动画,只保留需要动的物体,对不动的物体进行合并处理。
二、draco压缩算法
谷歌推出的draco压缩算法极大程度上减少了模型大小。Gltf/glb模型上可以使用draco算法对模型的顶点位置,法线,颜色,纹理坐标等内容进行压缩。从而提高在网络上传输3D内容的效率和速度。本文由“物图科技”原创
KHR_draco_mesh_compression是draco算法中常见的压缩方式,在使用darco算法的时候要考虑画质问题,使用draco算法之后的模型可能是会出现画质的损失。同一个模型导出的glb和gltf大小不一,glb格式要比gltf小。
三、三维软件中解决方案
除了draco算法,在模型处理的时候就可以使用软件自带的相关修改器对模型进行初次轻量化,比如3dsmax中的专业优化命令,先统计模型的顶点数,通过减少模型的顶点数,从而达到模型轻量化的目的。
与之相近的还有一个优化修改器,通过参数面板的“面阈值”来控制模型的面数,设置的参数越高,模型的面数越少,反之,模型面数越多。使用命令进行减面的前提应该是保证模型的精度不受影响。
Blender中也有类似的修改器----精简修改器(Decimate)提供了三种优化的方法,塌陷、反细分、平面。塌陷最为常见,通过控制比率从而达到模型的减面优化,在使用塌陷之前,先要对模型进行合并顶点处理,使模型的顶点都相连接。反细分用于使用细分命令过头的模型,通过反细分减少细分的次数。
平面则是通过面与面的角度来控制面数的多少,角度越高,面数相应越少。两个接触的物体可以使用布尔运算对中间重合的地方进行删除,从而减少模型大小。本文由“物图科技”原创
除了三维软件自带的轻量化工具,meshlab等软件也提供了轻量化服务。Meshlab主要的功能是通过三维点云信息生成三维模型,支持导出obj等三维格式。处理完点云模型,可以对该模型进行减面,优化精简。
对于像zbrush等工具生成的模型。模型减面计算量大,直接进行减面的话容易造成电脑卡死。这时候就可以使用拓扑工具,在模型原有基础上重新处理模型。常见的插件如Quad Remesher,可以手动进行描绘也可以点击直接生成拓扑模型。拓扑完的模型会生成一个,原有的模型uv无法继承。需要重新拆uv处理。
除了拓扑这种直接调整模型之外,还可以使用sp。八猴等进行高模烘低模的方式达到轻量化的效果。高模可以用sp或者blender进行雕刻,最后会生成一张法线贴图,将高模的细节烘焙到低模上。
关于模型轻量化处理的方法很多,根据不同需求进行不同的操作,合理使用轻量化工具,有利于数字孪生模型进一步提升。
本文由“物图科技”原创,其版权属物图科技所有。其他媒体、网站或个人未经授权严禁转载,不得歪曲和篡改本文所发布的内容。
推荐阅读
2023/04/18
2023/04/27
2023/05/05
2023/04/07
2023/05/15