Version: 5.5
Ventana de Lighting (Iluminación)
Baked ambient occlusion

Utilizando precomputed lighting (iluminación pre-calculada)

En Unity, la precomputed lighting (iluminación precalculada) se calcula en el fondo ya sea como un proceso automático o cuando se inicia manualmente. En cualquier cosa, es posible continuar trabajando en el editor mientras estos procesos se ejecutan detrás de escena.

Cuando el proceso de precompute esté ejecutando, una barra de progreso azul aparecerá en la esquina derecha del Editor. Hay diferentes fases que necesitan completarse dependiendo si Baked GI o Precomputed Realtime GI está habilitado. La información acerca del proceso actual se muestra encima de la barra de progreso.

La barra de progreso muestra el estado actual del precompute (precalculo) de Unity.

En el ejemplo de arriba, podemos ver que estamos en la tarea 5 de 11 la cual es, ‘Clustering’ y hay 6 trabajos que faltan antes de que esa tarea haya completado y el precompute (pre-calculo) se mueve a la tarea 6. Las varias fases se listan abajo:

Precomputed Realtime GI

  1. Crea Geometría
  2. Layout Systems
  3. Create Systems
  4. Create Atlas
  5. Clustering
  6. Visibility
  7. Light Transport
  8. Tetrahedralize Probes
  9. Create ProbeSet

Probes

  1. Ambient Probes
  2. Baked/Realtime Ref. Probes

Baked GI

  1. Crea Geometría
  2. Atlassing
  3. Crea Systemas Baked
  4. Recursos Baked
  5. Bake AO
  6. Exporta Textura Baked
  7. Bake Visibilidad
  8. Bake Direct
  9. Ambient y Emissive
  10. Crea Sistemas Bake
  11. Bake Runtime
  12. Upsampling la Visibilidad
  13. Bake Indirect
  14. Final Gather
  15. Bake ProbesSet
  16. Compositing

Empezando un precompute (precalculo)

Solamente la geometría estática se considera por las soluciones de precomputed lighting de Unity. Para empezar el proceso de lighting precompute necesitamos al menos un GameObject marcado como ‘static’ en nuestra escena. Este puede ser hecho de manera individual, o seleccionando y haciendo shift en varios GameObjects del panel de Jerarquía.

Del panel del Inspector, la casilla de verificación Static se puede seleccionar (Inspector > Static). Esto configurará todas las ‘opciones static’, o ‘flags’, de los GameObjects, incluyendo la navegación y batching, en ser estáticos, lo cual puede que no se desee. Para Precomputed Realtime GI, solamente ‘Lightmap Static’ se necesita marcar.

Para un control más fino, las opciones estáticas individuales se pueden configurar de la lista desplegable accesible a la derecha de la casilla de verificación Static en el panel del Inspector. Adicionalmente, los objetos también se pueden configurar a Static en el área Object de la ventana de lighting.

Si su escena está configurada a Auto (Lighting > Scene > Auto), la lighting precompute de Unity empezará automáticamente. De lo contrario, necesitará empezar manualmente como se describe abajo.

Auto/manual precompute

Si ‘Auto’ está marcado en el fondo del panel de Lighting de Unity (Lighting > Scene > Auto), entonces este precompute empezará automáticamente como un proceso en el fondo cuando haya cambios a la geometría estática dentro de su escena.

Sin embargo, si Auto no está seleccionado, usted necesitará empezar manualmente un precompute (precalculo) oprimiendo el botón ‘Build’ alado de este. Esto empezará el precompute de la misma manera, mientras le da a usted control sobre cuando este proceso empieza.

Iniciar manualmente un precompute causará que todos los aspectos de la iluminación de su escena sean evaluados y (re)computed (calculados). Si usted sea desea re-calcular selectivamente los Reflection Probes por sí solos, esto se puede realizar a través del menú desplegable alado del botón Build (Lighting > Scene > Build).

Habilitando baked GI o precomputed realtime GI

Por defecto, ambos el Precomputed Realtime GI y Baked GI están habilitados en el panel de Lighting de Unity (Lighting > Scene). Con ambas habilitadas, la técnica utilizada puede luego ser controlada por cada luz individualmente (Inspector > Light > Baking).

Utilizar ambos el Baked GI y Precomputed Realtime GI juntos en su escena puede ser perjudicial al rendimiento. Una buena práctica es asegurarse que solo se esté usando un sistema a la vez, al desactivar el otro globalmente. Esto se puede hacer desmarcando la caja alado de cualquiera de Precomputed Realtime GI o Baked GI dentro del panel de lighting de Unity (Lighting > Scene). Ahora solamente la opción marcada estará presente en su escena, y cualquier otras configuraciones por-luz serán anuladas.

Configuraciones por luz

El modo predeterminando de baking para cada luz es ‘Realtime’ (tiempo real). Esto significa que la luz seleccionada contribuirá una luz directa a su escena, con una iluminación indirecta manejada por el sistema de Precomputed Realtime GI.

Sin embargo, si el modo de baking está configurado a ‘Baked’ entonces la luz contribuirá luz solamente al sistema de Baked GI de Unity. Ambas luces directas e indirectas de esas luces seleccionadas serán ‘baked’ en lightmaps y no se podrán cambiar durante el gameplay.

Baking ModePoint light con el modo de Baking por luz configurada a ‘Realtime’.

Seleccionando el baking mode ‘Mixed’, los GameObjects marcados como static (estáticos) seguiran incluyendo esta luz en sus Baked GI lightmaps. No obstante, a diferencia de las luces marcadas como ‘Baked’, las luces Mixed contribuirán una luz directa en tiempo real a GameObjects no-estáticos dentro de su escena. Esto puede ayudar en casos dónde está utilizando lightmaps en su ambiente estático, pero todavía quiere que el personaje utilice estas mismas luces para emitir sombras en tiempo real a la geometría que está lightmapped.

GI cache

En cualquiera del Baked GI o Precomputed Realtime GI, Unity ‘almacena en cache’ datos acerca de la iluminación de su escena en el ‘GI Cache’, e intentará re-utilizar estos datos cuando sea posible para ahorrar tiempo durante el precompute. La cantidad y naturaleza de los cambios que le ha hecho a su escena determinará qué tanto de estos datos se pueden re-utilizar.

Este caché se almacena externamente al proyecto de Unity y se puede limpiar utilizando (Preference > GI Cache > Clear Cache). Limpiar esto significa que todas las fases de precompute necesitarán ser re-calculadas desde el principio por lo que puede tomar tiempo. Sin embargo, en algunos casos, de pronto necesita reducir el uso de disco, lo cual podría ayudar.

LOD para baked GI

Level-of-detail (nivel de detalle) se toma en consideración cuando Unity genera baked lightmaps. La iluminación directa se calcula utilizando las superficies actuales de todos los LODs. Niveles LOD más bajos utilizan light probes para recoger iluminación indirecta. La iluminación resultante se baked a un lightmap.

Esto significa que debería colocar light probes alrededor de sus LODs para capturar una iluminación indirecta. El objeto no utilizará lightprobes en tiempo de ejecución si utiliza un baked GI completo.

Ventana de Lighting (Iluminación)
Baked ambient occlusion