Today Q-Games Engine Technology Director James McLaren held a presentation at CEDEC in Japan, showcasing the innovative tech behind the upcoming PS4 exclusive The Tomorrow Children.
McLaren joined the project in 2012, and there was already a good deal of concept art created for the game back then, made with a GPU ray tracer named Octane Render. Below you can see two examples.
As usual you should click on every screenshot to see it at full resolution.
At that time the team had already realized that a normal deferred rendering plush shadows would not cut it, especially with a dynamic world.
Taking inspiration from a Siggraph paper by Cyril Crassin an Epic’s Unreal Engine Elemental demo, Q-Games developed a technology named Cascaded Voxel Cone Tracing.
After initial experiments on the early PS4 SDK, Mclaren added cascading to the original Voxel Cone Tracing to combine direct lighting with two to three bounces of indirect lighting (basically ray of light that can be reflected by materials between twice and thrice). Below you can see how voxel cascading works with a scene split into big voxels that cascades in concentric patterns.
Since voxelization can be slow, the method is used only with static objects, while characters and dynamic objects are handled separately.
Having multiple bounces has a dramatic effects on the scene, as you can see below.
Direct lighting only
Unfortunately cone tracing was still too slow even with cascading created with a 3D texture, requiring way too many texture lookups and tens of milliseconds of rendering time. More optimization was done by pre-combining the anistropic voxels reducing the texture lookup cost to one third and by taking advantage of parallax.
Extra detail computed in screen space needs to be added, though, as the smallest voxel size is 0.4 meters. Screen space occlusion was used. Below you can see the same scene with screen space occlusion on and off.
Screen Space Occlusion Off
Screen Space Occlusion On
As mentioned above, characters are not voxelized because they are too small, and because it would cause too much extra overhead. Character collision volumes are used instead in order to generate occlusion, in a similar way as it was done in The Last of Us.
The same method could not be used with vehicles, that instead generate occlusion thanks to a 3D texture.
Occlusion is also applied to transparent objects like particles, in order yo give them more presence and realism.
Subsurface scattering was also applied to many materials using a method called Static subsurface shading, which adds a lovely translucency effect.
Subsurface on with additional frosting effect
Subsurface off at night
Subsurface on at night
The engine also supports emissive materials, which fit very naturally into the cone tracing.
Another great looking effect are ray marched reflections. Here you can see the town hall burned down:
Ray marched reflections off
Ray marched reflections on
The effect can also be extended to have objects that appear to exhibit glossy refraction.
For future games, McLaren states that he’d like using higher frequency shadows (possibly voxel soft shadows), a higher resolution voxel grid, light bouncing from characters and not just static objects, and improve the material model, as it’s currently not very physically correct.
Below you can see two more screenshots. One thing is for sure. This game looks absolutely fantastic and really unique.