2010-06-14 16 views
5

Estoy haciendo una gran computación usando la GPU, que implica muchas operaciones de renderizado a textura. Se trata de un cálculo iterativo, por lo que hay una gran cantidad de representación en una textura, luego se pasa esa textura a otra textura, luego se vuelve la segunda textura a la primera y así sucesivamente, pasando la textura a través de un sombreador cada vez.glFramebufferTexture2D performance

Mi pregunta es: ¿es mejor tener un FBO separado para cada textura que quiero renderizar, o debería tener un FBO y enlazar la textura objetivo usando glFramebufferTexture2D cada vez que quiero cambiar el destino del renderizado?

Mi plataforma es OpenGL ES 2.0 en el iPhone.

Respuesta

6

En la implementación de iPhone, no es costoso cambiar el archivo adjunto, suponiendo que las texturas antiguas y las nuevas tienen las mismas dimensiones/formato/etc. De lo contrario, el controlador tiene que hacer un trabajo adicional para reconfigurar el framebuffer.

3

AFAIK, se obtiene un mejor rendimiento utilizando solo un FBO y cambiando los accesorios de textura según sea necesario.

+0

¿Tiene algún recurso que lo soporte? – nornagon

+2

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

0

La mejor manera es hacer benchmark.