多个VBO多次绘制 - 无法正常工作

时间:2014-05-09 05:21:29

标签: opengl-es-2.0 vbo

在我的opengl es 2.0应用程序中,我有2个原语。 对于第一个原语, 我正在创建一个用于交叉颜色的顶点的vbo和另一个用于索引的vbo。

我正在绑定第一个原语的vbos并启用vertexattribarray并调用drawelements。 然后,我用翻译更新mvp并绑定第二个原语的vbos并启用vertexattribarray并为第二个原语调用drawelements。

但只渲染了第一个原语。

// pseudo code sequence.
//////////////////////////////////////////////////
glBindBuffer(GL_ARRAY_BUFFER, PrimitiveONE_VBOVertexId);
glEnableVertexAttribArray(VERTEX_POS_INDX);
glVertexAttribPointer(VERTEX_POS_INDX, VERTEX_POS_SIZE, GL_FLOAT, GL_FALSE, vtxStride, 0);
offset += (VERTEX_POS_SIZE * sizeof ( GLfloat ));
glEnableVertexAttribArray(VERTEX_COLOR_INDX);
glVertexAttribPointer(VERTEX_COLOR_INDX, VERTEX_NORMAL_SIZE, GL_FLOAT, GL_FALSE, vtxStride, offset);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, PrimitiveOne_VBOIndexId);     
glDrawElements(GL_TRIANGLE_FAN,  indices1Cnt, GL_UNSIGNED_SHORT, 0);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0); // unbind vbo
glBindBuffer(GL_ARRAY_BUFFER,0);

glDeleteBuffers(1, &PrimitiveONE_VBOVertexId);
glDeleteBuffers(1, &PrimitiveOne_VBOIndexId);
///////////////////////////////////////////////////////////
myIdentity(mvp);
myIdentity(modelview);
myTranslate(modelview, 0.25f, 0 , -2.0f);
myMultMatrix(mvp, modelview, projection);
glUniformMatrix4fv(mvp_pos, 1, GL_FALSE, &mvp[0][0]);

glBindBuffer(GL_ARRAY_BUFFER, PrimitiveTWO_VBOVertexId);
glEnableVertexAttribArray(VERTEX_POS_INDX);
glVertexAttribPointer(VERTEX_POS_INDX, VERTEX_POS_SIZE, GL_FLOAT, GL_FALSE, vtxStride, 0);
offset += (VERTEX_POS_SIZE * sizeof ( GLfloat ));
glEnableVertexAttribArray(VERTEX_COLOR_INDX);
glVertexAttribPointer(VERTEX_COLOR_INDX, VERTEX_NORMAL_SIZE, GL_FLOAT, GL_FALSE, vtxStride, offset);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, c);   
glDrawElements(GL_TRIANGLE_FAN,  indices2Cnt, GL_UNSIGNED_SHORT, 0);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0); // unbind vbo
glBindBuffer(GL_ARRAY_BUFFER,0);

glDeleteBuffers(1, &PrimitiveTWO_VBOVertexId);
glDeleteBuffers(1, &PrimitiveTWO_VBOIndexId);
//////////////////////////////////////////////////////////////

代码有什么问题吗?

0 个答案:

没有答案