如果是这样,我可以将FBO的内容保存为图像文件。
其他问题: 此图像将具有与屏幕相关的分辨率? 或者,它将具有与在默认帧缓冲区上进行纹理化的输入图像相同的分辨率?
我的问题清楚了吗?
答案 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
。