如果我将像素从一个 FBO 复制到另一个,并且每个像素都有多个(不必相同数量)颜色附件,并且我的掩码是 GL_COLOR_BUFFER_BIT
,它复制了哪些颜色的附件(GL_COLOR_ATTACHMENT0
、GL_COLOR_ATTACHMENT1
、...、GL_COLOR_ATTACHMENTi
)?他们都是?如果是,如果这些 FBO 附加了不同数量的颜色缓冲区怎么办?
假设有 2 个 FBO 以这种方式绑定(bind):
glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo2);
请注意
fbo1
有 2 个颜色附件和 fbo2
有 4 个颜色附件。那么
glBlitFrameBuffer
在这种情况下,blit 颜色附件?我在 OpenGL 文档中的任何地方都找不到这个。
最佳答案
一个 framebuffer color blitting operation只会从 current glReadBuffer
中读取对于GL_READ_FRAMEBUFFER
, 它只会写到 the glDrawBuffers
为 GL_DRAW_FRAMEBUFFER
指定.所以这与附件无关;这是关于两个帧缓冲区的读取和绘制缓冲区。
关于opengl - 如果指定了 GL_COLOR_BUFFER_BIT 掩码,glBlitFramebuffer 是否会复制所有颜色附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691702/