我正在使用OpenGL ES 2.0开发一个安卓应用程序。
我想加载一个导出与搅拌机2.49b在Wavefront OBJ格式。我已经确定了顶点位置,法线和纹理。
我想使用glDrawElements(GLenum模式,GLsizei计数,GLenum类型,常量GLvoid *索引)来绘制网格,但我不知道如何从Wavefront OBJ文件中获得最后一个参数,索引。
面孔是我要找的“索引”吗?
我在一个论坛上发现了这个: faces =从1开始的索引!
“从1开始!”是什么意思?
谢谢。
发布于 2010-12-03 22:49:02
这意味着第一个索引是1而不是0。Java/C数组/集合使用从零开始的索引,第一个元素从零开始。Wavefront OBJ格式索引从1开始。
面由3个值v/vt/vn组成,这3个值是索引。索引不是直接以文件格式指定的。相反,它是v,vt,vn元素在文件中出现的顺序。因此,在解析文件时,必须跟踪遇到的顶点、顶点纹理和顶点法线的数量。
有关格式的所有详细信息,请参阅规范。
http://www.martinreddy.net/gfx/3d/OBJ.spec
发布于 2020-08-06 10:39:34
wavefront .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 ...对于每个属性三元组,引入一个新顶点(将存储在顶点缓冲区中)和一个新索引(将存储在索引缓冲区中)。
https://stackoverflow.com/questions/4346556
复制相似问题