Version: 2020.1
Custom fall-off
LOD and Realtime GI

Realtime Global Illumination using Enlighten (deprecated)

Unity uses middleware called Enlighten for Realtime GI.

Enlighten is deprecated, and will soon be removed. As an alternative lightmapper, use the Progressive GPU Lightmapper (Preview) or Progressive CPU Lightmapper. Unity is developing a new solution for real-time global illumination. For more information, see the Unity blog.

By default, Realtime Lights contribute only direct lighting to a Scene. If you enable Realtime Global Illumination (Realtime GI) in your Scene, Realtime Lights also contribute indirect lighting to a Scene.

Render pipeline support

  • The Built-in Render Pipeline supports Realtime Global Illumination using Enlighten.
  • The Universal Render Pipeline (URP) does not support Realtime Global Illumination using Enlighten.
  • The High Definition Render Pipeline (HDRP) does not support Realtime Global Illumination using Enlighten.

When to use Realtime GI

Realtime GI is useful for lights that change slowly and have a high visual impact on your Scene, such as the sun moving across the sky, or a slowly pulsating light in a closed corridor. Realtime GI is not intended for Lights that change quickly or for special effects, due to performance cost and latency.

Realtime GI is suitable for games targeting mid-level to high-end PC systems and consoles. Some high-end mobile devices might also be powerful enough to make use of this feature, but you should keep Scenes small and the resolution for real-time lightmaps low to conserve system resources.

Using Realtime GI

To enable Realtime GI in your Scene, open the Lighting window (menu: Window > Rendering > Lighting) and enable Realtime Global Illumination.

To disable the effect of Realtime GI on a specific Light, select the Light GameObject and, in the Light component, set the Indirect Multiplier to 0. This means that the Light doesn’t contribute any indirect light to the Scene.

To disable Realtime GI altogether, open the Lighting window (menu: Window > Rendering > Lighting) and uncheck Realtime Global Illumination.

For detailed step-by-step advice on using Realtime GI, see the Unity tutorial on Precomputed Realtime GI.

How Realtime GI works

In the Unity Editor, Enlighten splits the Scene into small surface patches, and determines the degree to which these patches are visible to each other. At runtime, Enlighten uses this precomputed visibility information to approximate how the Realtime Lights bounce in the Scene, saves the results in a set of lightmaps, and then uses these lightmaps to apply indirect lighting to the Scene.

It is computationally intensive to update the lightmaps, and so the process is split across several frames. In other words, it takes Enlighten a couple of frames to propagate changes to indirect lighting through the Scene.

Light Probes and Realtime GI

Note that Light Probes behave differently when you enable Realtime GI.

When you enable Realtime GI in a Scene, Light Probes sample lighting iteratively at runtime. This means that they react to runtime changes in Scene lighting.

When you disable Realtime GI in a Scene, Light Probes only use baked lighting data. This means that they don’t react to runtime changes in Scene lighting.

Shadows and Realtime GI

If the Light also casts shadows, Unity renders both dynamic and static GameObjects in the Scene into the Light’s shadow map. The Material Shaders of both static and dynamic GameObjects then sample this shadow map , and cast real-time shadows on each other. The Shadow Distance (menu: Edit > Project Settings, then select the Quality category, and navigate to the Shadows section) controls the maximum distance at which shadows start to fade out and disappear entirely, which in turn affects performance and image quality.

Note that while Realtime GI also results in soft shadows, unless the Scene is very small, they are typically more coarse-grained than what lightmapping can achieve.

Performance considerations

Realtime GI can increase memory requirements, because Enlighten uses an additional set of lightmaps to store real-time indirect bounces.

Realtime GI increases shader calculations, because Enlighten samples the additional set of lightmaps and probes.

Optimizing Realtime GI

If Realtime GI doesn’t respond quickly enough to changes in your Scene lighting, there are several ways to address this problem:

  • Reduce the real-time light map resolution. This results in less calculation at runtime, so the lighting converges faster.
  • Increase the CPU Usage setting for Realtime GI in the Quality Settings window. By dedicating more CPU time, the runtime lighting converges faster. The tradeoff is that other systems receive less CPU time to do their work. Whether this is acceptable depends on your Project. This is a per-Scene setting, so you can dedicate more or less CPU time based on the complexity of each individual Scene in your Project.
Custom fall-off
LOD and Realtime GI