This is a breakdown of how we developed a visual and technical template for lighting during production of Fracture at Day 1 Studios. Working with the Art Director I created the color-correction and lighting techniques that we used throughout the game. This was the first game released using the Despair engine (created in-house at Day 1).
Tunnels Indoor Lighting Tests - Overview
Large interior spaces represent a kind of ‘worst-case-scenario’for lighting in the Despair engine. Exteriors are easier to light well because large areas can be covered by a single directional light (the sun, or the moon at night), and shadowed areas can largely be lit using an ambient light map. Interior spaces are by default entirely in shadow (at least form the sun) and are generally lit by a large number of lights. That, combined with a long draw-distance makes for performance problems as well.
Tunnels - Initial Look
Our initial focus then was to determine if we can effectively light an interior level using the directional light that usually used for a sun or moon light.
Initial lighting pass
The first pass at lighting was an attempt to light the Tunnels interior by using only placed lights (not using the directional sun light). Although good results are possible, the sheer number of overlapping lights needed makes this approach performance-prohibitive.
“Sun1” Test Level: Initial Direct Illumination
This is our first-pass at using the sunlight to light an indoor environment. This shows the level with just the sunlight and a few lights for large illuminated areas (like the lava pit). Depth fog was added to accentuate the long distance from one end of the tunnel to the other.
“Sun3” Test Level: Ambient Light and Fog
We added ambient lighting using an ‘ambient cube map’ to provide some illumination from below (a general ‘bounce light’ from the floor of the tunnel). Colored fog was added to provide color contrast between different areas.
“Sun5” Test Level: Secondary Lights and Color-Correction
The ambient cube map was updated to provide some directional difference in the ambient light color. Secondary lights were added to the scene at the base of the framework on the walls. A first pass at color-correction was added to the level as well. The color-correction pass uses a look-up table (LUT) to map every screen-color to another color. We do this using a 16x16x16 volume texture that represents the RGB color space.
“Sun5” showing the secondary lights
This is the standard RGB color-space represented by a 16x16x16 volume texture.
This is the ‘cave’ color-correction LUT.
This shows the scene before and after the color-correction pass is applied.
“Sun7” Test Level: Material Improvements
This test level is essentially the same as “Sun5”, but we have added a first-pass at material improvements to Briggs. His armor has an added reflection and both the specular polish and albedo have been adjusted. We have also made additional color- correction passes and added a first-pass 'party light.'
Several different color-correction LUTs were tried to see some different overall looks.
We started to experiment with the concept of a ‘party light’, i.e. a light that would follow the character around and provide a built-in source of interesting illumination to make the character ‘pop’ from the background. The party light is above and to the right of the character to give him some rim highlights on his head and armor.
“P2”-“P5” Test Levels: Party Lights and Varied LUTs
Continuing with the concept of the party light we investigated what it would look like with various color-correction applied. We also experimented with using two different LUTs and blending between them based on distance.
We also added a ‘skin shader’ to Brigg’s head. We created the look of sub-surface scattering lighting on the skin by overlaying an additive pass to Brigg’s head that adds a reddish-glow to his skin. The effect is subtle, but adds a lot of interesting (and realistic) color variation to Brigg’s skin.
‘Cave’ LUT, party light and skin shader
“P9” final pass: Putting it all together
Midway through the process of developing these lighting tests, the ability to adjust the specular contribution of the ambient cube map was added. This allowed us to increase the Ambient Intensity (the brightness of the ambient) without overloading the level with specular highlights everywhere.
Further improvements were made to Brigg’s armor material. Normal-direction falloff maps were used to add some additional lighting to Briggs in the material, and specular values were further refined.
We continued to experiment with the party light, changing it to a spot light from a point light so we could have a larger spread of light around the character and have the option to cast-shadows from the party light.
We settled on a color-correct pass that blends between the ‘cave’ LUT in the foreground, and the ‘warm’ LUT in the background.
We went from this: