程序员中的美工

用blender分析OBJ文件格式简介

使用blender3.0软件生成的盒子,保存成 box.obj  ,用记事本打开格式如下。

# Blender v3.0.0 OBJ File: ''
# www.blender.org
mtllib box.mtl
o 立方体
v -1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v 1.000000 1.000000 1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -1.000000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.625000 0.750000
vt 0.375000 0.750000
vt 0.625000 1.000000
vt 0.375000 1.000000
vt 0.125000 0.500000
vt 0.125000 0.750000
vt 0.875000 0.500000
vt 0.875000 0.750000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/6/3 8/5/3 6/7/3 5/8/3
f 5/8/4 6/7/4 2/9/4 1/10/4
f 3/11/5 7/6/5 5/8/5 1/12/5
f 8/5/6 4/13/6 2/14/6 6/7/6

上面这个obj文件描述了一个立方体。包括8个顶点24个纹理坐标和法向量,12个面(三角形)。obj文件中,几何实体必须以"V”、"VT”、"VN”或"F”开头,一个几何实体占据一行。所以在解析obj文件的时候,若一行不是以V\VT\VN\F这几个字母开头,就可以忽略掉这行。

下面是几个字母代表的几何实体类型:

V:代表顶点。格式为V X Y Z,V后面的X Y Z表示三个顶点坐标。浮点型

VT:表示纹理坐标。上面的立方体有24个纹理坐标,因为每个三角形面的三个顶点,都需要指定一个纹理坐标。格式为VT TU TV。浮点型

VN:法向量。同样,上面立方体也有24个法向量,因为每个三角形的三个顶点都要指定一个法向量。格式为VN NX NY NZ。浮点型

F:面。面后面跟着的整型值分别是属于这个面的顶点、纹理坐标、法向量的索引。面的格式为:

f Vertex1/Texture1/Normal1 Vertex2/Texture2/Normal2 Vertex3/Texture3/Normal3

比如这样一行索引f 7/9/21 1/10/22 5/11/23,包含三组索引,构成了一个面。

posted on 2022-04-01 11:58  无聊之猿  阅读(574)  评论(0编辑  收藏  举报

导航