Voxel Cone Tracing global illumination

engines such as unreal 4 and unity (in experimental state at least) are implementing voxel cone tracing based on spherical harmonics and sparse voxel tree generation using GLSL:
http://perso.telecom-paristech.fr/~eisemann/publications/Crassin2011VoxelGlobalPG/VoxelGI_EG-pg2011-sub.pdf
the author claims that this approach is only enabled by GLSL 5, and I believe version supported by WebGL at the moment is 2, so likely some of the things would have to be done differently (using FBOs probably). There is a project here on github which claims to implement this technique in C++:
https://github.com/domme/VoxelConeTracing
there are also quotations of GLSL code in scientific papers (either the GI ones or GigaVoxel work, i can’t recall).
There is an interesting documentation of implementation of this approach for OpenGL:
http://www.altdevblogaday.com/2013/01/31/implementing-voxel-cone-tracing/
I’m interested to know how this would fit within threejs and if there is much of general interest in this topic.
The reason this approach is very appealing as a GI solution is due to the fact that it is more or less fully automatic, except for controlling granularity (smallest voxel size or total number of voxels) – there is not magic involved, designer doesn’t have to place probes manually and control their size by hand.

Author: Fantashit

1 thought on “Voxel Cone Tracing global illumination

  1. I recently implemented this technique in my toy web engine https://novalain.github.io/gi-voxels/. The results are pretty cool but without geometry shaders and imagestore the voxelization step takes way too long (with a decent voxel resolution) – i.e won’t work in real-time yet for dynamic scenes.

Comments are closed.