我正在从片段着色器中将数据写入 3D 纹理,并且我需要将所述数据异步读回系统内存。异步启动打包操作到缓冲区对象的唯一方法似乎是glReadPixels()
使用NULL
指针调用。但是这个函数坚持要传递一个定义要读回的区域的矩形。现在我不知道在使用 PBO 时是否会忽略这些参数,但我认为不会。在这种情况下,我不知道传递什么给这个函数以获得整个 3D 纹理。即使必须读回单个切片(这将是一种愚蠢的 IMO),我仍然不知道如何与 OpenGL 通信以读取哪个切片。我错过了什么吗?
顺便说一句,我可以为每个切片使用单独的 2D 纹理,但如果我没记错的话,那会搞砸(3D-)mipmapping。我想使用 3D mipmap 来有效地在生成的 3D 纹理中找到感兴趣的区域。
PS 对次优标签感到抱歉,显然之前没有人问过 3d 纹理,因为我不允许创建新标签......