[Mesa-dev] Question about texture copy with Mesa
kenneth at whitecape.org
Sat Feb 19 10:33:48 PST 2011
On Friday, February 18, 2011 11:08:40 AM Alexis Hétu wrote:
> Hi all,
> I have a small question : I'd like to feed the already rendered result of
> my scene (which is "on screen" right now) into a texture sampler for the
> rendering of another object. I think this could be achieved by doing
> something like glReadPixels and then re-uploading that as a texture, but
> this seems very inefficient to me. It there a better way of doing this ? Is
> there a proper "MESA" way of doing this ?
The typical way to achieve this is to change your program to render the scene
into a FBO (framebuffer object) rather than to the screen. FBOs can be backed
by textures, allowing you to easily sample the results. Or, if you don't need
to sample (say, the depth buffer), you can also use a renderbuffer.
To get the scene on screen again, you can either use glBlitFramebuffer (the
screen is framebuffer 0), or just draw a full-screen quad with a simple shader
that samples the FBO's color texture.
Here's a short tutorial on FBOs:
More information about the mesa-dev