OpenGL将ColorAttachment0从Renderbuffer复制到Texture2D

时间:2011-01-22 00:30:54

标签: c# opengl copy framebuffer texture2d

我正在使用OpenTK和C#。 我正在渲染渲染缓冲区,我需要将它的内容(ColorAttachment0)复制到Texture2D,这样我就可以对它进行一些后期处理,并将其绘制到屏幕上。我该怎么做呢? 我会使用纹理而不是渲染缓冲区,但我需要对帧缓冲区进行反别名,并且使用GL.RenderbufferStorageMultisample是我知道如何的唯一方法。

1 个答案:

答案 0 :(得分:3)

只需创建另一个FBO并将纹理附加到它上面。将多重采样FBO绑定到GL_READ_FRAMEBUFFER,将纹理FBO绑定到GL_DRAW_FRAMEBUFFER。然后使用正确的参数调用glBlitFramebuffer。这将复制并解析样本以生成非多重采样数据,并将其输出到纹理。

如果您想直接解析样本,可以使用GL_ARB_texture_multisample扩展名。