Global Illumination

Learn about the available precomputed and dynamic global illumination options available.

Windows
MacOS
Linux

Global illumination (also called indirect lighting and indirect illumination) simulates lighting interactions with geometry and material surfaces to add realistic lighting to your scenes and projects. This simulation also takes into account absorption and reflectiveness of the materials with which it interacts.

Simulating the way light behaves in 3D worlds is handled in one of two ways: using real-time lighting methods that support light movement and interaction of dynamic lights, or by using precomputed (or baked) lighting information that gets stored in textures applied to geometric surfaces. Unreal Engine provides both these ways of lighting scenes and they are not exclusive to one another as they can be seamlessly blended between one another.

These are some of the highlights of each system to help you understand their usage and capabilities:

  • Ideal for scenes where lighting doesn't need to change.

  • Performance costs are relative to the memory required to load and store the lightmap textures.

  • Quality and accuracy of results is set by the texture resolution of the lightmap texture being baked and applied to geometry.

  • Supports Static Mesh and BSP geometry by default.

  • Static Meshes require setting up a Lightmap UV to store lighting data.

  • Can be used in combination with dynamic lighting.

  • Ideal for times where lighting needs to change, such as turning a light on or off, or a time-of-day system.

  • Large, open-world environments present impractical requirements for baked lighting (even without a time-of-day system). Bake times, memory usage, texture storage and playback are considerable factors to use dynamic GI.

  • Performance costs can be significantly more expensive to calculate in real-time depending on the method being used.

  • Quality and accuracy is often traded with performance. Some Dynamic GI methods are limited by real-time usage.

  • Supports all geometry types by default.

  • Can be used in combination with precomputed lighting.

Precomputed Global Illumination

The light baking system in Unreal Engine provides two ways of computing lighting data using Lightmass: on the CPU, or the GPU. Precomputed lighting is used to achieve high-quality results that aren't compromised by real-time limitations. However, since the lighting is generated and stored in textures applied to geometry, it cannot be changed dynamically.

Explore the available precomputed lighting workflows below.

CPU-Based Lightmass System

The CPU-based Lightmass system uses a separate process called Unreal Swarm to compute and generate lighting data. Unreal Swarm is also used to distribute lighting to build farms where complex levels can be broken up to complete the build process. Because this is handled on the CPU, the number of available threads, or machines which a build can be distributed to, becomes vitally important in generating the final lightmap results. Complex scenes, for a single machine, can take a lot of processing time, power, and RAM to complete.

To learn more about this option, see Lightmass Global Illumination.

GPU-Based Lightmass System

Learn to use this Beta feature, but use caution when shipping with it.

Features available in Beta state give you the opportunity to learn how they work, plan your pipeline, and create test content. You should use caution when using these features in production, as we are still working to get to shipping-quality performance, stability, and platform support. We support backwards compatibility for assets, and the APIs for these features are stable.

The GPU-based Lightmass (GPULM) system uses your computer's GPU in combination with the latest DirectX 12 (DX12) and ray tracing capabilities to compute and generate lighting data. It uses a single in-editor process to complete lighting builds and does not support distributed builds using Unreal Swarm. However, it does support multiple GPUs through SLI.

To learn more about this system, see GPU Lightmass Global Illumination.

Dynamic Global Illumination

The dynamic lighting methods in Unreal Engine offer real-time global illumination solutions to light your scenes with bounce lighting from dynamic light sources. These solutions enable you to change lighting and automatically update to the objects within the scene, making it possible to simulate time-of-day transitions or something as simple as turning a light on and off within a room. Because these lighting systems are calculated in real time, there is little to no set up required for them to work.

Screen Space Global Illumination

Screen Space Global Illumination (SSGI) uses a post processing screen-space effect to generate dynamic indirect lighting. This method is limited to objects and lighting within the camera view to generate lighting data. Instances where bright lights are out of view or blocked by objects within the scene can cause jarring results.

This dynamic GI method is ideal when used in combination with existing dynamic or precomputed GI methods as an additive effect to get good looking results.

Using only baked lighting without SSGI

With SSGI

Ray Tracing Global Illumination

The Ray Tracing features of Unreal Engine includes a dynamic global illumination method that leverages Microsoft's DXR framework with NVIDIA's ray tracing capable GPUs to render physically accurate lighting results.

There are two methods of Ray Tracing Global Illumination (RTGI) that are supported:

  • The Brute Force method emulates the Path Tracer's ground truth reference and is most similar in execution when rendering for real-time. It is also the most consuming of frame performance while also providing the most accurate method of dynamic global illumination.

  • The Final Gather method trades accuracy for performance by using a two-pass algorithm with distributed shading points and a fixed number of samples per pixel. For projects that need real-time performance, the trade off in accuracy of the Brute Force method means that your frame budget can support dynamic global illumination.

Scene Lighting Only

Ray Tracing Global Illumination | using Brute Force Method

To see more about the capabilities of these features, see Real-Time Ray Tracing.

Light Propagation Volumes

As of Unreal Engine 4.26, this feature has been deprecated and should no longer be used. It will be removed in a future version of the engine.

Light Propagation Volumes (LPV) use a placed volumes to sample and store lighting data that can be referenced and used for dynamic global illumination. The voxel-based approach uses a grid within the volume to control the detail and accuracy of indirect lighting, which helps reduce light leaking and other artefacts. It is ideal for small to medium-sized areas.

LPV_scene.png

To see more about this system, see Light Propagation Volumes.

Select Skin
Light
Dark
Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback