基本3D格式
BIM文件格式
CAD文件格式
GIS文件格式

OBJ文件

OBJ文件是一种通用的3D模型格式,已被广泛应用于计算机图形学和三维建模领域。OBJ文件以文本形式存储,可用于表示面向多边形、曲面、曲线等复杂对象,同时可以指定材质、纹理贴图等。

文件结构

OBJ文件由若干行文本组成,每行以一个关键字开头,表明该行数据的类型。常见的关键字如下:

  • v:表示顶点,其后跟三个浮点数,分别表示该顶点的x、y、z坐标,可选还可以跟上第四个浮点数,表示顶点的不透明度。
  • vt:表示UV映射坐标,其后跟两个浮点数,分别表示像素点在纹理文件中的横、纵坐标,常用于指定贴图纹理。
  • vn:表示表面法线,其后跟三个浮点数,分别表示该法线在x、y、z轴上的分量,用于表面光照计算。
  • f:表示面,其后跟若干个点的索引,每个点索引由若干个用正斜杠/分隔的数值组成,排列顺序为顶点索引、UV坐标索引、法线索引。例如f 1/1/1 2/2/1 3/3/1表示一个三角形面,其中第一个点使用的顶点索引是1,对应的UV坐标索引和法线索引都是1,第二个点使用的顶点索引是2,对应的UV坐标索引是2、法线索引是1,以此类推。

OBJ文件中还可以包含其他关键字,如mtllib表示材质库文件名、usemtl表示使用的材质名称等。示例文件如下:

# 模型名称
v 1.0 0.0 0.0
v 0.0 1.0 0.0
v 0.0 0.0 1.0
vn 0.0 -1.0 0.0
vt 1.0 1.0
vt 0.0 0.0
f 1/1/1 2/2/1 3/2/1
f 1/1/1 3/2/1 2/1/1

规范链接

OBJ文件格式没有官方的规范文档,但已经成为一种广泛接受的标准格式,各种3D建模软件如Blender、3ds Max等都支持导入和导出OBJ文件。此外,还有一些第三方的说明文档和规范建议,例如Wavefront官方的OBJ格式说明和OBJLoader的规范。

总之,OBJ文件已经成为3D建模行业中的一种重要数据交换格式,不仅易于人类阅读理解,也便于应用程序的解析和处理。