嗨,這是我的第一篇文章:) 我致力於Android 2.3 OpenGL ES 2 2D遊戲引擎。我嘗試通過構建一個大的VBO而不是逐個繪製精靈來提高性能。我使用配料一次繪製32個精靈。如何將mat4數組傳遞給Android中的opengl es 2中的着色器?
這是我的頂點着色器的定義:
uniform mat4 mvpMatrix[32];
當我使用客戶端內存
for (int k = 0; k < m; k++)
mvpBuffor.put(models[k], 0, models[k].length);
mvpBuffor.position(0);
GLES20.glUniformMatrix4fv(mMVPMatrixHandle, m, false, mvpBuffor);
GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, m * VERTEX_PER_SPRITE);
和這個作品非常好 但是當我嘗試使用VBO
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, batch.mvpBufferIndex);
GLES20.glEnableVertexAttribArray(mMVPMatrixHandle);
GLES20.glVertexAttribPointer(mMVPMatrixHandle, MVP_SIZE * BATCHSIZE, GLES20.GL_FLOAT, false, 0, 0);
我得到錯誤代碼1281
任何人都知道如何將mat4 uniform的數組傳遞給頂點着色器?
哪條線給你的錯誤? – Tim