专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图形/图像

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

发布时间:2011-06-27 19:41:28 文章来源:www.iduyao.cn 采编人员:星星草
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
------解决思路----------------------
使用多少个都没有关系,使用那个绑定哪个就好了,要记住切换
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: