在OpenGL文檔中,我無法找到任何地方。對不起,如果它已經回答過。但我的問題是,如果我將像素從一個FBO複製到另一個,並且每個都有多個顏色附件(不需要相同數量),並且如果我的遮罩是GL_COLOR_BUFFER_BIT,哪些顏色附件(GL_COLOR_ATTACHMENT0,GL_COLOR_ATTACHMENT1,.... GL_COLOR_ATTACHMENTN)是否複製?他們全部?如果是的話,如果這些FBO有不同數量的顏色緩衝區連接到它們呢?如果指定了GL_COLOR_BUFFER_BIT掩碼,glBlitFramebuffer會複製所有顏色附件
假設有2個宗教組織是在這樣的約束:
glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo2);
注意fbo1有2個顏色附件和fbo2有4名顏色的附件。
那麼在這種情況下,glBlitFrameBuffer blit顏色附件如何?
謝謝Nicol。我意識到這一點。我的問題仍然成立。爲了使問題更加清晰起見,這裏有以這種方式綁定的2個宗教組織: \t ** glBindFramebuffer(GL_READ_FRAMEBUFFER,fbo1); ** \t ** glBindFramebuffer(GL_DRAW_FRAMEBUFFER,fbo2); ** fbo1有2種顏色附件,fbo2有4種顏色附件。那麼在這種情況下,glBlitFrameBuffer如何複製顏色附件? – viktorzeid
@kvikram:「*我知道這一點。*」不,你不是,你還沒有。你未能掌握的是「當前glReadBuffer」和「綁定到GL_READ_FRAMEBUFFER的* framebuffer *」之間的區別。正如我所說,這不是關於*附件*;它關於幀緩衝區內的讀取和繪製緩衝區*。 –
謝謝Nicol。我想你清除了我的理解。 第一步是選擇讀取/繪製的FBO: \t glBindFramebuffer(GL_READ_FRAMEBUFFER,fbo1); \t glBindFramebuffer(GL_DRAW_FRAMEBUFFER,fbo2); ,然後明確提及用於讀取/繪製的顏色緩衝區glReadBuffer(GL_COLOR_ATTACHMENT0); glDrawBuffer(GL_COLOR_ATTACHMENT3); 然後做blit操作:\t glBlitFramebuffer ..? 這將從fbo1複製顏色附件0中的緩衝區到fbo2中的顏色附件3中的緩衝區? – viktorzeid