我想在使用OpenGL ES 2.0绘制一个简单的矩形的android(API 10)上创建一个简单的测试程序。我可以直接使用浮点缓冲区来引用顶点,但我宁愿与VBO/IBO一起做。我寻找无数小时试图找到一个简单的解释(教程),但尚未遇到一个。我的代码编译并运行得很好,但屏幕上除了清晰的颜色外没有任何东西显示出来。在Android上的OpenGL ES 2.0中使用VBOs/IBOs
下面是一些代码块,以帮助解释我现在如何设置它。 onSurfaceChanged()的
部分:
int[] buffers = new int[2];
GLES20.glGenBuffers(2, buffers, 0);
rectVerts = buffers[0];
rectInds = buffers[1];
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, rectVerts);
GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, (rectBuffer.limit()*4), rectBuffer, GLES20.GL_STATIC_DRAW);
GLES20.glBindBuffer(GLES20.GL_ELEMENT_ARRAY_BUFFER, rectInds);
GLES20.glBufferData(GLES20.GL_ELEMENT_ARRAY_BUFFER, (rectIndices.limit()*4), rectIndices, GLES20.GL_STATIC_DRAW);
onDrawFrame()的部分:
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, rectVerts);
GLES20.glEnableVertexAttribArray(0);
GLES20.glVertexAttribPointer(0, 3, GLES20.GL_FLOAT, false, 0, 0);
GLES20.glBindBuffer(GLES20.GL_ELEMENT_ARRAY_BUFFER, rectInds);
GLES20.glDrawElements(GLES20.GL_TRIANGLES, 6, GLES20.GL_INT, 0);
列出任何书籍或简单的教程将非常有帮助。 – Derek 2012-03-21 20:20:30