El efecto de desenfoque gausiano es muy utilizado en fotografía como en videojuegos, normalmente se usan en los menús de pausa, aprende a crear este efecto por tu cuenta para generar una visión borrosa que gradualmente se va aclarando y darle un toque dramático a la escena en pantalla.
El desenfoque gaussiano es la base para otros efectos como el desenfoque de zoom, desenfoque radial, desenfoque de movimiento y por ultimo profundidad de campo. también es la base para otros desenfoques como el rebote de luz en las superficies comúnmente llamado bloom o incluso para el efecto de rayos de sol.
La base para entenderlo es bastante sencillo, se trata de tomar muestras de los píxeles adyacentes y hacer un promedio, luego sobre el resultado repites las muestras y haces promedio y así sucesivamente hasta que todo esté bien difuso. Sin embargo en móviles no podemos darnos el lujo de hacer tantas iteraciones por el hecho de que cada blit en que recibes y envías la imagen a la gráfica hace que los fps caigan drásticamente, así que solo podemos limitarnos a una sola iteración.
Creando el Gaussian blur shader.
para proceder es necesario regresar al blog anterior y tomar de nuevo el script TestRenderImage.cs, no necesitas modificarlo ya que usa las mismas variables
Si habras notado hay varias funciones tex2D levemente diferentes, cada una suma y resta a las coordenadas uv la variable que asignamos de distancia y al final se divide el resultado por el número de muestras.
hasta este punto habrás notado que algunos efectos aparentemente difíciles resultan demasiado simples. en futuros blogs habrán efectos similares que podremos usar para nuestros juegos en móviles para que aparenten un acabado triple A.
Este sería un efecto barato de desenfoque, pero existe quizás otro a modo de hack que consiste en que el sourceTexture de entrada desde TestTenderImage.cs pueda crear varios mipmap y desde el shader solo tendría que alternar entre ellos, pero simplemente lo desconozco aunque lo he intentado varias veces sin éxito. En teoria seria aun mas barato pero hasta que no pueda probarlo no puedo decir nada.
コメント