Graphics Deep Dive: Cascaded Voxel Cone Tracing in the Tomorrow Children
gamasutra.com
gamasutra.com
I'm looking forward to the slides. This game was a very interesting project and well worth playing if you haven't yet. I love how sometimes going off into the woods yields fruits. It goes against every bit of advice you come across as a programmer these days. Yet sometimes it's just what a project needs.
The data structure in the article is different because it only stores high resolution data for the area near the player. An Octree handles arbitrary distributions of high resolution data, so it is more powerful than needed for this application. I like it when insights into the problem lead to simpler algorithms.
https://docs.unrealengine.com/latest/images/Engine/Rendering...
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Li...
There is nothing bad about Octrees on the GPU, but most people use BVH trees now.
See this Twitter thread for discussion exactly about this (with Q-Games developers and original voxel cone tracing author):
https://twitter.com/Icare3D/status/803165198530052096
Reason #1: pointer chasing on cache impaired systems too costly
Reason #2: they simply run out of time for development (instead of giving up on SVO)
What other techniques are they using especially well to get the look and feel they've achieved? The lighting is impressive, but I notice dynamic depth of field/bokeh is being used well here and I think this is to credit for a lot of the look.
The materials themselves look especially good, can anyone comment on why? In particular, the softly-polygonal look of the skin and grainy metal on the side of the bus. Is this just really what a great texture looks like or is there something less obvious? For instance, is there any reason to think Substance Designer + UE4 couldn't export + render materials like that?
Also, any idea what's up with the weird outline artifact around most/all objects in the video?
I'm really liking games that pair an abstract art style with high realism graphics features. Sort of inching towards a new video game clay-mation look.
I think they extensively used Bokeh DoF to make it look at the right scale as it's a toy world if I'm not mstaken, it's know as the "Tilt Shift" effect.
The outline artefact is probably Ambient Occlusion, I didn't see it that much though but that's maybe because I'm used to it. THere are a lot of ways to compute it, including using cone tracing, but the least expensive is a "screen space" technique first introduced by Crytek. It can introduce a dark halo around objects but is constant time usually and very simple to integrate.
[1] https://blogs.unity3d.com/2014/10/29/physically-based-shadin...
Maybe I'm missing something, but I don't see anything that prevents it.
As far as other engines doing GI, Unity uses enlighten wich cheats (brilliantly) by precomputing the scene (not baking) which lets it dynamically do GI in a scene.
For voxel GI there is:
http://www.sonicether.com/segi/
http://docs.cryengine.com/display/SDKDOC2/Voxel-Based+Global...
In the end, the global illumination solutions they've had :
* VCT [1], seemed real-time
* Indirect Lighting Cache (similar to Tatarchuk's irradiance volumes), precomputed with their Lightmass tech same as UE3 I think
* LPV (Light Propagation Volumes, contributed by Lionhead Studios) [2]
* Distance Field GI [3]
Global illumination in real-time is a hard problem, there's a lot of interesting research on it at the moment.
[1] https://de45xmedrsdbp.cloudfront.net/Resources/files/The_Tec...
[2] https://docs.unrealengine.com/latest/INT/Engine/Rendering/Li...
[3] http://timhobsonue4.snappages.com/distance-field-global-illu...