This is the documentation for Enlighten.
Enlighten UE5 4.03 Release Notes
Key Features
High definition probe lighting
This release makes a major upgrade to automatic probe placement and per pixel probe lighting. The resolution and accuracy of probe lighting is significantly improved, while maintaining around the same runtime cost as in the previous release.
- Strongly directional diffuse indirect lighting now more closely matches a path traced reference.
- Many common cases of light leaks through thin walls that separate bright outdoor and darker indoor areas are eliminated. Such light leaks now occur only where probe resolution is too low.
- When a lower lighting detail level is used for distant areas, such light leaks now become visible at double the distance from the viewer.
The images on the left show the previous release, with the latest release on the right. Throughout, the diffuse indirect lighting matches more accurately the direct sunlight reflected by the floor. In the distance where a lower detail level is used, there is now no light leak. In the upper right, there is no longer a light leak from a bright outdoor area.
Lightweight probe lighting
This release includes many improvements that reduce the runtime cost of per pixel probe lighting.
- Per pixel probe lighting compute shaders now run efficiently on AMD GPUs.
- Reduced probe lighting GPU memory usage by around 15% compared with the previous release.
- Reduced runtime cost for probe lighting in areas with dense transparent or double sided foliage.
It is now easier to trade per pixel probe lighting draw distance for reduced runtime cost. Use World Settings > Enlighten Settings > Probe LOD Levels to specify the number of detail levels generated for automatically placed probes. When fewer detail levels are generated, probe lighting falls back to sky lighting nearer to the viewer.Â
World Partition in Beta
Enlighten support for World Partition is now available in Beta, ready for evaluation with large scale worlds. This release adds a few key features:
- Enlighten can now be used with the Loose Hierarchical Grid partition type.
- Use World Settings > Enlighten Settings > Default Quality and World Settings > Enlighten Settings > Adaptive Probe Resolution to control the lighting resolution of actors which are set to Use Default.
- The Enlighten Level Stats window now shows Enlighten data statistics broken down by world partition cell.
To convert a level to use World Partition, use the WorldPartitionConvert commandlet with the argument -RemoveEnlightenLevelProperties.Â
When you convert a level to use World Partition, any existing Enlighten level properties are lost.
Eliminate unwanted lighting data
This release includes simple tools that can be used to eliminate light leaks and significant runtime cost caused by Enlighten lighting data generated for areas outside the world.Â
Unless the sky will be visible far below the horizon, enable World Settings > Enlighten Settings > Sky Hidden Below Horizon to eliminate sky light leaks that appear to come from below the world. When enabled, Enlighten indirect lighting is invalidated for areas that can see far below the horizon. This prevents automatic placement of probes in areas under and outside the world. This may cause obviously incorrect indirect lighting in areas that do see far below the horizon.
To eliminate unnecessary Enlighten lighting data in an area outside the world that does not need Enlighten indirect lighting, the artist should place an Enlighten Only Mesh actor with Enlighten Material set to Invalid. Indirect lighting data is not generated for areas that see either the front or back face of this mesh.Â
The images below show a completely enclosed cave built from many intersecting rock meshes, which suffers a light leak caused by Enlighten data generated for surfaces outside the world. On the left the bright sky leaks through into the cave from outside the world, while on the right the leak is prevented by Enlighten Only Mesh actors placed outside the world, visible to the outward facing side of the cave wall.
Instantly switch radiosity simulations
This release enables an instant transition between two independent radiosity simulations. For a quick transition between two independently precomputed areas of the world, precompute multiple independent areas and switch between them.
Enlighten indirect lighting is only available for one independently precomputed area at a time. Other areas can still be visible and will only receive sky lighting, which works well for distant areas.
To change the active radiosity simulation in game mode, make all of the current independently precomputed set of levels invisible, call ResetEnlightenRuntime and then make all of the next independently precomputed set of levels visible.
Important changes
Enlighten now automatically prevents seams in the indirect lighting when a boundary between terrain meshes lies on a steep slope.
Added option to force full update of Enlighten lighting each frame rather than split updates across frames: SetEnlightenUpdateMode
The editor now reports a warning in the Enlighten Errors window after the precompute for a very small mesh that was included in the radiosity computation and has a large number of small triangles relative to the cluster size.
The Enlighten precompute now reports a useful diagnostic message when automatic probe placement would generate an excessive number of probes.
The Enlighten precompute now reports a warning when a static mesh actor has an invalid Scale value, such as zero. Such an actor is excluded from the Enlighten radiosity computation.
The framerate in GeoRadiosity is now improved when per pixel probe lighting is enabled in a large scene which uses Probe Radiosity.
The GeoRadiosity process no longer consumes CPU and GPU resources when its window is minimized.
Fixed bugs
- Fixed an intermittent GeoPrecomp2 process hang during the precompute on some machines.
- Fixed rare black probe lighting artifacts that could occur close to thin walls that separate disconnected areas.
- Fixed failure to fall back to sky lighting in game mode when both persistent level and first loaded sub level have no Enlighten data.
- Fixed failure to fall back to sky lighting in game mode for actors spawned by a blueprint.
- Fixed failure to fall back to sky lighting in game mode when Enlighten Bounce Distance is non-zero.
When the density of Enlighten probes is too high, the precompute now reports the correct location of the highest density.
- Fixed a crash after reimporting a static mesh asset that is open in the Static Mesh editor with Enlighten Charts view enabled.
- Fixed invalid lighting for foliage with detail lighting mode on platforms with manual vertex fetch disabled.
Known Issues
The Rect Light actor is not supported on mobile platforms.
Lightmass is not usable in this release.
Enlighten view modes are not available when Nanite rendering is enabled. To use Enlighten view modes, temporarily disable Nanite with the following console command
r.Nanite 0
Partial loading of level instances is not supported. To work around this, set wp.Editor.DisableLevelInstanceEditorPartialLoading=1 in DefaultEditor.ini.
To enable Enlighten reflections with the mobile forward shading renderer, set r.Mobile.Forward.EnableClusteredReflections=1 in DefaultEngine.ini.
Hair Groom is supported only with r.HairStrands.SkyLighting.IntegrationType=1 in DefaultEngine.ini.