2012-02-09 8 views

Respuesta

11

Lo más cerca que obtendrá es glBlitFramebuffer. Que, como su nombre lo sugiere, es para framebuffers. Sí, framebuffers can include textures, pero no intentaría usar esto como reemplazo para dibujar texturas con quads. Obtendrá un rendimiento mucho mejor para dibujar muchas texturas mediante el uso de quads que blitting framebuffers.

Además, dibujar un quad es una función rápida para dibujar una textura.

+4

Dibujar un quad, incluso teniendo en cuenta los cambios de estado para que sea de pantalla completa/no-depth-test/etc, es extremadamente rápido. La parte más lenta es la copia de amortiguación a textura, pero el sorteo puede ser lo suficientemente rápido como para que un acercamiento de ping-pong con amortiguadores pueda ser más rápido. Blitting hacia o desde el backbuffer, o peor el frontbuffer, siempre es * extremadamente * lento. – ssube

+0

en algunas implementaciones opengl glBlitFramebuffer en realidad utiliza la representación cuádruple. Y en lugar de algo como 'memcpy', gpu usa una tubería completa para enviar un FBO a otro. Pero, por otro lado, brinda la capacidad de realizar escalas y filtrar. – fen

+5

En mi sistema (GTX 660), hacer un blBlitFramebuffer desde una textura (envuelto en un framebuffer) hasta el framebuffer principal es aproximadamente 20 microsegundos más lento que dibujar un quad. Fascinante. – subb

Cuestiones relacionadas