不明白.obj文件

时间:2014-04-28 08:03:40

标签: c++ opengl

v 0.437500 0.164063 0.765625
...
vn 0.664993 -0.200752 0.719363
...
f 47//1 1//1 3//1
...
f 1//7 11//7 9//7
f 1//7 9//7 3//7

这就是我的obj文件的样子。你能帮我理解这个.obj文件吗?每行和每列代表什么?我如何想象它。我正在尝试使用Java3D API加载模型。

Link to loading .obj file

glNormal3f(normals[it->norm_indices[0] -1 ].x, 
           normals[it->norm_indices[0] -1 ].y, 
           normals[it->norm_indices[0] -1 ].z);

所以,我无法理解上面的代码。我想知道代码究竟在做什么。

1 个答案:

答案 0 :(得分:2)

normalsstd::vector,其中包含xyz个浮点数的结构。这些与.obj文件中的vn行中的相同。这些索引使用0个索引编制索引。

it是包含vert_indicesnorm_indices结构的向量的迭代器,它们与您在f行中看到的相同。这些是基于1的指数。

因此,您可以通过获取面的norm_indices并减去1来获得点的法线。