片段着色器渲染到屏幕外帧缓冲区

时间:2009-09-27 16:39:41

标签: opengl shader framebuffer fragment

在基于Qt的应用程序中,我想在两个纹理(1000x1000像素)上执行片段着色器
我绘制一个矩形,片段着色器工作正常。

但是,现在我想将输出渲染到 GL_AUX0 帧缓冲区,以便将结果读回来并保存到文件

不幸的是,如果窗口大小小于1000x1000像素,则输出不正确。只是窗口大小区域被渲染到帧缓冲区。

如何为整个纹理执行帧缓冲?

谢谢, 的Gabor

1 个答案:

答案 0 :(得分:1)

建议的离屏处理方法是使用帧缓冲对象(FBO)。这些缓冲区的作用类似于您已知的渲染缓冲区,但不受窗口分辨率或颜色深度的限制。您可以使用GPGPU Framebuffer Object Class隐藏低级OpenGL命令并立即使用FBO。如果您喜欢自己动手,请查看extension specification