PBO

PBO,即Pixel Buffer Object也是用于GPU的扩展(ARB_vertex_buffer_object)。这里的缓存当然就是GPU的缓存。PBO与VBO扩展类似,只不过它存储的是像素数据而不是顶点数据。PBO借用了VBO框架和所有API函数形式,并加了上两个"target"标志。这两个标识是:

  • GL_PIXEL_PACK_BUFFER_ARB 将像素数据传给PBO
  • GL_PIXEL_UNPACK_BUFFER_ARB 从PBO得到像素数据

  这里的“pack”还是“unpack”,可分别理解为“传给”和“得到”。它们也都可以统一理解为“拷贝”,也就是像素数据的“传递”。

 

       比如说,glReadPixel就是数据从帧缓存(framebuffer)到内存(memory),可理解为“pack”;glDrawPixel是从内存到帧缓存,可理解为“unpack”;glGetTexImage是从纹理对象到内存,可理解为“pack”;glTexImage2d从内存(memory)到纹理对象(texture object),可理解为“unpack”。

下图是PBO与Framebuffer和Text对象之间的传递。

PBO_第1张图片

     使用PBO的好处是快速的像素数据传递

你可能感兴趣的:(OPENGL)