OpenGL将ColorAttachment0从Renderbuffer复制到Texture2D

发布于 2024-10-13 07:18:19 字数 187 浏览 4 评论 0原文

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

I'm using OpenTK and C#.
I'm rendering to a renderbuffer and I need to copy it's contents(ColorAttachment0) to a Texture2D so I can do some post-processing on it, and the draw it to the screen. How do I do this?
I would use texture instead of a renderbuffer, but I need to Anti-alias the framebuffer, and using GL.RenderbufferStorageMultisample is the only way I know how to.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的新欢旧爱 2024-10-20 07:18:19

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

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

Just create another FBO and attach the texture to it. Bind the multisampled FBO to GL_READ_FRAMEBUFFER and the texture FBO to GL_DRAW_FRAMEBUFFER. Then call glBlitFramebuffer with the correct parameters. This will copy and resolve the samples to make non-multisampled data, and output it to the texture.

If you want to resolve the samples directly, you can use the GL_ARB_texture_multisample extension.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文