在OBJ文件中,v / vt / vn可以是不同的数字吗?

时间:2015-08-05 00:27:21

标签: file opengl

格式指定面部表示为:

 f 1/1/1 2/2/2 3/3/3 4/4/4

Using v, vt, and vn to represent geometric vertices, texture vertices,
and vertex normals, the statement would read:

 f v/vt/vn v/vt/vn v/vt/vn v/vt/vn

三联体是否是非均匀的情况,如1/2/1?

(我有点困惑,因为openGL使用单个索引数组,但是OBJ使用三个索引,好像在某个地方允许多个索引数组一样?)

2 个答案:

答案 0 :(得分:2)

是的,索引可能不同。这是维基百科文章中的一句话:

f 6/4/1 3/5/3 7/6/5

是的,OpenGL只支持一个索引数组。这意味着您无法通过OpenGL管道传输数据,而无需先进行重要的预处理。

我相信这种格式可以追溯到20世纪80年代,早于OpenGL,当然意味着文件是用软件渲染器可视化的,可能是在与连接内存一样慢的CPU上。世界已经发生了变化。

答案 1 :(得分:2)

  

三联体是否是非均匀的情况,如1/2/1?

是的。负值也是possible

  

引用顶点数据

     

对于所有元素,参考编号用于标识几何   顶点,纹理顶点,顶点法线和参数空间   顶点。

     

每种类型的顶点都单独编号,从。开始   这意味着文件中的第一个几何顶点是1,第二个是2,依此类推。文件中的第一个纹理顶点是1,即   第二个是2,依此类推。编号继续顺序进行   贯穿整个文件。通常,文件有多个列表   顶点数据。即使在顶点数据时,该编号序列也继续   由其他数据分隔。

     

除了从第一个列表的顶部向下计算顶点   在文件中,您还可以从顶部向上计算顶点   元素在文件中的位置。当你从一个数字计算列表   元素,参考编号为负。参考编号为-1   表示元素正上方的顶点。参考编号   -2表示上面的两个引用,依此类推。