Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel1
typeflat
separatorpipe

...

New features

Next generation per pixel probe lighting

This release massively reduces the cost of per pixel probe lighting render path, along with other major improvements. Per pixel is now the recommended probe lighting method, and replaces per mesh probe lighting.

Per pixel probe lighting texture updates that previously ran on the CPU can now run in a compute shader on the GPU, reducing the wall clock time by a couple of orders of magnitude. This enables you to increase the maximum probe placement resolution, for more accurate indirect lighting.

Other rendering improvements include:

  • Zero cost blending between levels of lighting detail, to prevent lighting pops as the camera moves further away from a surface lit by probes.
  • Compute the maximum required atlas size for your world in advance with ComputePppiAtlasMaxima, so you can determine in advance the required size of rendering resources.

Accurate and performant radiosity without lightmaps

This release enables extensive use of the Probe Radiosity instance type across massive worlds, to the same degree as regular Radiosity. Please refer to the upgrade notes below for details of the minor API change required to continue use of Probe Radiosity.

The new radiosity solution for probe lit meshes is accurate, stable and efficient when used at scale. For large meshes with complex organic shapes that are difficult to unwrap, choose the Probe Radiosity lighting mode and forget about lightmap UVs.

For large meshes formed of large flat faces or box shapes, Enlighten may still produce the best result with a lightmap.

Image Modified

Faster precompute with many cores

This release includes optimization of the Enlighten precompute for workstations with many CPU cores. In worlds which use probe lighting extensively, the precompute now makes full use of available CPU resources when many cores are available. On a powerful workstation with 16/32/64 cores, local precomputes finish in significantly less time.

Enlighten Pipeline: automatic probe placement

The Enlighten Pipeline library can now automatically add the required probe regions to the Enlighten scene for an instance that will be lit by probes. Simply specify the desired probe resolution when you call EnlightenPipeline::AddInstance.

The Enlighten Pipeline library can now export probe regions efficiently for very large volumes or very large meshes. The new EnlightenPipeline::AddProbeRegion function takes a closed mesh volume as input, replacing the IPrecompVolumeQuery interface.

Enlighten Pipeline: useful error messages

The Enlighten Pipeline library now reports useful error messages when the API is used incorrectly. This type of error is considered fatal and should never occur when the API is used correctly. You can use the library without exception handling enabled, but you can also choose to enable exceptions if you wish to handle the error at a higher level and attempt to continue.

Improved SNDBS precompute

When running the precompute distributed by SNDBS, tasks are now distributed more effectively to reduce the total time taken.

Sample implementation

The sample implementation has been expanded to show how to use core Enlighten functionality required for a typical implementation.

...

Precompute pipeline:

Per pixel probe lighting:

Patches

4.00.P1

  • Fixed major seams in per pixel probe lighting within areas with less than 1/16 resolution.
  • Fixed minor seams and light leaks in per pixel probe lighting that could occur within interior spaces.