如果指定了GL_COLOR_BUFFER_BIT掩码,glBlitFramebuffer是否会复制所有颜色附件?

时间:2013-07-17 05:20:29

标签: opengl graphics framebuffer blit

如果我将像素从一个FBO复制到另一个FBO并且每个FBO都有多个(不一定是相同数量)的颜色附件,并且我的面具是GL_COLOR_BUFFER_BIT,那么哪个颜色附件(GL_COLOR_ATTACHMENT0GL_COLOR_ATTACHMENT1,....,GL_COLOR_ATTACHMENTi)是否会复制?他们都是?如果是,如果这些FBO附加了不同数量的颜色缓冲区怎么办?

假设有2个FBO以这种方式绑定:

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1); 
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo2); 

请注意,fbo1有2个颜色附件,fbo2有4个颜色附件。

那么在这种情况下glBlitFrameBuffer blit颜色附件如何?

我在OpenGL文档中找不到任何内容。

1 个答案:

答案 0 :(得分:15)

framebuffer color blitting operation只会 GL_READ_FRAMEBUFFER读取GL_DRAW_FRAMEBUFFER写入{{3}为{{1}}指定的。所以这不是附件;它是关于两个帧缓冲区的读取和绘制缓冲区。