One of the challenges of mobile development is the breadth of devices available. The smartphone market does not just consist of the latest premium smartphone, such as the Samsung Galaxy S7; most mobile gamers own a phone that costs less than $350 to purchase. These devices come with previous generation processor technology, previous generation API support or fewer cores and are less able to run high end gaming content.
Enlighten has long been able to compute dynamic global illumination on mobile devices. The challenge is now to enable it on all smartphones and tablets, so that game developers can use it in the knowledge that a broad spectrum of their target market will experience the benefit of this technology.
The following changes have been made to the Unreal Engine integration of Enlighten to ensure that mobile developers can achieve the desired performance balance on mobile.
Surface relighting model
While on PC and console the shader cost of the latest Enlighten surface relighting model is acceptable, for mobile a more efficient approach is preferred. We have introduced to the Unreal Engine integration a more efficient model for mobile that still relies on directional irradiance but simply requires less computing time to render.
Enlighten cubemaps, that are used to capture indirect lighting changes in real-time reflections, are now able to capture the emissive environment in real-time in the mobile path.
Custom shaders for Forge
Users are now able to modify the physically based shading model used in Forge so that they can more accurately mimic the shading in their game engine. This modification is easy and requires the editing of one simple file. The user is able to select which materials are lit by which shading model.
A series of functionality improvements have been added to Forge:
- Light transformations can be specified using position, rotation and scale.
- The materials and textures lists can be sorted more easily
- The tree view now has “expand all” and “collapse all” buttons
- It now supports .dds textures
The precompute loader is a new API that simplifies loading Enlighten precompute data for systems, geometries, probe sets and cubemaps at runtime. It is shipped as source code and eases the process of integrating Enlighten into internal engines.
Performance statistics for HLRT
Users are now able to accurately report on the length of time, memory and bandwidth spent at each Enlighten stage and how many systems, probe sets and cubemaps are solved per update with no significant performance impact when recording or reporting these statistics. These statistics will support Enlighten users in making better optimisation decisions for their game.
Continual code improvement and bug fixes
For upcoming releases as well as introducing priority new features to the product, the Enlighten engineering team has been given additional time to focus on general product improvements and innovations. This will result in a well-rounded product that not only stays at the cutting edge of game and graphics trends but also delivers the best possible user experience to our customers, from initial evaluation to title release.
For full details on what is new in Enlighten 3.05 please read the release notes. If you have any questions on this or any requests for new features, please contact your support representative.