我正在从片段着色器中将数据写入3D纹理,并且需要将所述数据异步读回系统内存。将缓冲区对象异步启动打包操作的唯一方法似乎是使用NULL
指针调用glReadPixels()
。但是这个函数坚持要通过一个定义区域的矩形来回读。现在我不知道在使用PBO时这些参数是否被忽略,但我不假设。在这种情况下,我不知道要传递给这个函数以获得整个3D纹理。 即使必须读回单个切片(这将是一种愚蠢的IMO),我仍然不知道如何与OpenGL进行通信来读取哪一片。我错过了什么吗?如何使用像素缓冲区对象从GPU内存中读取3D纹理
顺便说一句,我可以为每个切片使用单独的2D纹理,但如果我没有弄错的话,这会搞砸(3D-)mipmap。我想要使用3D mipmap来有效地找到生成的3D纹理中感兴趣的区域。
P.S.对不起,次优标签,显然没有人问过有关3D纹理之前,因为我不允许创建新的标签...
嗯,这是我对研究PBO规格和各种例子的印象。我没有使用ES,因此'glGetTexImage'将为我完成这项工作。我知道我错过了一些东西......谢谢! – Awaki