3D模型的格式有很多,每个公司或软件都可以自己定义自己的格式,或公开或不公开。如max,obj, x(微软),fbx(被Autodesk收购),dae,md2(Quake2),ms3d(MilkShap3D),mdl(魔兽3)等等。
- MD2是Quake2里的模型文件格式,带有顶点动画;
- OBJ是一种文本格式存储的模型文件格式,只能存储静态模型;
- MS3D模型文件格式,全称MilkShape 3D,是一种带骨动画的模型格式,也是《半条命》所使用的模型格式。
- md3是关键动画,md5是骨骼动画。
常用的3D模型有静态的和动态的,区别就是前者不能插入动画(无论是骨头动画还是按键动画),而后者可以插入动画。
- 静态的如3ds和obj等,3ds是3DsMax的最新版本格式(Autodesk公司),也是比较通用的格式,几乎所有的3D软件都可以使用;
- 现在好的图像已经被废弃了,取而代之的是他们的max格式(3dsmax专用格式),max文件可以包含动画,被其他软件或游戏引诱3D。
- 在openGL下导入3ds模型很方便,如果不想自己写导入文件,就去找到lib3ds吧,它是专门读取3ds模型的标准库。
- OBJ文件是一种标准的3D模型文件格式,很适合用于3D软件模型之间的交互引导。比如你在3dsMax或者LightWave中构建了一个模型,想抓到Maya画,导出OBJ文件就是一种很好的选择。目前几乎所有已经知道的3D软件都支持OBJ文件的阅读,不过很多软件都需要通过插件才能做到这一点。obj文件本身虽然不能包含颜色信息,但可以引用材料库。在maya导出obj时,如果导入材质,maya会同时生成一个名为.mtl的文件,这个文件包含有模型的颜色信息。也可以认为,obj是可以包含材质和贴图信息的。这点和makehuman是一样的,如果选择导出obj格式的模型就输出三个文件其中两个就是obj和mtl。
- fbx格式和MS3D格式,是一种可以用骨骼动画的模型格式,后期者也是《半条命》所使用的模型格式。好象是fbx格式没有要公开的GL,open格式提供的fbx SDK才能够方方便地读取存储等操作。
https://blog.csdn.net/henryhu712/article/details/126569848
OBJ
OBJ文件是Alias | Wavefront公司为它的一套基于工作站的3D建模和动画软件“AdvancedVisualizer”开发的一种标准3D模型文件格式。
OBJ文件一般包括三个子文件,分别是.obj、.mtl、.jpg,除了模型文件,还需要.jpg纹理文件。OBJ可以是传统模型,也可以是倾斜模型。
OBJ格式适合用于3D软件模型之间的互导。比如Smart3D里面生成的模型需要修饰,就可以输出OBJ格式,然后导入到3dsMax进行处理;如果你想把在3dsMax中建的模型调到Maya里面渲染或制作动画,导出OBJ文件就是一种很好的选择。
目前几乎所有知名的3D软件都支持OBJ文件的读写,不过其中很多需要通过插件才能实现。另外,OBJ文件还是一种文本文件,可以直接用写字板打开进行查看和编辑修改。
FBX
FBX是FilmBoX软件中所使用的格式,后来这一软件改名为Motionbuilder。
因为Motionbuilder扮演的是动作制作平台,所以FBX格式最大的用途是在3dsMax、Maya、softimage等软件间进行模型、材质、动作和摄影机信息的互 导,这样就可以发挥max和maya等各个软件的优势。可以说,FBX方案是最好的互导方案。
OSGB
OSGB的全称是Open Scene Gragh Binary。这里的Binary是二进制的意思。
目前市面上生产的倾斜模型,尤其是Smart3D处理的倾斜摄影三维模型的数据组织方式一般是二进制存贮的、带有嵌入式链接纹理数据(.jpg)的OSGB 格式。
此类数据文件碎、数量多、高级别金字塔文件大。因而难以形成高效、标准的网络发布方案,无法实现不同地域、不同部门之间的数据共享。
GLTF
GLTF的全称是Graphics Language Transmission Format(图形语言传输格式)。这种跨平台格式已成为Web上的3D对象标准。它由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,这使得GLTF基本上成为3D模型的JPG格式:Web导出的通用标准。
GlTF是一种可以减少3D格式中与渲染无关的冗余数据并且在更加适合OpenGL簇加载的一种3D文件格式。GlTF的提出是源自于3D工业和媒体发展的过程中,对3D格式统一化的急迫需求。如果用一句话来描述:GlTF 就是三维文件的 JPEG ,三维格式的 MP3。在没有GlTF的时候,大家都要花很长的的时间 来处理模型的载入。尽管一些3D Web框架支持特定于平台的模型格式,如FBX和OBJ,但几乎每个框架都支持GLTF。如果有人要为你提供3D模型,你可以请求他们提供GLTF格式的版本。
GLTF是一种输出格式,这意味着我们无法直接修改它们。但我们可以修改其位置和大小,并对其进行旋转操作。
另外,GLTF文件不是单个文件,而是包含JSON文档、图片、几何图形、纹理、凹凸贴图等的文件夹。
USDZ
USDZ(Universal Scene Description)由苹果与皮克斯共同研发。
USDZ格式专门用来存储 AR 图像。这种格式可以通过短信、邮件发送,也可以放在网页上供人下载。
相比其它3D格式而言,USDZ最明显的优势是极大提升访问效率。由于其采用无压缩方式打包、非加密的Zip文件存储,意味着文件是可直接被读取的, 而且USDZ文件分享也非常方便。
另一个特点就是,在苹果的Safari、邮件等自家App中,配合ARKit 2即可实现AR快速预览功能。
STL
STL文件格式stereolithography(光固化立体造型术)的缩写,是由3D SYSTEMS 公司于1988 年制定的一个接口协议。STL 文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个定点的三维坐标及三角形面片的法矢量。
STL文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式。它包含两种:一种是ASCII明码格式,另一种是二进制格式。因为STL文件 格式简单,所以应用非常广泛。
STL文件只能描述三维物体的几何信息,不支持颜色材质等信息,是计算机图形学处理CG,数字几何处理如CAD,数字几何工业应用(如三维打印机)支持的最常见文件格式。STL也是目前最多快速原型系统所应用的标准文件类型。
FBX: 编程知识汇总–3D模型文件的通用格式