Unity uses a middleware solution called Enlighten for Realtime Global Illumination.
By default, Realtime Lights contribute only direct lighting to a Scene. If you enable Realtime Global Illumination (Enlighten Realtime Global Illumination) in your Scene, Realtime Lights also contribute indirect lighting to a Scene.
See render pipeline feature comparison for more information about support for Realtime Global Illumination using Enlighten across render pipelines.
Enlighten Realtime Global Illumination (Realtime GI) is useful for Lights that change slowly and have a significant visual impact on your Scene, such as the sun moving across the sky, or a slowly pulsating light in a closed corridor. This feature is not intended for special effects or Lights that change quickly, because latency and the number of CPU cycles needed make that sort of application impractical. Enlighten Realtime Global Illumination is suitable for games targeting mid-level to high-end PC systems and consoles. Some high-end mobile devices may 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 ensure acceptable performance.
To enable Enlighten Realtime Global Illumination in your Scene, open the Lighting window (menu: Window > Rendering > Lighting) and enable Realtime Global Illumination.
要禁用__实时 GI__ 对特定光源的影响,请选择光源游戏对象,然后在光源组件中将 Indirect Multiplier 设置为 0。这意味着该光源不会为场景提供任何间接光。
要完全禁用 Realtime GI__,请打开 Lighting 窗口(菜单:__Window > Rendering > Lighting__),然后取消选中 Realtime Global Illumination__。
For detailed step-by-step advice on using Enlighten Realtime Global Illumination, see the Unity tutorial on Precomputed Realtime GI.
Enlighten Realtime Global Illumination does the following:
At runtime, Enlighten Realtime Global Illumination uses this precomputed visibility information to approximate how 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. It takes Enlighten Realtime Global Illumination several frames to propagate changes to indirect lighting throughout the Scene.
Note that Light Probes behave differently when you enable Enlighten Realtime Global Illumination.
In order to react to runtime changes in Scene lighting, they sample lighting iteratively at runtime.
When you disable Enlighten Realtime Global Illumination in a Scene, Light Probes only use baked lighting data. This means that they don’t react to runtime changes in Scene lighting.
If a 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 sample this shadow map so that these GameObjects cast real-time shadows onto each other. The Shadow Distance setting determines the maximum distance at which shadows begin to fade out and disappear entirely, which in turn affects performance and image quality.
Enlighten Realtime Global Illumination results also include soft shadows, unless the Scene is very small. These shadows are typically more coarse-grained than what lightmapping can achieve.
To modify Shadow Distance settings, navigate to Edit > Project Settings > Quality > Shadows.
Enlighten Realtime Global Illumination uses a set of lightmaps to store real-time indirect bounces. For this reason, enabling it increases memory requirements, even if you are using it along with Baked Global Illumination.
The number of shader calculations needed to generate lighting also increases when you use Enlighten Realtime Global Illumination because it samples an additional set of lightmaps and Light Probes.
If Enlighten Realtime Global Illumination doesn’t respond quickly enough to changes in your Scene lighting, there are several ways to address this problem: