opengl可以同时使用两个极点缓冲区吗

   阅读
opengl可以同时使用两个顶点缓冲区吗?
本帖最后由 xiao88yan 于 2014-05-11 22:49:37 编辑
我想同时使用两个顶点缓冲区进行依次渲染,但发现不行,我的代码如下:

void InitBufferForDisplay(void)
{
GLuint iVertexBuffer = 0;
GLuint iIndexBuffer   = 0;

GLuint iVertexBuffer2 = 0;
GLuint iIndexBuffer2   = 0;
       //第一个顶点缓冲区
glGenBuffersARB(1, &iVertexBuffer);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, iVertexBuffer);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(float) * 8 * 6 * leafNum,vertexArray, GL_STATIC_DRAW_ARB);

glGenBuffersARB(1, &iIndexBuffer);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, iIndexBuffer);
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(GLuint) * 24 * leafNum,indexArray, GL_STATIC_DRAW_ARB);

//第二个顶点缓冲区
glGenBuffersARB(1, &iVertexBuffer2);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, iVertexBuffer2);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(float) * 8 * 6 * leafNum2,vertexArray2, GL_STATIC_DRAW_ARB);

glGenBuffersARB(1, &iIndexBuffer2);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, iIndexBuffer2);
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(GLuint) * 24 * leafNum2,indexArray2, GL_STATIC_DRAW_ARB);

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glInterleavedArrays(GL_C3F_V3F, 0, 0);
}

   发生的问题是第一个顶点缓冲区会被第二个覆盖掉

大家帮我看看如何解决?


------解决思路----------------------
感觉是你在绘制的时候没有再bind
------解决思路----------------------
使用多少个都没有关系,使用那个绑定哪个就好了,要记住切换
阅读