如何在Android上使用OpenGL ES 2.0绘制元素
我对android编程相当陌生,正在尝试创建quads。我使用了基本的drawarray代码,但速度不够快,无法满足我的需要。我目前拥有的是:如何在Android上使用OpenGL ES 2.0绘制元素,android,opengl-es-2.0,Android,Opengl Es 2.0,我对android编程相当陌生,正在尝试创建quads。我使用了基本的drawarray代码,但速度不够快,无法满足我的需要。我目前拥有的是: private void drawTriangle(final FloatBuffer aTriangleBuffer, final CharBuffer indices) { GLES20.glVertexAttribPointer(mPositionHandle, mPositionDataSize, GLES20.GL_FLO
private void drawTriangle(final FloatBuffer aTriangleBuffer, final CharBuffer indices)
{
GLES20.glVertexAttribPointer(mPositionHandle, mPositionDataSize, GLES20.GL_FLOAT, false,
0, aTriangleBuffer);
GLES20.glEnableVertexAttribArray(mPositionHandle);
// This multiplies the view matrix by the model matrix, and stores the result in the MVP matrix
// (which currently contains model * view).
Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mModelMatrix, 0);
GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mMVPMatrix, 0);
GLES20.glDrawElements(GLES20.GL_TRIANGLES, 6, GLES20.GL_UNSIGNED_BYTE, indices);
}
缓冲区的内容是:
final float[] vertices = {
0.f, 0.0f, 0.0f,
0.05f, 0.f, 0.0f,
0.05f, 0.0459770115f, 0.0f,
0.0f, 0.0459770115f, 0.0f};
final char indices[] = {0,1,2,
0,2,3
};
提前谢谢,如果您需要任何信息,请告诉我,以便我可以将其包括在内。我。。我不确定这里的问题是什么。发生了什么不应该发生的事?或者,什么事情不应该发生?此外,这并不是所有相关的GL代码(这里没有显示任何初始化)。如果DrawArray不够快,我真的怀疑DrawElements对于单四边形这样的小批量来说会有很大的不同。问题是根本没有绘制任何东西。我刚刚听说使用元素会更快,但是绘制简单四边形(不旋转或其他)的最快方法是什么?