三维模型格式总结整理
1、模型格式多样性
3D模型格式很多,保守估计几十种。如X\dae\obj\3ds\max\ma\mb\c4d\md2\fbx\rwx\wrl\stl\stp\3mf\slprt\dwg\osg\iges…一些机构还会定义自己的模型格式。
2、数字模型应用的两大主要领域
总的来说分为两大领域:DCC(Digital Content Creation)领域和CAD/CAM(Computer Aided Design/Manufacturing)领域。前者主要偏向可视化,应用于游戏、影视动画、当前的VR和AR;后者主要面向工业设计制造。
3、两大领域模型的特点
DCC软件多以mesh/polygon形式制作模型,通过对顶点、线段、面片网格进行模型的编辑。CAD/CAM软件多以nurbs曲面形式制作模型,通过对样条线的编辑生成曲面模型。两种模型的区别有点像“像素”图像和“矢量”图像的区别。前者长于制作形状怪异细节复杂的有机模型,如怪兽,山洞;后者长于制作表面光滑的机械模型,如汽车外壳。
4、两类模型精度特点
总的来说DCC软件生成的模型精度低于CAD软件生成的模型精度。应用到具体行业,游戏模型≈VR\AR模型<影视模型<工业模型。对应的模型顶点数量级别依次是十万级别,百万级别,千万级别。 具有移动平台、实时渲染属性的项目一般用到的都是低模。
5、常见的建模软件:
DCC软件:3dsmax\Maya\Blender\Cinema4D\Mono\ZBrush…
CAD\CAM软件:UG\Pro/E\Solidworks\Catia\autoCAD\Rhino\Alias…
6、模型格式种类:
每种软件都有自己的专用格式,如3dsMax的源文件格式为.max;Solidworks的源文件格式为.slprt。此外还有一些通用交换格式,用于不同软件之间互导。DCC领域最常用的通用格式是obj和fbx;CAD\CAM领域最常用的通用格式是stp\iges\stl。但通用格式有一个问题,它总是不能把软件内场景的所有信息导出,而是导出通用格式所支持的那一部分属性。
7、Unity、Unreal等引擎对模型的要求
目前来看,主流引擎和DCC领域软件关系比较紧密,这从引擎支持的模型格式可以看出。比如Unity3d官方推荐的模型格式有两类,一类是导出的通用格式,支持fbx\dae\obj\3ds\dxf\skp;另一类是DCC软件原生格式,支持max\maya\blender\cinema4D\Modo\Lightwave。这些两类格式都属于DCC流派。
8、Obj和fbx的区别
Fbx可以看做是比obj更高级的模型格式。Obj属于静态模型格式,不支持动画,仅记录模型的网格信息和材质信息(还需外挂mtl文件)。Fbx在此基础上还支持骨骼动画,Morph/Blend shape,顶点动画,高级贴图,相机,灯光等。
9、模型减面优化
由于硬件性能等限制,项目中模型的优化工作目前还是普遍常态。模型优化主要有两种方法,一种是由模型师在软件内手动优化,效果好效率及低,不利于批量化生产。另一种方法是软件自动优化,效率高,一般的算法都是以保持模型轮廓为主,普遍存在模型拓扑结构不合理的缺点,不利于后续的编辑,如柔性动画,但我们面向工业维修的话基本都是刚性动画,所以影响不大。大多数主流三维软件都内置减面工具或附带减面插件。另外也有很多独立软件专门做模型优化工作,如:MeshLab:一个开源、可移植和可扩展的三维几何处理系统,主要用于交互处理和非结构化编辑三维三角形网格。官网:http://www.meshlab.net/
Atangeo:A high-quality, ultra-fast polygon reduction tool。
官网:http://www.atangeo.com/home
10、模型格式转换
格式转化就会用到通用模型格式。CAD\CAM软件—>stp\stl\iges—>obj\fbx