OpenGL ES 3.0 PBO Pixel Buffer Object 像素缓冲区对象

该原创文章首发于微信公众号:字节流动

PBO 是什么

OpenGL PBO(Pixel Buffer Object),被称为像素缓冲区对象,主要被用于异步像素传输操作。PBO 仅用于执行像素传输,不连接到纹理,且与 FBO (帧缓冲区对象)无关。

OpenGL PBO(像素缓冲区对象) 类似于 VBO(顶点缓冲区对象),PBO 开辟的也是 GPU 缓存,而存储的是图像数据。

OpenGL PBO
与 PBO 绑定相关的 Target 标签有 2 个:GL_PIXEL_UNPACK_BUFFERGL_PIXEL_PACK_BUFFER

其中将 PBO 绑定为 GL_PIXEL_UNPACK_BUFFER 时,glTexImage2D()glTexSubImage2D() 表示从 PBO 中解包(unpack)像素数据并复制到帧缓冲区 。

将 PBO 绑定为 GL_PIXEL_PACK_BUFFER 时,glReadPixels() 表示从帧缓冲区中读取像素数据并打包进(pack) PBO 。

为什么要用 PBO

在 OpenGL 开发中,特别是在

你可能感兴趣的:(Android,OpenGLES,3.0,OpenGLES)