Making Dreams Come True: Global Illumination with Enlighten Graham Hazel Senior Product Manager Sam Bugden Technical Artist
About Me Grew up in Cambridge, UK, with Acorn computers in the house Programmer for 30+ years though never studied Computer Science Returned to Cambridge to join Geomerics in 2006 working on Enlighten ever since 2
About Geomerics Spin-out from University of Cambridge in 2005 focused on graphics technology Launched Enlighten in 2007 Acquired by ARM in 2013 2015 is a big year for us! 3
About ARM Spin-out from Acorn Computers in 1990 focused on semiconductor IP Now almost all mobile phone and tablets have ARM cores in them billions per year First ARM processor powered Acorn Archimedes (1987) I work in the building where first ARM chip was powered up! 4
Talk Outline What is Enlighten? Why use it? How does it work? Where can I get it? 5
This is gorgeous! I remember having dreams about this kind of dynamic indirect lighting back when I was building the Unreal Engine 1 renderer! Tim Sweeney 6
Realistic Rendering 7
What is Enlighten? Enlighten is global illumination middleware Unlike traditional baking Lights and materials can move and change at runtime Runtime means in editor as well as in game Faster workflow instant feedback means you can light a scene in seconds! 8
Realistic Rendering Workflow 9
Why Use Enlighten? Enlighten handles all lighting requirements for your game Consistent and high quality dynamic lighting solution Enables new game experiences through dynamic lighting and materials No need for workarounds have your cake and eat it! 10
Why Use Enlighten? When we got our hands on the Unity 5 beta, we just enabled Enlighten and removed all the fake GI point lights and everything looked better, ran faster and GI worked perfectly in real-time when disabling or animating lights. Ville Kivistö, CEO and Co-Founder of Mindfield Games 11
12
13
Subway Demo 14
How Does Enlighten Work? Enlighten precompute Enlighten runtime Runtime engine integration 15
How Does Enlighten Work? Enlighten precompute Enlighten Data static geometry 16
How Does Enlighten Work? Enlighten runtime lights materials Enlighten indirect light outputs Data 17
How Does Enlighten Work? Runtime engine integration Rendering Engine final image 18
How Does Enlighten Work? Additionally, can use Enlighten for fully baked lighting Enlighten Baking + Final Gather high resolution light maps direct + indirect 19
Enlighten Workflow How do I work with Enlighten? 1. Configure Enlighten output 2. Run Enlighten precompute 3. Set up materials and lights with instant results! 20
Configure Enlighten Output Outputs are similar to a traditional light map baker 1. Light Maps (textures) 2. Spherical Harmonic Probes (light probes) 3. Reflection Captures (cube maps) 21
Generate UV Coordinates for Light Maps Enlighten has automated tools to generate light map UV coordinates Specify output pixel size in real world units Enlighten run-time light maps are indirect light only can use larger pixels Balance quality with performance and memory 22
UV Chart Generation and Merging chart generation chart merging 23
24
Generate Locations for Spherical Harmonic Probes Probes are used for all dynamic meshes and some static meshes Enlighten has automated tools to generate probe locations in either Regular 3D grids Sparse octrees Specify probe spacing and volume where probes are required 25
26
Author Locations for Reflection Captures Placed in the scene by hand Usually require extra mark-up for rendering time Simple example: a box to allow box projection in shader More complicated schemes are possible See for instance blog/paper/talks by Sébastien Lagarde https://seblagarde.wordpress.com/2012/09/29/image-based-lighting-approaches-and-parallax-corrected-cubemap/ 27
28
Large Worlds Enlighten scales to large worlds Precompute can be distributed Enlighten used in many of the biggest (and biggest selling!) titles of this generation 29
Enlighten Forge This GDC we are launching Forge Forge is a new lighting editor and pipeline tool for Enlighten Designed by artists for artists You can also see Forge up close: At ARM booth 1624 on the GDC Expo Floor At Geomerics, an ARM Company Business Suite BS2622 At http://www.geomerics.com 30
Where can I get Enlighten? The runtime is highly optimised and runs on many platforms Android, Android x86 ios Windows Phone PlayStation 3, PlayStation 4, PlayStation Vita Xbox 360, Xbox One Wii U Linux Mac OS X Windows 31
Where can I get Enlighten? Enlighten is built in to Unity 5 Enlighten is available for Unreal Engine 3 and 4 Enlighten with Forge is available as a standalone SDK 32
Get Enlightened! Enlighten is a powerful tool for great lighting with fantastic workflow It is general and flexible enough to handle all your lighting requirements Forge makes Enlighten easy to integrate into any pipeline Enlighten is in many leading in-house engines with Unity 5 it will be very widely used Come see us at ARM booth 1624 on the GDC Expo Floor or get in touch! 33
Thank You Questions? www.geomerics.com graham.hazel@geomerics.com sales@geomerics.com @grahamhazel @Geomerics 34