缓冲区保存在GPU内存中, 可以在CPU不介入的情况下,完成数据操作。
1. 创建缓冲区
glGenBuffers()
2. 绑定缓冲区
glBindBuffer()
缓冲区绑定点:
GL_ARRAY_BUFFER数组缓冲区存储颜色、位置、纹理坐标等顶点属性,或者其他自定义属性
GL_COPY_READ_BUFFER用作glCopyBufferSubData进行复制的数据源
GL_COPY_WRITE_BUFFER用作glCopyBufferSubData进行复制的数据源
GL_ELEMENT_ARRAY_BUFFER索引数组缓冲区,用于保存glDrawElements、glDrawRangeElements和glDrawElementsInstanced的索引
像素缓冲区(PBO)绑定点
GL_PIXEL_PACK_BUFFER像素包装操作的源缓冲区glReadPixels
GL_PIXEL_UNPACK_BUFFER纹理更新函数的目标缓冲区glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D
GL_TEXTURE_BUFFER着色器可以通过纹理单元拾取来访问的缓冲区
GL_TRANSFORM_FEEDBACK_BUFFER变换反馈顶点着色器(transform feadback vertex shader)写入的缓冲区
GL_UNIFORM_BUFFER着色其能够访问的Uniform值
3. 填充缓冲区
glBufferData()
glBufferSubData()
4. 删除缓冲区
glDeleteBuffers()
5. 读取缓冲区
glReadbuffer()
glReadPixels()