Version: 5.5
Parámetros de un Lightmap
Lighting Data Asset

Directional Lightmapping

Los Directional lightmaps almacenan más información sobre el entorno de iluminación que los lightmaps normales. Los shaders pueden usar esos datos adicionales sobre la luz entrante para calcular mejor la luz que sale, que es cómo los materiales aparecen en la pantalla. Esto ocurre a un precio de un mayor uso de memoria de textura y tiempo de sombreado.

Usted puede escoger uno de los tres modos: Non-directional, Directional y Directional with Specular. Todos los tres disponibles como realtime y baked lightmaps.

  • Non-directional: flat diffuse. Este modo utiliza sólo un lightmap, almacenando información sobre cuánta luz emite la superficie, suponiendo que es puramente difusa. Los objetos iluminados de esta manera aparecerán planos (no se utilizarán mapas de normales) y difusos (aunque el material sea especular), pero de lo contrario se encenderán correctamente. Estos barriles utilizan mapas de luz al horno. La única definición de detalle proviene de un reflection probe y un mapa de oclusión.
  • Directional: normalmapped diffuse. Este modo añade un lightmap secundario, que almacena la dirección de la luz dominante entrante y un factor proporcional a la cantidad de luz en el primer lightmap es el resultado de la luz que entra a lo largo de la dirección dominante. Se supone que el resto viene uniformemente de todo el hemisferio. Esa información permite que el material sea normalmapped, pero todavía aparecerá puramente difuso.
  • Directional with Specular: full shading. Al igual que el modo anterior, éste utiliza dos lightmaps: light (luz) y direction (dirección), pero esta vez están divididos en mitades. El lado izquierdo almacena la luz directa, y la derecha indirecta. A diferencia de los otros dos modos, la luz se almacena como intensidad de entrada. Esa información adicional permite al shader ejecutar el mismo BRDF que normalmente está reservado para luces en tiempo real, resultando en un aspecto de material con todas las funciones, ahora también interactuando con luz indirecta.

Performance: the Directional mode uses twice as much texture memory as Non-directional lightmaps and has a slightly higher shading cost. Directional with Specular uses twice as much texture memory as Directional (it also uses two textures per set, but they’re split in two, so twice as many sets are needed). Its shading cost is comparable to two un-shadowed lights, as it runs the BRDF twice - for direct and indirect light. Non-directional: one texture, one texture sample, a few extra shader instructions. Directional: two textures, two texture samples, a few more extra shader instructions. Directional with Specular: two textures, four texture samples, high extra shader cost (about two un-shadowed lights).

Los lightmaps en tiempo real aprovechan el mismo enfoque y están sujetos a las mismas compensaciones de calidad/precio de shader. La única diferencia con la lista anterior es que el lightmap Realtime Directional with Specular utiliza tres texturas (intensidad entrante, dirección, normal), tomando tres muestras de textura. Tiene un precio de shader de una luz no sombreada, ya que ejecuta el BRDF sólo una vez. Funciona en combinación con una luz directa en tiempo real, por supuesto, que tiene su propio precio de shader.

El BRDF que se utiliza realmente para la luz indirecta (Directional with Specular realtime y la parte indirecta de baked) es una versión ligeramente menos costosa. UNITY_BRDF_PBS_LIGHTMAP_INDIRECT está definido en UnityPBSLighting.cginc.

El modoDirectional with Specular empuja el lightmapper a los límites de la técnica GI que utiliza, lo que en algunos casos conduce a artefactos (problemas). Éstos son a menudo parches de la dirección dominante incorrecta de la luz, causando el shader oscuro o negro. Algunos de estos problemas se pueden arreglar aumentando la resolución en tiempo Realtime/Indirect. Si todo falla, los modos de lightmap más simples son más robustos.

Parámetros de un Lightmap
Lighting Data Asset