是否可以将默认的frambuffer复制到帧缓冲对象而不在屏幕上显示任何内容?

时间:2015-07-28 20:36:07

标签: opengl framebuffer glew fbo

如果是这样,我可以将FBO的内容保存为图像文件。

其他问题: 此图像将具有与屏幕相关的分辨率? 或者,它将具有与在默认帧缓冲区上进行纹理化的输入图像相同的分辨率?

我的问题清楚了吗?

1 个答案:

答案 0 :(得分:1)

在帧缓冲区之间复制:glBlitFramebuffer

https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml

This image will have a resolution related with the screen?

可以在glBlitFramebuffer功能中设置分辨率。默认的帧缓冲区具有opengl窗口的大小(可以与屏幕不同)。

Is it possible to copy the default frambuffer to a framebuffer object without showing anything on the screen?

图像通常首先在屏幕外渲染,并在调用swapBuffers时显示(双缓冲)。因此,如果不调用swapBuffers,屏幕上就不会显示任何内容。

请记住,您可以直接渲染到framebuffers对象中,并且您不必首先将其渲染到默认的帧缓冲区中,然后将其复制。要做到这一点,只需在实际绘制调用之前调用glBindFramebuffer