Vertex Processor - glGenBuffers 和 glGenBuffersARB 区别

来源:互联网 发布:js 删除一个tr 编辑:程序博客网 时间:2024/06/05 06:49
根据OpenGL所支持VBO的情况,有三种方式执行渲染
(1)支持OpenGL 1.5,使用标准的VBO函数
             // 设置顶点缓冲
             glGenBuffers(1, &iVertexBuffer);
             glBindBuffer(GL_ARRAY_BUFFER, iVertexBuffer);
             glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_list),
                 vertex_list, GL_STATIC_DRAW);

             // 设置索引缓冲
             glGenBuffers(1, &iIndexBuffer);
             glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, iIndexBuffer);
             glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(index_list),
                 index_list, GL_STATIC_DRAW);
(2)不支持OpenGL 1.5,但以ARB扩展的形式支持VBO
             glGenBuffersARB(1, &iVertexBuffer);
             glBindBufferARB(GL_ARRAY_BUFFER_ARB, iVertexBuffer);
             glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(vertex_list),
                 vertex_list, GL_STATIC_DRAW_ARB);

             glGenBuffersARB(1, &iIndexBuffer);
             glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, iIndexBuffer);
             glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(index_list),
                 index_list, GL_STATIC_DRAW_ARB);
(3)不支持VBO,使用Vertex Array代替

原创粉丝点击