PBO

PBO(Pixel Buffer Object)是OpenGL的一种扩展,用于加速像素数据的传递。PBO通过DMA技术实现GPU与内存间的数据交换,且过程异步,提升性能。使用PBO包括生成、映射和解除映射等步骤,可以应用于像素数据的读取和写入。通过示例程序,展示了PBO如何提高像素传递和纹理加载效率。
摘要由CSDN通过智能技术生成

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对象之间的传递。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值