lunes, 17 de abril de 2017

Iluminación Unity 5. Tipos de luces básicas. Parte 2 de 8

Tras crear un proyecto en Unity 5 en el cual hemos introducido una Luz, como aprendimos en la entrada anterior Iluminacion Unity 5 Parte 1, vamos a ver los distintos tipos de luces que existen dentro de Unity 5.

En primer lugar vamos a ver cual es la incidencia de la luz en objetos del mundo real.

Para calcular el sombreado de un objeto 3D, Unity necesita conocer la intensidad, dirección y color de la luz que incide sobre éste.


El Color

El color no es una característica intrínseca de los objetos, sino que está determinado, por un lado, por la forma en que el objeto interacciona con la luz blanca, y, por otra parte, por la manera en que nuestros ojos y nuestro cerebro interpretan la información que reciben. Cuando la luz blanca incide sobre un objeto cualquiera, una parte de su energía es absorbida, mientras que otra parte de su longitud de onda es reflejada. Es esta última la que determina de qué color lo vemos.

La Dirección

Esta propiedad está asociada a las rectas imaginarias que, de alguna forma, nos indican la trayectoria que sigue la luz. Pero lo realmente importante es que la dirección de la luz nos permite reforzar o suavizar el volumen, el color y la forma del objeto. A la hora de iluminar un objeto o una escena tenemos cinco opciones. La luz frontal minimiza el volumen y las sombras y nos ofrece colores puros. La luz trasera, sin embargo, acentúa las sombras, atenúa el color y define el contorno de los objetos.

La siguiente dirección que nos interesa conocer es la lateral, que acentúa el relieve, la textura y alarga las sombras. La cenital incide en los objetos desde arriba y da sensación de profundidad debido a que nos permite separar los objetos situados en primer plano del fondo. La opuesta a la luz cenital es la nadir. Por tanto, ilumina los objetos desde abajo, y produce sombras muy poco naturales debido a que es poco frecuente en la naturaleza (solo aparece cuando la luz se refleja en la nieve, en el agua, etc.).

La Intensidad

Nos indica qué cantidad de luz está presente en la escena. La subexposición se produce cuando la cantidad de luz es deficiente, y provoca una pérdida importante de información. Por el contrario, la sobreexposición revela que hay un exceso de luz.


Estas propiedades son proporcionadas por lasluces (GameObject Light de la escena). El color base y la intensidad están configurados idénticamente para todas las luces pero la dirección depende del tipo de luz que esté usando. Además, la luz puede disminuir con la distancia desde la fuente. Los cuatro tipos de luz disponibles en Unity se describen a continuación.

1) Point Lights
2) Spot Lights
3) Directional Lights
4) Area Lights


1) Point Lights




Una Point Light se encuentra en un punto en el espacio 3D (x,y.z) y emite luz en todas las direcciones por igual. La dirección de la luz que alcanza una superficie es la línea desde el punto de contacto hasta el centro del punto del GameObject Light . La intensidad disminuye con la distancia, llegando a cero en un rango especificado.

Point Lights son útiles para simular lámparas y otras fuentes de luz locales en la escena. También se pueden utilizar para simular la iluminación producida por una chispa o explosión de una manera convincente.




En el componente Light debemos seleccionar tipo (Type) Point.

El atributo Baking tiene tres opciones:

1) Baked ( si Baked GI esta habilitada ). La luz se incluye dentro de las texturas de los GameObject marcados como Static. Computacionalmente mejora el rendimiento, ya que se necesitan menos recursos que la luz en tiempo real.

2) Mixed: el motor de Unity decide cuando la luz está "bakeda" y cuando se emplea en tiempo real.

3) RealTime: la luz se calcula en tiempo real. Es más costoso computacionamente pero más realista.

El atributo Range que determina a que distancia llegará la luz desde el centro del GameObject con el componente Light.

El atributo Color deteminar el color de la luz.

El atributo Intensity indica el brillo o cantidad de luz que emite el GameObject con el componente Light.

El atributo Bounce Intensity indica la intensidad de la luz indirecta (luz que rebota sobre un objeto).

El atributo Shadow Type determina si va a crear sombras de un débiles, o fuertes o no va a generar sombras.

El atributo Draw Halo crea un "Halo" de luz alrededor del gameObject.

El atributo Flare permite adquirir caracteristicas especiales a la luz. Dentro de Unity existen un tipo llamado Flare, que es el que se le asigna en este componente.

El atributo RenderMode indica la importancia de esta luz en la escena. Si es Important se renderizará con más la configuración de mejor calidad, si es no importante con una configuración de menor calidad y en Auto, Unity determina cual de las dos emplear.

El atributo Culling Mask indica sobre que capas va a incidir la luz.









2) Spot Lights





Un Spot Light tiene un posición específica y un rango sobre el cual la luz incide. Sin embargo, el Spot Light está limitado a un ángulo, resultando en una región de iluminación con forma cónica. El centro del cono apunta en la dirección de avance (Z) del Light Object.



Posee los mismos atributos que la Point Light, el único que cambia es el atributo Spot Light que indica en grados el angulo del cono.


Los Spot Lights se suelen utilizar para fuentes de luz artificiales tales como linternas, los faros de un coche y reflectores. Con la dirección controlada mediante un script o animación, un Spot Light en movimiento ilumina únicamente un área de la escena y crea efectos de iluminación espectaculares.




3) Directional Lights



Un Directional Light no tiene ninguna posición identificable de su fuente por lo que puede colocarse en cualquier lugar de la escena. Todos los objetos de la escena son iluminados desde la misma dirección por este objeto. La distancia de la luz respecto al objeto destino no está definida y por lo tanto la luz no disminuye.



Los atributos son los mismos que una Point Light. Se añade un componente llamado Cookie que permite asignarle una serie de caracteristica a la luz, el atributo Cookie Size  indica el tamaño de esta Cookie.


Las luces direccionales representan fuentes de luz grandes y distantes que vienen desde un lugar fuera de rango del mundo del juego. En una escena realista, se pueden utilizar para simular el sol o la luna. En un mundo abstracto, pueden utilizarse para añadir sombras convincentes a los objetos sin especificar de dónde viene la luz. Cuando se analiza un objeto en la Scene View (por ejemplo para ver el aspecto de su malla, shader y material) una luz direccional suele ser la forma más rápida de obtener una primera impresión de cómo será su sombreado. Para una prueba de este tipo, no suele estar interesado en de dónde viene la luz sino que simplemente quiere ver el objeto “sólido” y buscar fallos en su modelo.

4) Area Lights




Un Area Light está definido por un rectángulo en el espacio. La luz se emite en todas direcciones, pero solo por un lado del rectángulo. La luz incide sobre un rango específico. Dado que el cálculo de iluminación requiere mucho tiempo de procesador, los Area Lights no están disponibles en tiempo de ejecución y únicamente puede procesarse en Lightmaps




Los atributos son los mismos que una Point Light. Se añade un atributo Width (ancho) y otro Height (alto) que determina las dimensiones de esta luz.

Ya que un Area Light ilumina un objeto desde diferentes direcciones a la vez, el sombreado tiende a ser más suave y sutil que el resto de tipos de luz. Puede utilizarlos para crear una farola realista, o un banco de luces cercano al jugador. Un Area Light pequeño puede simular fuentes más pequeñas de luz (como la iluminación interior de una casa) pero con un efecto más realista que un Point Light.

1 comentario:

  1. Borgata Hotel Casino & Spa - JTR Hub
    Located in Atlantic City, titanium earrings Borgata Hotel Casino & Spa offers the finest in 1xbet app amenities 출장마사지 and entertainment. casinosites.one It also provides a seasonal outdoor 출장안마 swimming

    ResponderEliminar

Incluir anuncios en mis juegos con AdMob de Google. Unity 5.Script C# para Google Admob. Paso 4 de 4

Vamos a escribir el código necesario para mostrar los anuncios en nuestro juego. Lo primero vamos a crear dentro de la carpeta Assets la car...