+ -
当前位置:首页 → 问答吧 → 关于3D模型文件,OBJ文件结构问题

关于3D模型文件,OBJ文件结构问题

时间:2011-11-17

来源:互联网

在obj中,例如:
f 1/1/1 2/2/2 3/3/3
表示该行记录一个三角形,后面跟着三个顶点信息,信息包括顶点索引、纹理坐标索引、法线索引。
但是如果索引值为负值的话,它表示什么?
例如:f -448/-494/-448 -480/-527/-480 -481/-528/-481 -449/-495/-449
有人说:“:-448表示从这行往上数第447个顶点,其它类似。”关于这“行”的概念,请大神解释啊!!!!到底是怎么数的?
例如:
v -2.077700 -0.129800 -3.699900
v -2.638900 -0.275800 -2.635100
v -2.193400 0.558700 -3.334800
v -2.294400 -1.009200 -3.267500
v -2.337100 0.617200 -2.437600
v -2.246000 0.063600 -2.256200
vt 0.849700 -0.175500
vt 0.901400 -0.025400
vt 0.872200 -0.250600
vt 0.861900 -0.025400
vt 0.915800 -0.192900
vt 0.809300 -0.165100
vn -0.183730 0.976678 0.111099
vn -0.394459 0.544985 0.739860
vn -0.335787 0.204371 0.919500
vn -0.169028 0.930211 0.325787
vn 0.481779 -0.239149 -0.843029
vn 0.400223 0.890584 -0.216058
f -10/-10/-10 -11/-11/-11 -12/-12/-12
上面的f那一行怎么解释?更甚者,当中还有其他信息,例如:
v -2.077700 -0.129800 -3.699900
v -2.638900 -0.275800 -2.635100
v -2.193400 0.558700 -3.334800
v -2.294400 -1.009200 -3.267500
v -2.337100 0.617200 -2.437600
v -2.246000 0.063600 -2.256200
# 6 vertexs
vt 0.849700 -0.175500
vt 0.901400 -0.025400
vt 0.872200 -0.250600
vt 0.861900 -0.025400
vt 0.915800 -0.192900
vt 0.809300 -0.165100
# 6 textures
vn -0.183730 0.976678 0.111099
vn -0.394459 0.544985 0.739860
vn -0.335787 0.204371 0.919500
vn -0.169028 0.930211 0.325787
vn 0.481779 -0.239149 -0.843029
vn 0.400223 0.890584 -0.216058
# 6 normals
f -10/-10/-10 -11/-11/-11 -12/-12/-12
上面这一行有怎么解释?
求大神详细解释!!!!!!!!!!

作者: lei_2050   发布时间: 2011-11-17

f后面是三角形顶点在顶点列表中的下标,如果所有f值都是负的,可以全部取反。

作者: dizuo   发布时间: 2011-11-17

引用 1 楼 dizuo 的回复:

f后面是三角形顶点在顶点列表中的下标,如果所有f值都是负的,可以全部取反。

取反?取绝对值吗?这样试过了,不对的。

作者: lei_2050   发布时间: 2011-11-17

负值说明导出Obj时使用了相对坐标,这里相对是指当前位置之前定义的最后一个顶点向上寻找,比如
v ... 1
v ... 2
v ... 3
...
f -1 -2 -3
相当于使用绝对坐标时的
f 3 2 1

作者: gaogaf   发布时间: 2011-12-28