有没有办法将纹理缓冲区对象(ARB_texture_buffer_object)附加到帧缓冲区(EXT_framebuffer_object),以便我可以直接渲染到纹理缓冲区对象中?
我需要它来制作多样本帧缓冲区(颜色缓冲区、深度缓冲区和模板缓冲区)的精确按位副本,并将此副本驻留在主内存中而不是 VRAM 中。
更新:问题是我不能直接在多采样帧缓冲区上调用 glReadPixels 来复制其内容。相反,我必须将多采样帧缓冲区传输到中间帧缓冲区,然后在其上调用 glReadPixels。在此过程中,多个样本被平均并写入中间缓冲区。如果我用 glWritePixels 恢复这个缓冲区,现在当然会损失精度。
我意识到我可以使用多样本纹理作为帧缓冲区对象的后备存储,但是此纹理将驻留在 VRAM 中,并且似乎无法将其复制到主内存而不会损失同样的精度。具体来说,我担心与多采样深度缓冲区附件相关的精度损失,而不是颜色缓冲区。
是否有另一种方法可以在 OpenGL 中制作多采样帧缓冲区的精确副本(并恢复此副本)?
TL;DR:如何将多样本帧缓冲区(特别是深度缓冲区)的确切内容复制到主内存并稍后恢复这些内容,而不会损失精度。