Following the successful launch of Enlighten 3 at GDC in March, Geomerics has seen a huge uplift of interest from the developer community. Enlighten 3 heralded a number of great new features including advanced indirect relighting models, colour separated directional output, a new SH probe solver and richer material properties. All these features are apparent in the latest demos, Subway and Realistic Room. Forge in particular, the new lighting editor and pipeline tool, emerged as the highlight of the show with companies developing with internal engines excited by its potential for rapid visualization of lighting concepts and a simpler integration.
The Geomerics’ engineers have not been idle since GDC. Having gathered a wealth of feedback from customer meetings at the event itself and subsequent sales tours across Japan, China and Europe the development team started addressing the ensuing roadmap. This latest release, Enlighten 3.02, includes seven key features that extend Enlighten’s competitiveness across scalability, performance and stunning visual quality. Additional changes are detailed in the release notes, available for all current licensees and evaluators.
High level build system (HLBS)
In cases where only incremental changes are being made in the editor, Enlighten 3.02 delivers up to 16x faster performance than Enlighten 3. This considerable increase was achieved by tightening the set of dependencies for each task and allowing them to run earlier. Other areas of the HLBS were refreshed as well, including the scalability of the precompute.
Large terrains
Enlighten 3.02 offers a more streamlined approach to computing large terrain. By storing pixel validity information in a manner that can be easily accessed later on, the amount of expensive ray tracing performed is greatly reduced and performance improves significantly.
Area lights
Enlighten 3 enabled users to specify which Enlighten instances should be clustered together and which should be clustered separately. Enlighten 3.02 has increased flexibility by adding the ability to cluster on a per-material basis rather than on an instance basis. For emissive materials this will help to avoid the creation of visual artefacts as it prevents the precompute from clustering tris from both emissive and non-emissive materials.
Cubemap solver
Enlighten 3 offered a CPU cluster-based cubemap solution that was fast and easy to integrate; the CPU input lighting-based cubemap solution delivered higher quality. A GPU implementation of the cluster-based cubemap solution has been introduced into Enlighten 3.02 which balances both the performance and visual quality in an acceptable way while focusing on ease of integration.
Final gather
After pursuing ideas generated from Geomerics’ work around Unity 5, a final gather step has been implemented which delivers great improvements to baked irradiance output quality. This new method delivers soft shadows for the irradiance lighting, as well as much improved contact shadows.
Automatic bevels
Bevelled edges are now automatically detected by the Enlighten precompute and lit with a smooth, physically accurate blend of indirect lighting. There is also an option for manually marking up bevelled geometry for any cases where the precompute fails to detect and create separate charts for both unders and the bevel. This feature works for bevelled edges with either two or three unders (for example, the corner of a bevelled cube).
Forge instanced meshes
While the previous release of Forge supported instanced meshes in the viewport, there was still work to do in order to respect instances at the Enlighten level. The main advantage of using Enlighten instancing is that the packed UVs produced by Enlighten for several instances of the same geometry are related by a simple transform (scale and translation). This means that an integration only needs to remember one set of UVs for all instances of a geometry, and apply a per-instance UV transform in the shader in order to greatly reduce the memory footprint of Enlighten and the amount of vertex data that needs to be sent to the GPU for rendering.
This will become even more important as we add Forge runtime export, scheduled for Enlighten 3.03. The format of this data, specifically the description of the scene, needs to support instancing to be compatible with most game engines.
Enlighten 2 deprecation notice
Finally, Geomerics have confirmed that Enlighten 3.02 will be the last version of Enlighten to ship with Enlighten 2 libraries. Any customer who is concerned about the impact this will have on their current project is advised to contact their support representative for further information.