我编写了一个 OBJ 加载器,它解析顶点、纹理坐标和法线,每个都存储在 FloatBuffer 中,并传递给 opengl:
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, fbVertices);
gl.glNormalPointer(GL10.GL_FLOAT, 0, fbNormals);
但是,我对应该如何将索引缓冲区传递给 glDrawElements 感到困惑,我已经读到索引将引用数组中顶点、纹理和法线的索引,但是在阅读 OBJ 文件描述后,似乎人脸以如下格式存储:
f 1/2/3 4/5/6 7/8/9
格式为
vertice/texture/normal
glDrawElements 只接受 1 个索引,它应该引用所有 3 个索引,但是当我查看实际的 OBJ 文件时,这似乎是不可能的。您如何通过所有 3 的索引?
您可以在此处找到代码的副本:http: //codepad.org/melc1HIC