GLES20解析obj文件和顶点,纹理索引

时间:2017-06-21 06:41:47

标签: android opengl-es

我是OpenGL-ES 2.0的新手,尝试解析.obj文件并在Android上绘图。

我已成功使用.obj文件中的解析数据绘制一个简单的多维数据集

the 'v' (vertex coords)
and the first values of 'f' line (v index)

但下一步,我需要绘制' Texture'使用.obj数据,我发现有纹理指数'而且我不知道如何使用这个'纹理指数'用我的代码

GLES20.glVertexAttribPointer(mPositionHandle, 3, GLES20.GL_FLOAT, false, VSTRIDE, vertexCoords);
GLES20.glEnableVertexAttribArray(mPositionHandle);

GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false, TSTRIDE, textureCoords);
GLES20.glEnableVertexAttribArray(maTextureHandle);

...

GLES20.glDrawElements(GLES20.GL_TRIANGLES, indexLength, GLES20.GL_UNSIGNED_SHORT, vertexIndices);

我认为,只有' Vertex指数'参数可以在glDrawElements API上使用。 如何将glDrawElements与“顶点指数”一起使用'和'纹理指数'?

1 个答案:

答案 0 :(得分:-1)

您无法在GLES20.glDrawElements中使用纹理索引。

GLES20.glDrawElements无法绘制具有多个纹理的元素,它将始终使用“当前纹理”

您可以将当前纹理绑定设置为普遍创建的纹理。 GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureID); //Next call of glDrawElements will use this texture

最好按纹理ID对顶点进行排序,并为每个纹理ID执行一次GLES20.glDrawElements调用

相关问题