2010-06-14 21 views
5

Sto eseguendo calcoli pesanti utilizzando la GPU, che comporta molte operazioni di rendering-trama. È un calcolo iterativo, quindi c'è un sacco di rendering su una texture, quindi il rendering di tale texture su un'altra texture, quindi il rendering della seconda texture sulla prima texture e così via, passando ogni volta la texture attraverso uno shader.glFramebufferTexture2D performance

La mia domanda è: è meglio avere un FBO separato per ogni texture in cui voglio renderizzare, o dovrei preferire avere un FBO e legare la trama di destinazione usando glFramebufferTexture2D ogni volta che voglio cambiare la destinazione del rendering?

La mia piattaforma è OpenGL ES 2.0 su iPhone.

risposta

6

Nell'implementazione di iPhone, è poco costoso modificare l'allegato, presupponendo che le vecchie e nuove trame abbiano le stesse dimensioni/formato/ecc. Altrimenti, il driver deve fare del lavoro aggiuntivo per riconfigurare il framebuffer.

3

AFAIK, è possibile ottenere prestazioni migliori utilizzando solo un FBO e modificando gli allegati di trama secondo necessità.

+0

Avete risorse che supportano questo? – nornagon

+2

http://http.download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenGL_FrameBuffer_Object.pdf Diapositiva 28 in poi. –

0

Il modo migliore è fare benchmark.