gpt4 book ai didi

opengl - 渲染到窗口帧缓冲区和 FBO 以保存全尺寸纹理图像

转载 作者:行者123 更新时间:2023-12-02 04:24:11 36 4
gpt4 key购买 nike

我想将图像处理 OpenGL 着色器程序的输出保存到图像文件中,并在屏幕上显示结果。我知道如何使用 glReadPixels() 保存窗口帧缓冲区。然而,屏幕的分辨率小于图像的尺寸。

如果我渲染到 FBO,保存并解除绑定(bind) FBO 后是否需要再次调用 glDrawArrays() 才能在屏幕上看到结果?或者是否可以告诉窗口帧缓冲区从 FBO 进行渲染,而无需再次运行着色器程序?

最佳答案

要将渲染图像保存在 RBO 中,您可以通过调用 glReadBuffer 设置 OpenGL 将从哪个缓冲区读取像素来直接读取像素。 。在您的特定情况下,将读取缓冲区设置为 GL_COLOR_ATTACHMENT<i>应该可以解决问题。请参阅glDrawBuffer man page了解详情。

为了在 FBO 中显示图像:是的,您需要进行额外的渲染过程以将 FBO 的图像复制到默认帧缓冲区中。您可以将 FBO 绑定(bind)为纹理,并按照您的建议渲染几何图形,以在屏幕上获取图像,或者您可以使用 glBlitFramebuffer简化复制和图像过滤。

关于opengl - 渲染到窗口帧缓冲区和 FBO 以保存全尺寸纹理图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227153/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com