This is the documentation for Enlighten.

Common problems and solutions

Long precompute times

For a typical level, the Enlighten precompute should only take a few minutes. Even for very large levels, a distributed precompute should never take more than an hour. If your precompute times are much longer:

  • Make sure the level is configured well for Enlighten. To learn how to do this, see the beginner tutorials.
  • If your level contains a single large Landscape actor, split the actor across multiple sub-levels and reduce the lighting resolution for the distant parts of the Landscape.
  • If your level contains large unlit translucent meshes such as light shafts and water surfaces, exclude these meshes from the radiosity computation.
  • If you've changed the System Voxel Size or Dependency Included System Distance in world properties, try reverting to the default value.

Precompute memory limit

When your computer doesn't have enough physical memory to complete a precompute task, the precompute stops and reports a "Reached the maximum heap size limit" error.

This can happen when your level is unusually large or complex, or the computer has unusually little physical memory installed. It can happen intermittently when running the distributed precompute if one of the agents involved has unusually little physical memory.

To fix this, make sure the computer has sufficient physical memory.

You can change the maximum memory limit with Edit > Editor Preferences > Plugins > Enlighten > Precompute Memory Limit.

If you set the memory limit to zero, or greater than 100, when the computer doesn't have enough physical memory to complete a precompute task, it might stop responding.

Light leaks through walls

Light leaks can occur for a mesh that uses a lightmap and spans a wall separating dark and light areas of your level, such as a floor that spans the inside and outside of a building and thus sees light from the outside. To fix the leak, split the floor mesh where it meets the wall.

By default, the direct light from a Spot Light actor may leak through walls, even when Cast Dynamic Shadows is enabled. To prevent this, you can enable Cast Dynamic Enlighten Shadows, or make sure the cone doesn't cross the wall.

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.

When two probes are placed either side of a wall that separates areas with very different lighting, probe lighting may appear to leak through the wall. When both sides of the wall are in an area that does require Enlighten indirect lighting, in the area where the issue is visible, increase the lighting resolution so that more probes are placed. When one side of the wall is in an area outside the world that does not require Enlighten indirect lighting, place invisible geometry with invalid front and back faces to remove the probes placed outside the world. Use 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 on the left show a completely enclosed cave built from intersecting closed rock meshes, which suffers a bright sky light leak caused by Enlighten data generated for surfaces outside the world. The images on the right show that the leak is prevented by Enlighten Only Mesh actors placed to be visible to the outward facing side of the cave wall.

Dark or black spots

Black or unusual splotchy lighting on actors with Contribute Lightmap lighting mode may be a result of self-overlapping UVs in meshes. When authoring static meshes for your level, make sure the UV channel specified in the Light Map Coordinate Index contains no self-overlapping UVs.

In areas where the radiosity geometry has visible invalid surfaces, Enlighten indirect lighting may be unexpectedly dark.

To make the invalid surfaces easier to see (highlighted in orange), use View Mode > Enlighten > Radiosity Back-faces.

To find locations that see invalid surfaces (highlighted in magenta), use View Mode > Enlighten > Probe Positions after you run the Enlighten parameterize.

To prevent visible invalid surfaces:

  • Avoid using the lighting modes Contribute Lightmap and Contribute Probe with "open" meshes that use materials with Enlighten Backface Type set to Invalid. Make sure these meshes are closed, or use the DetailProbe or Disabled lighting modes.
  • Avoid using the lighting modes Contribute Lightmap and Contribute Probe with closed meshes that have infinitely thin parts. Make sure all parts of the mesh have non-zero thickness, or use the DetailProbe or Disabled lighting modes.

Seams in indirect lighting

Enlighten can prevent seams in the indirect lighting only when meshes are closely aligned along the edge where they meet. To minimize seams, align the lightmap pixel grids for both meshes.

The images below show a minor seam at the boundary between two meshes that have different lighting resolution. The seam occurs because the lightmap pixels are not aligned.

Decals not lit by Enlighten

This is caused by a known Unreal Engine limitation (UDN) which prevents deferred decals being lit by lighting applied in the base pass, including Lightmass and Enlighten.

SpeedTree assets

For correct indirect lighting with SpeedTree assets, the Enlighten Target LOD and Enlighten Lighting Mode must be set correctly. Newly imported SpeedTree assets are now automatically configured. If you run into problems with an existing SpeedTree asset, please try re-importing the asset.