レンダーターゲット切り替えについてnvidiaの人が語っていて,その部分抜粋したのが以下
Next Generation Rendering with OpenGL
When using multiple rendering destinations, there are several ways to switch between them.
- Using multiple FBOs, with a separate FBO for each texture, switching between them using glBindFramebufferEXT(). This is the most straightforward approach, and it is at least twice as fast as having to switch contexts.
- Using a single FBO with multiple texture attachments. This requires that the textures have the same format and dimensions. Textures can be switched between using glFramebufferTexture(). This is slightly more lightweight than using multiple FBOs, so it may be faster.
- Using a single FBO with multiple texture attachments and attaching the textures to different color attachments. glDrawBuffer() is used to switch between the attachments.
と、いうことで、レンダ先テクスチャが全て同じフォーマットであれば、使うFBOは一つにして、それに関連付けるテクスチャをglFramebufferTexture()で切り替えることでレンダーターゲットの切り替えとすることだそうです.