¿Que son flares?
Los flares son artefactos producidos por la luz al entrar en contacto con la lente de una cámara, también se les conoce como destellos y nuestros ojos aunque en menor medida también es víctima de este fenómeno a través de la córnea.
Dejando de lado esta explicación tan científica que me quedó tan cool, unity también permite el uso de estos flares en las luces o en componentes que podemos agregar a los gameobjects, llamado lens flare, donde solo agrega este componente individualmente así como el componente halo que también puede colocarse como un componente aparte.
Los flares son un conjunto de artefactos puestas dentro de varias cuadrículas formando una textura atlas que son catalogadas dentro de un array y que pueden heredar, posición, rotación, color de acuerdo a la posición que tenga el objeto frente a la cámara.
Cada elemento del Array tiene una cantidad de parámetros que hay que entender.
Posición: un número flotante entre -1 y 1, donde 0 hace que la imagen se fije en el centro del objeto y 1 se aleje todo lo posible del centro del objeto, haciendo que el artefacto tenga mayor movilidad dentro de la cámara y el valor negativo solo hace que este se desplace hacia la posición contraria.
Tamaño: se refiere al tamaño del artefacto en pantalla, a veces se usa varios del mismo tipo para dar la sensación de que la lente cuenta con varios cristales o varios filtros.
Color: le proporciona un color fijo, así como la opacidad, si se selecciona la opción de usar el color de la luz, este valor será ignorado.
Rotación: Permite al artefacto rotar frente a la cámara respecto a su posición en pantalla, el eje de rotación se toma desde la parte baja del artefacto.
Zoom y Fade: cuando el flare es visible el zoom y el fade están al máximo, cuando no, el fade y el zoom disminuye gradualmente hasta llegar a cero
Índice de imagen: este vendría siendo la identidad de la imagen dentro del layout de textura o textura atlas. este índice viene dado por unos layouts predeterminados a continuación.
El primero es comúnmente usado para hacer soles, el segundo se usa para lámparas y el resto son poco usados, los números corresponden a los índices. Estos fragmentos fueron tomados de la documentación de flares dentro de unity en:
X:/Program Files/Unity/Editor/Data/Documentation/en/Manual/class-Flare.html
¿Dónde está el truco entonces?
La cuestión está que cuando este objeto está renderizado en pantalla toma un draw call o un llamado de dibujo, sin embargo si usas otro flare ya serán 2 llamados de dibujo y así sucesivamente, a medida que estos vayan en aumento a la gráfica le tomará tiempo en renderizar estos destellos.
Inicialmente estos destellos son inofensivos pero sin pensarlo se te puede ir parte de la memoria, puede aumentar el peso de tu proyecto, llevarte un poco del rendimiento de la gráfica.
El truco está en utilizar de forma inteligente la última plantilla que tiene 16 casillas, llenarla de diferentes tipos de artefactos, pero para configurar múltiples flares utilizando diferentes índices, para dar la sensación de variedad.
¿Cómo aplicar la textura?
Comenzaremos creando una nueva imagen en photoshop de 512 x 512 píxeles y fondo negro.
Es conveniente que estas plantillas tenga diferentes artefactos, evitar en lo posible la utilización de las mismas formas, y que estas formas sean suaves y funcionales.
También es necesario reserva la ultima fila para disponer de algunos artefactos para efectos de volumen de luz, formas cónicas o piramidales, que luego usaremos en conjunto con geometría.
Si desea descargar el resultado ya con los flares optimizados. hágalo aquí
El beneficio que conseguiremos de este truco es que tendremos una variedad prudente de efectos todo terreno para cualquier proyecto que usemos destellos, apenas consumiendo un solo draw call, conservando memoria, peso y rendimiento.
Comments