opengl 如何将pbo缓冲区与纹理匹配?

3pvhb19x  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(161)

question/answer我知道,一旦我绑定GL_PIXEL_UNPACK_BUFFER,OpenGL将使用缓冲区绑定中的数据向GL_PIXEL_UNPACK_BUFFER提供纹理2D。
但是,虽然纹理的形状有很多种,比如GL_TEXTURE_3D,GL_TEXTURE_1D... GL_PIXEL_UNPACK_BUFFER的绑定缓冲区没有这样一个属性来指定其数据的内部形状。如果我想使用pbo将数据传输到绑定到GL_TEXTURE_3D的纹理存储,我需要首先将数据发送到绑定到pbo的缓冲区。
我是否需要关注发送到pbo的数据的布局?比如数据应该是 (xxx...,yyy...,zzz...)(xyz,xyz,xyz...)
一个例子或伪代码是有帮助的。

dsekswqp

dsekswqp1#

pixel transfer operation中使用像素缓冲器改变了像素传输操作的 * 一件事 *:当你不使用PBO时,数据来自(或去往)你直接分配的内存地址。当你使用PBO时,数据来自(或去往)缓冲区对象存储中的字节偏移量。
像素传输操作的其他方面没有变化。“打包”像素数据的布局方式保持不变,与像素传输的位置无关。
您所讨论的问题取决于您启动的像素传输操作的性质(即:调用了什么函数)以及传递给它的像素传输参数。同样,无论使用的是缓冲区对象还是客户端内存,这些参数的工作方式都是相同的。

相关问题