我有一个小型的OpenGL应用程序,我正在寻找一次消除多个纹理缓冲区的最佳方法。
比方说,我有两个帧缓冲区(fbo1
,fbo2
),每个帧缓冲区包含两个纹理缓冲区。我有一个带有四个纹理缓冲区的目标fbo(fbo3
)。我想将所有纹理从fbo1
和fbo2
拖到fbo3
。
目前,我正在针对每种纹理分别进行处理,
glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1)
glReadBuffer(GL_COLOR_ATTACHMENT0)
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo3)
glDrawBuffer(GL_COLOR_ATTACHMENT0)
glBlitFramebuffer(0, 0, width, height, 0, 0, ds_width, ds_height, GL_COLOR_BUFFER_BIT, GL_LINEAR)
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0)
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0)
通常如何进行?甚至可行吗?
答案 0 :(得分:0)
这不是“通常”完成的操作,因为人们通常不会大量复制一堆帧缓冲图像。实际上,如果确实如此,则强烈暗示您可能做错了事。
唯一的方法就是您在这里完成的操作(尽管不需要重新绑定帧缓冲区):每次都更改读取/绘制缓冲区并变位。