理解obj模型文件的格式和每行的意义

示例obj模型文件:

#Blender v2.60 (sub 0) OBJ File: ‘’
#www.blender.org
mtllib cube.mtl
o Cube
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.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
usemtl Material
f 1 2 3 4
f 5 8 7 6
f 2 6 7 3
f 3 7 8 4
f 5 1 4 8
usemtl Material.001
f 1 5 6 2

OBJ文件格式:

OBJ格式的文件由若干个部分组成,包括顶点坐标部分、表面定义部分、材质定义部分等。每个部分定义了多个顶点、法线、表面等等。

(1)以井号(#)开头的行表示注释,上面1行和2行就是软件根据自身版本创建出来的注释。

(2)第3行引用了一个外部材质文件。OBJ格式将模型的材质信息存储在外部的MTL格式的文件中。

mtllib < 外部材质文件名 >这里,外部材质文件是cube.mtl。

(3)第4行按照如下格式指定了模型的名称:

o < 模型名称 > 示例程序中没有用到这条信息

(4)第5行到第12行按照如下格式定义了顶点的坐标,其中w是可选的,如果没有就默认为1.0 。

v x y z [w]本例中的模型时一个标准的立方体,共有8个顶点。

(5)第13行到第20行先指定了某个材质,然后列举了使用这个材质的表面。第13行指定了材质名称,该材质被定义在第3行引用的MTL文件中。

usemtl < 材质名 >

(6)接下来的第14行到第18行定义了使用这个材质的表面。每个表面是由顶点、纹理坐标和法线的索引序列定义的。

f v1 v2 v3 v4 ···

其中v1、v2、v3、v4是之前定义的顶点的索引值。注意,这里顶点的索引值从1开始,而不是从0开始。本例为了简单,没有包含法线,如果包含了法线向量,就需要遵照如下格式:

f v1//vn1 v2//vn2 v3//vn3 ···

其中,vn1、vn2等式法线向量的索引值,也是从1开始。

(7)第19行到第20行定义了使用了另一个材质的表面,即橘黄色的表面。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值