¿Hay una función rápida para suavizar una textura en el búfer de pantalla (sin usar extensiones)? Necesito un inverso de glCopyTexImage2D()
.Copiar textura al búfer de pantalla sin dibujar quad (abrir)
¿Existe tal función?
¿Hay una función rápida para suavizar una textura en el búfer de pantalla (sin usar extensiones)? Necesito un inverso de glCopyTexImage2D()
.Copiar textura al búfer de pantalla sin dibujar quad (abrir)
¿Existe tal función?
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.
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
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
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