Tengo un entorno 2D completo, con sprites dando vueltas como paisaje, personajes, etc.
Para que tenga un aspecto más moderno, quiero implementar un efecto de desenfoque de movimiento, similar al desenfoque de los juegos FPS modernos (es decir, Crysis) al mover la cámara rápidamente.
En un desplazamiento lateral, el efecto deseado es que aparezca este ligero desenfoque para dar la idea de un movimiento rápido cuando la cámara se está moviendo. Si alguien pudiera darme algunos consejos para hacerlo, supongo que en un sombreador de píxeles, estaría agradecido.
Respuestas:
Guarde una copia del último framebuffer. Obtenga el vector de movimiento de la cámara e inviértalo. Dibuja tu escena como de costumbre, luego dibuja el último framebuffer con un ligero desplazamiento (el delta de cámara que acabas de calcular) y 0,75 alfa. Repita tantas veces como desee para dar el efecto de desenfoque de movimiento.
fuente
Recomendaría usar este método: Motion Blur como efecto de postprocesamiento
Muy sencillo de implementar, es el que utilicé en mi demo glsl Ruin island [enlace]
fuente