This is the documentation for Enlighten.

Enlighten systems


Enlighten instances that you choose to include in the radiosity computation are automatically grouped into radiosity systems.

Each radiosity system is a collection of nearby instances that can be processed more efficiently as a unit:

  • The computations for a given system can be limited to a sub-set of the other systems in the scene.
  • The Enlighten precompute processes many systems in parallel.
  • The Enlighten runtime data for each system is stored and loaded as a single chunk.
  • In the Enlighten runtime, the lighting for a system is computed as a single asynchronous task. Updates for nearby systems can be prioritized to reduce latency.

To maximize efficiency instances should be grouped into systems such that:

  • each system includes many instances as possible, while...
  • the instances within the same system form a tightly bounded group, and
  • the precompute produces a similar number of clusters for each system

Automatic system groups

In most cases, Enlighten can automatically group instances into systems efficiently. In some cases you may want to provide explicit system groups.

We recommend to use automatic system groups to provide an automated workflow for the artist.

In a scene that is constantly changing in production, it would otherwise be very difficult and time-consuming to maintain the system grouping by manually tagging instances.

Explicit system groups

You may want to provide explicit system groups to implement a custom grouping method for a specific use-case, such as terrain instances arranged in a grid.

To keep your implementation simple, we recommend to avoid explicit system groups unless you absolutely need to.

To explicitly group an instance into the same system as another instance, set the systemId attribute of both instances to the same name. Instances can be grouped only with other instances sharing the same type and paramSet.

Problem scenarios

In some scenarios, it is not possible to group instances into systems efficiently. This can cause the precompute and the runtime updates to take much longer than expected.

Instances with different radiosity properties such as lighting type and cluster size cannot be grouped into the same system. When each instance has slightly different radiosity properties, too many systems are created. To avoid this, minimize the number of indirect lighting resolution combinations that can be used with each instance. An effective way to do this is to provide a choice of high, medium and low indirect lighting resolution to the artist, which each correspond to a single parameter set.

If your world contains a single instance with very large bounds, the system containing it will be very large. To avoid this, ensure that such very large instances are split into smaller chunks.