想想复杂的模型就交给3D设计师进行创作,而我们开发时只需引入模型文件,是不是很美滋滋?
当然,如果你时间充裕,又对模型创作感兴趣,那你确实可以花时间好好学习3D建模软件的使用,这样以后就可以自己创建所需模型,由自己导出与导入模型文件。因为从建模软件导出模型的过程中,其实有特别多的坑,一个不小心,导出的模型可能就大相径庭。所以依赖于别人导出的模型文件,有时你都不知道到底问题出在哪里。
一、Threejs支持的常见导出模型的文件格式有哪些?
- JSON(*.js/ *.json):专门为Three.js自己设计的JSON格式,你可以使用它以声明的方式定义模型,及模型材质和动画。
- OBJ和MTL(*.obj/ *.mtl):OBJ是一种简单的三维文件格式,只用来定义对象的几何体。MTL文件通常和OBJ文件一起使用,在一个MTL文件中,定义对象的材质。
- Collada (*.dae):用来定义XML类文件中数字内容的格式。差不多所有的三维软件和渲染引擎都支持这个格式。
- STL (*.stl):立体成型术 。 广泛用于快速成型。例如,三维打印机的模型文件通常是STL文件。Three.js有一个可定制的STL导出工具,STLExporter.js。可以将Three.js中的模型导出到一个STL文件。
- FBX (*.fbx):是FilmBoX这套软件所使用的格式,其最大的用途是用在诸如在max、maya、softimage等软件间进行模型、材质、动作和摄影机信息的互导,因此在创建三维内容的应用软件之间具有无与伦比的互用性。
- CTM (*.ctm):由openCTM创建的格式。可以用来压缩存储表示三维网格的三角形面片。
- VTK(*.vtk):Visualization Tookit 定义的文件格式,用来指定顶点和面。VTK有两种格式,Three.js支持旧的格式,即Asscii格式。
- PDB(*.pdb):特别的数据格式,由 蛋白质数据银行 场景,用来定义蛋白质的形状。Three.js可以加载并显示这种描述格式的蛋白质。