views:

447

answers:

2

I'm doing heavy computation using the GPU, which involves a lot of render-to-texture operations. It's an iterative computation, so there's a lot of rendering to a texture, then rendering that texture to another texture, then rendering the second texture back to the first texture and so on, passing the texture through a shader each time.

My question is: is it better to have a separate FBO for each texture I want to render into, or should I rather have one FBO and bind the target texture using glFramebufferTexture2D each time I want to change render target?

My platform is OpenGL ES 2.0 on the iPhone.

A: 

AFAIK, better performance is achieved by using only one FBO, and changing the texture attachments as necessary.

Matias Valdenegro
Do you have any resources that support this?
nornagon
http://http.download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenGL_FrameBuffer_Object.pdfSlide 28 onwards.
Matias Valdenegro
+1  A: 

On the iPhone implementation, it is inexpensive to change the attachment, assuming the old and new textures are the same dimensions/format/etc. Otherwise, the driver has to do some additional work to reconfigure the framebuffer.

Frogblast