La iluminación en Unity está con más funciones que nunca. El pipeline de iluminación incluye una iluminación global en tiempo real, adicionalmente a las técnicas tradicionales de baked light mapping. Estas combinadas con un physically-based rendering (renderizado basado en físicas) y el standard shader dan mayor poder y versatilidad para iluminar escenas más complejas. Unity utiliza physically-based rendering, o PBR para crear una manera amigable de lograr un aspecto consistente plausible para los materiales debajo de condiciones de iluminación. Para hacer esto, Unity modela cómo la luz en realidad se comporta y sigue las leyes de física acerca de cómo la luz interactúa con los materiales. Estos materiales por lo usual son creados utilizando el standard shader. El standard shader hace que physically based rendering sea fácil y accesible de utilizar. Una de las herramientas más poderosas que hay en el pipeline de Unity es la iluminación global en tiempo real de Unity, o GI. Al usar GI, todas las luces en la escena pueden afectar el objeto dentro de rango con ambas iluminación directa e indirecta. La iluminación directa viene de luces que alumbran directamente a los objetos en la escena. La iluminación indirecta sin embargo es la luz reflejada, o que rebota de las superficies de luz en la escena. Esta luz indirecta que rebota puede iluminar objetos cercanos imitando cómo la luz se comporta en el mundo real Esta luz indirecta es afectada por el color de las superficies de las que rebota, tomando una contribución del color de esa superficie. La iluminación directa e indirecta va a mezclarse para crear un aspecto mucho más real. Adicionalmente a la cámara principal predeterminada una nueva escena en Unity viene con un sky box predeterminado y una luz directional predeterminada alineada con ese sky box. Cada escena también contiene valores predeterminados para la iluminación del ambiente. La luz del ambiente ilumina todas las superficies en la escena. La luz de ambiente es controlada por ajustes en los paneles de iluminación de Environment de la pestaña Lighting. La luz de ambiente se puede crear ya sea utilizando un sky box, un gradiente de usuario generado por 3 colores, o un solo color. Todos los objetos agregados a la escena van a recibir una luz de ambiente al menos de que el valor de intensidad ambient esté configurado en 0 o los valores del color de la luz de ambiente estén configurados a negro. Es muy raro, si no imposible para cualquier material del mundo real en no tener reflectividad. Por defecto todos los objetos en la escena también van a recibir información de reflectividad. Incluso si el cubo, la esfera y el plano en la escena no están prendidos y la luz de ambiente es ninguna estos todavía reciben información de iluminación en la forma de reflejos. La fuente por defecto de reflejo es el sky box. Esto se puede cambiar a que sea un cube map personalizado. Para recibir ningún reflejo predeterminado configure ya sea el cube map personalizado a none (ninguno), o quite el sky box. Vale la pena tener en cuenta que el sky box predeterminado es generado procedimentalmente y los sky boxes nuevos procedimentalmentes pueden ser creados y guardados como assets. Cuando ilumine escenas en Unity podemos trabajar con una iluminación en tiempo real, con iluminación baked, o una mezcla de ambas. La iluminación en tiempo real es modificada más fácil en tiempo de ejecución. pero viene con un costo al rendimiento. El Baked lighting (iluminación baked) por el contrario, pre-cálcula información de iluminación más detallada y la guarda en una textura light mapped en disco. Esta información light map es luego leída de la textura en tiempo de ejecución, evitando la necesitad de hacer cualquier cálculo de iluminación cuando el proyecto esté ejecutándose. Esto ahorra rendimiento, pero al precio de cambios dinámicos en la escena. Los baked light maps no son actualizados en tiempo de ejecución. Las luces pueden cambiarse entre realtime (tiempo real), baked, y una mezcla de iluminación basada por luz. El uso exclusivo de una iluminación baked es más apropiado para plataformas destino como lo son dispositivos móviles con capacidades de rendimiento menores. El sistema de light mapping puede funcionar continuously (continuamente) o por demand (demanda). Cuando continuous baking sea seleccionado los cambios de iluminación serán baked en el fondo mientras se edita. Estos cambios pueden ser propiedades ajustadas en el inspector, u objetos cambiados en la escena. Cuando continuous baking no sea seleccionada los cambios solo se van a pre-visualizar en demanda. Cuando el botón Build en el panel de lighting sea seleccionado. En esta escena hay una luz directional que viene a través de una claraboya en el techo. Esta luz contribuye a la iluminación de la escena completa a medida que la luz rebota de las superficies que ilumina directamente, a otras superficies cercanas de una manera indirecta. Esta luz continua iluminando indirectamente superficies cercanas hasta que la fuerza de la luz se desvanece y no puede rebotar más. Disminuya la intensidad de la luz y la iluminación de la escena disminuye de acuerdo a esto. Del mismo modo, si la luz directional es girada para iluminar directamente una diferente parte de la escena, ahora iluminará la escena de una manera diferente, con ambas iluminación directa e indirecta. Ya que los materiales creados con un standard shader pueden imitar una amplia variedad de superficies físicas y los materiales diferentes pueden tener diferentes cantidades de refletividad esto puede afecta la iluminación de la escena. Para ayudar a balancear esto la Bounce Intensity se puede ajustar en una base por luz o globalmente al ajustar los ajustes en el panel de lighting. Los ajustes pueden ser hechos aquí para cambiar artificialmente el rebote potencial de la luz de una superficie iluminada. Ajuste la cantidad de luz indirecta en la escena, y más. Adicionalmente a las luces nosotros podemos utilizar superficies emisivas para contribuir a la iluminación de la escena. Esta escena está prendida con una variedad de luces y tipos de luces, incluyendo superficies emisivas. Las superficies Emissive (emisivas) son una fuente de luz, pero se comportan muy parecido a una luz que rebota indirectamente. Las superficies emisivas principales en la escena se encuentran en el cruce principal del corredor. Pero hay paneles adicionales ubicados a través de la escena. Todas estas superficies emisivas utilizan la propiedad Emission del standard shader al ajustar la escala Emissive. El valor float alado de la propiedad Emission y al agregar un toque de color, el animo de nuestra escena cambia. A medida que estas luces pueden participar en un light mapping en tiempo real estas pueden se controladas en tiempo de ejecución utilizando código o una animación para crear cambios complejos en el animo mientras nuestros proyectos se están ejecutando. El factor final que contribuye en iluminar una escena en Unity son probes. Hay 2 tipos de probes en Unity. Light probes y reflection probes. Los light probes toman muestras de la iluminación en la escena en diferentes posiciones en el mundo. La información en estos probes puede ser utilizada para iluminar elementos dinámicos en la escena como lo son personajes u otros objetos en movimiento a un precio bajo al rendimiento. Los Reflection probes por el contrario funcionan como un solo punto de referencia para calcular reflejo Rodeando cada reflection probe está un cuboid que específica lo que debería ser incluido en ese reflejo. Estos probes toman muestras de los elementos alrededor de ellos utilizando una proyección de una caja, y almacena esa información en un cube map. Los materiales con superficies reflectivas que están en objetos dentro del volumen del reflection probe pueden luego referenciar este cube map parar crear superficies reflectivas. Por defecto hay un reflection probe integrado en cada escena. Este reflection probe por defecto refleja el sky box para crear reflejos básicos. Para más detalles en los reflejos se requiere de reflection probes adicionales y posicionados adecuadamente para los objetos reflectivos. Vale la pena notar que physically-based rendering funciona mejor en el linear colour space. Linear colour space va a dar un resultado más real y matemáticamente correo. Para mejores resultados asegúrese de que el colour space esté configurado a linear en la ventana de los player settings del proyecto. Linear colour space es el ajuste predeterminado. Sin embargo, tenga cuidad que no todas las plataformas soportan linear colour space, y que gamma es el colour space requerido actualmente para la mayoría de plataformas móviles. Cuando mire todos estos aspectos para iluminar una escena en Unity estos pueden ser agregados efectivamente con los factores principales de contribución. Ambient light (luz de ambiente). Reflections (reflejos). y fuentes de luz. Trabajando con materiales creados con el standard shader siendo dibujados utilizando physically-based rendering con iluminación global para calcular la iluminación indirecta y crear escenas más complejas y reales.