Version: 2019.4
Custom fall-off
LOD and Realtime GI

Realtime Global Illumination using Enlighten

Unity uses middleware called EnlightenA lighting system by Geomerics used in Unity for lightmapping and for Realtime Global Illumination. More info
See in Glossary
for Realtime GI.

By default, Realtime LightsLight components whose Mode property is set to Realtime. Unity calculates and updates the lighting of Realtime Lights every frame at runtime. No Realtime Lights are precomputed. More info
See in Glossary
contribute only direct lighting to a SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
. If you enable Realtime Global IlluminationA group of techniques that model both direct and indirect lighting to provide realistic lighting results. Unity has two global illumination systems that combine direct and indirect lighting.: Baked Global Illumination, and Realtime Global Illumination.
See in Glossary
(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 lightmapsA pre-rendered texture that contains the effects of light sources on static objects in the scene. Lightmaps are overlaid on top of scene geometry to create the effect of lighting. More info
See in Glossary
low to conserve system resources.

Using Realtime GI

To enable Realtime GI in your Scene, open the Lighting window (menu: Window > RenderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary
> Lighting Settings) and enable Realtime Global Illumination.

To disable the effect of Realtime GI on a specific Light, select the Light GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
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 Settings) and uncheck Realtime Global Illumination.

For detailed step-by-step advice on using Enlighten Realtime Global Illumination, 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 ProbesLight probes store information about how light passes through space in your scene. A collection of light probes arranged within a given space can improve lighting on moving objects and static LOD scenery within that space. More info
See in Glossary
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 SettingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info
See in Glossary
, then select the Quality category, and navigate to the ShadowsA UI component that adds a simple outline effect to graphic components such as Text or Image. It must be on the same GameObject as the graphic component. More info
See in Glossary
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 shaderA program that runs on the GPU. More info
See in Glossary
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