OpenGL多个渲染目标-默认帧缓冲区可以是目标吗?

OpenGL多个渲染目标-默认帧缓冲区可以是目标吗?,opengl,Opengl,我想绘制多个渲染目标,其中一个目标是默认帧缓冲区。这样做的原因是在默认帧缓冲区中实现多重采样,同时仍向纹理写入有关场景的更多信息 如果我只是通过带有两个颜色附件的FBO使用普通多个渲染目标,我可以渲染场景和额外信息,但两个图像都不支持多重采样,并且当我将场景作为全屏四元体绘制到屏幕时,我会丢失多重采样。因此,我很好奇是否可以将场景渲染为默认帧缓冲区的法线,保留多采样支持,同时将场景渲染为我创建的FBO 我现在正在寻找的领域是,但我不确定我是否在正确的轨道上 我知道OpenGL 3.2支持GL_纹

我想绘制多个渲染目标,其中一个目标是默认帧缓冲区。这样做的原因是在默认帧缓冲区中实现多重采样,同时仍向纹理写入有关场景的更多信息

如果我只是通过带有两个颜色附件的FBO使用普通多个渲染目标,我可以渲染场景和额外信息,但两个图像都不支持多重采样,并且当我将场景作为全屏四元体绘制到屏幕时,我会丢失多重采样。因此,我很好奇是否可以将场景渲染为默认帧缓冲区的法线,保留多采样支持,同时将场景渲染为我创建的FBO

我现在正在寻找的领域是,但我不确定我是否在正确的轨道上


我知道OpenGL 3.2支持GL_纹理_2D_多采样,但我没有在OpenGL 3.2硬件上运行的特权,因此我尝试在仍然写入多个渲染目标时保持多采样支持。

使用GLBLITFRAMEBAULT。。。如果希望在不使用多采样纹理或默认帧缓冲区的情况下受益于MSAA。您可以将多采样渲染缓冲区blit到默认帧缓冲区或任何单采样绘图缓冲区中,如果您需要,这可能是另一个纹理,它将为您执行MSAA解析。我的印象是多采样渲染缓冲区需要附加多采样纹理?OpenGL示例显示:glBindTexture GL_TEXTURE_2D_MULTISAMPLE,tex;不,渲染缓冲层和纹理是两个独立的东西。早在多采样纹理支持出现之前,GL就已经具备了绘制多采样渲染缓冲附件的能力。renderbuffers和纹理之间的主要区别在于如何显示它们的内容-renderbuffers必须进行Blit复制,但纹理可以在着色器中采样。您可以将多采样渲染缓冲区复制到单采样缓冲区中,该缓冲区可以是默认帧缓冲区,也可以是使用glBlitFramebuffer…的纹理,这将执行MSAA解析。请问您使用多采样的目的是什么?我假设了抗锯齿,但还有其他用途。如果它只是MSAA,那么从renderbuffer附件中进行blitting可能会对您很好。它只是MSAA。我在下面的例子中,但它需要创建一个多采样纹理。