草庐IT

glBindVertexArray

全部标签

c++ - OpenGL 3 : glBindVertexArray invalidates GL_ELEMENT_ARRAY_BUFFER

我确信如果您通过glBindBuffer()绑定(bind)一个缓冲区,您可以安全地假设它保持绑定(bind)状态,直到目标通过另一次调用glBindBuffer()。因此,当我发现调用glBindVertexArray()会将绑定(bind)到GL_ELEMENT_ARRAY目标的缓冲区设置为0时,我感到非常惊讶。这是最小的C++示例代码:GLuintbuff;glGenBuffers(1,&buff);std::cout我在初始化OpenGL3.2设备上下文后立即运行此代码并获得以下输出:Bufferis1BoundbeforeglBindVertexArray:1Boundaft

c++ - glBindVertexArrays 与 glBindBuffer 的作用是什么,它们的关系是什么?

我是OpenGL和图形编程的新手。到目前为止,我一直在阅读一本非常透彻且写得很好的教科书。但是,我在代码中遇到了一个我不太理解的点,我想在我理解这些行之前继续前进。GLuintabuffer;glGenVertexArrays(1,&abuffer);glBindVertexArray(abuffer);GLuintbuffer;glGenBuffers(1,&buffer);glBindBuffer(GL_ARRAY_BUFFER,buffer);glBufferData(GL_ARRAY_BUFFER,sizeof(points),points,GL_STATIC_DRAW);本书