我正在开发一个使用OpenGL ES 2.0的Android应用程序。
我想用Wavefront OBJ格式加载用Blender 2.49b制作的导出。我已经确定了verxtex位置,正常和纹理。
我想使用glDrawElements(GLenum模式,GLsizei计数,GLenum类型,const GLvoid *索引)绘制我的网格,但我不知道如何从Wavefront OBJ文件中获取最后一个参数index。 / p>
面对我正在寻找的'指数'吗?
我在论坛上发现了这个: faces =以1开头的索引!
'从1开始'是什么意思?
感谢。
答案 0 :(得分:3)
这意味着第一个索引是1而不是零。 Java / C数组/集合使用基于零的指示,第一个元素从零开始。 Wavefront OBJ格式索引以1开头。
面构成3个值v / vt / vn,它们是索引。索引不是直接以文件格式指定的。相反,它是v,vt,vn元素在文件中出现的顺序。因此,在解析文件时,您必须跟踪遇到的顶点,顶点纹理和顶点法线的数量。
有关格式的所有详细信息,请参阅规范。
答案 1 :(得分:0)
没有波前.obj格式的索引。 您是从文件加载网格数据时指定索引的人。 我要做的是:
iterate per face:
iterate every vertex of a face
assign index here when you store the data to your own project's vector
换句话说,对于每行:
f 3/55/23 34/2/12 34/43/128
f ...
为每三个属性引入一个新的顶点(存储在顶点缓冲区中)和一个新的索引(存储在索引缓冲区中)。