This is the documentation for Enlighten.

Enlighten Mobile

Enlighten 3 has a consistent feature set across all supported platforms. Enlighten "Mobile" refers to the major platforms used in mobile devices: Android and iOS. The same OS-independent API and High level runtime are used across mobile platforms, PC and consoles.

GeoMobileDemo (included as source) provides an example of how the Enlighten Runtime can be integrated into an OpenGL ES 2.0 application for iOS and Android using the low-level API.

The Enlighten libraries are built for ARM/NEON and Intel/SSE where applicable, optimised to take full advantage of respective processor extensions. Therefore for the ARM version of Enlighten, ARM architecture ARMv7-A or later with NEON is required.

Performance considerations

Current mobile platforms are more limited by their GPU than CPU, and there is a wide capability range across implementations, often associated with different OpenGL ES 2.0 extensions. The rendering of direct lights is left to the application, but we can offer advice and suggest options. Enlighten helps with performance scaling by allowing you to configure how dynamic your lights are, from fully baked to fully dynamic. Area lights, emissive surfaces and the environment are "free" and helpful to further reduce the lighting cost and take weight off the GPU.

To give an idea of the Enlighten Runtime performance on mobile, GeoMobileDemo running on an Apple A5 iOS device performs a full runtime update in approximately 8 milliseconds. This includes calculating input lighting for the directional and environment lights, solving directional irradiance for the Arches system and computing probe set SH coefficients for lighting the character model. Additional systems could of course be solved in parallel, taking advantage of the increasing number of CPU cores in modern mobile devices.