/
Enlighten SDK 3.12 Release Notes
This is the documentation for Enlighten.
Enlighten SDK 3.12 Release Notes
Patches
3.12.P1
- Addressed increase in peak memory usage for precompute in massive world which contains probe regions with dependencies limited to only directly adjacent systems.
- Fixed precompute error RTC_ERROR_OUT_OF_MEMORY reported by CreateOutputProbeSet task when running the HLBS precompute in a massive world with AgentUsage=Default.
- Fixed an intermittent crash that could occur during the precompute when a mesh has an extremely large cluster size.
- Fixed precompute warnings incorrectly reported as errors when using SNDBS2 distributor.
- Fixed missing or incorrectly placed probes when the probe regions within a single zone cover an extremely large volume of space.
- Improved error message from HLBS precompute when probeRegion element does not have a zone attribute.
- Fixed division by zero exception in per pixel probe lighting runtime update.
- We now distribute Enlighten core libraries built with Visual Studio 2019 16.8.5 and VC tools version 14.28 for Win32, Win64 and XboxOne.
- Significantly reduced the size on disk of the GeoRayTrace library by removing dead code.
- Enlighten libraries for Windows and Xbox are now compiled with /Zc:inline to reduce their size on disk and improve link times.
New features
UseĀ automatic probe placementĀ and per pixel probe lightingĀ at scale in a massive world:
- Efficiently light large open spaces with additional probe placement resolution options:Ā 1/32, 1/64, 1/128, 1/256.
- Significantly reduced precompute time forĀ automatic probe placementĀ in a scene with many probes across a large volume of space.
- Significantly reduced update time and memory use for per pixel probe lightingĀ in a scene with many probes across a large volume of space.
Improved compatibility with real time ray tracing:
- Per pixel probe lightingĀ now provides valid lighting for positions behind the camera.
Improvements
Faster Enlighten precompute:
- The precompute time is now significantly reduced in a scene whereĀ automatic probe placementĀ regions cover a large volume of space.
- The precompute now uses Intel Embree library version 3.11.0 to take advantage of recent performance improvements.
Improved samples to aid your implementation of Enlighten:
- The MinimalExampleĀ scene now demonstrates the Enlighten pipeline for a scene which contains more than one instance of a mesh with more than one material.
- TheĀ Sample PipelineĀ andĀ Sample RuntimeĀ applications now produce correct emissive lighting for meshes with more than one material colour.
Bug Fixes
- Fixed intermittent precompute failure when Windows regional format set to a language other than English, Japanese or Chinese.
- Fixed a long delay in the precompute "Updating dependencies..." in a scene which contains 10K+ systems or probe sets.
- Fixed a crash when per pixel probe lighting is in use and probes are placed very far from the origin.
- Fixed minor seams in per pixel probe lighting that may appear when the viewpoint moves around the level while indirect lighting is static.
- Fixed minor per seams in per pixel probe lighting at the boundary between two zones.
Deprecated
- TheĀ Probe LODĀ andĀ IProbeSetManagerĀ functionality is deprecated. To minimise probe solve and interpolation time in a large world we recommend to use per pixel probe lighting
- The removalMode parameter of IUpdateManager::EnqueueRemoveProbeSet is deprecated.
- IUpdateManager::UpdatePppi and IViewVolumeIntersector are deprecated. Please refer to the upgrade notes below.
- IUpdateManager::GetPppiRequiredOutputTextures and IUpdateManager::SetPppiOutputWorkspace are deprecated.Ā Please refer to the upgrade notes below.
- IUpdateManager::Clear is deprecated. Instead, please call IUpdateManager::Release and afterwards create a new instance of the high level runtime.
Removed
General:
- The smooth bevels functionality was removed.Ā To light large complex meshes, we recommend to use per pixel probe lighting.
- The Enlighten3PrecomputeLoader / Enlighten3PrecomputeLoaderBuilder libraries were removed.Ā To extract and storeĀ persistent radiosity data, we recommend to follow theĀ implementation guide.
- The low level C-style API for Per Pixel Probe Interpolation (PPPI) was removed. Please refer to the implementation guide forĀ per pixel probe lighting.
Build configurations:
- The distribution no longer includes Enlighten core libraries built with Visual Studio 2013.
Upgrade Notes
The minimum system spec supported by the Enlighten precomputeĀ is now Windows 10 (64-bit) onĀ Intel Core (at leastĀ i3-2100) orĀ AMD FX/Ryzen (at leastĀ FX-4100). The precompute reports an error if your CPU does not support Advanced Vector Extensions (AVX).
High level build system:
- The location on disk of runtime data created for automatically generated probe sets has changed. Please refer to the implementation guide.
High level runtime:
- IUpdateManager::EnqueueRemoveProbeSetĀ now takes the pointer to the BaseProbeSet object returned by IUpdateManager::AllocateProbeSet. Please update your code.
Per pixel probe lighting:
- The implementation ofĀ SamplePppiVirtualTextureĀ has changed slightly. Please update your shader to match.
- The impact of invalid (culled) probes is now more obvious than in previous versions. Please double check that your shader multiplies the lighting result by PppiSample::InverseValidity.
- Instead ofĀ IUpdateManager::UpdatePppi, please provide theĀ viewOriginĀ and lodDistance arguments toĀ IUpdateManager::Update. The viewVolume argument is no longer required.
- Instead ofĀ IUpdateManager::GetPppiRequiredOutputTextures, please callĀ Enlighten::GetPppiRequiredOutputTextures with the same configuration you provide to MultitheadCpuUpdateManager::Create.
- Instead of IUpdateManager::SetPppiOutputWorkspace, please use UpdateManagerProperties::m_PppiOutputWorkspace and UpdateManagerProperties::m_PppiTextureUpdateHandler.
, multiple selections available,