GeForce GTX 980 Whitepaper
MAXWELL: ENABLING THE NEXT
FRONTIER IN PC GRAPHICS
15
Because prebaked lighting is not dynamic, it’s often difficult or impossible to update the indirect light
sources when in-game changes occur; say for instance an additional light source is added or something
in the scene moves or is destroyed. Prebaked indirect lighting models the static objects of the scene, but
doesn’t properly apply to the animated characters or moving objects.
In 2011, NVIDIA engineers developed and demonstrated an innovative new approach to computing a
fast, approximate form of global illumination dynamically in real time on the GPU. This new GI
technology uses a voxel grid to store scene and lighting information, and a novel voxel cone tracing
process to gather indirect lighting from the voxel grid. NVIDIA’s Cyril Crassin describes the technique
in
his paper on the topic
and a video from GTC 2012 is
available here
. Epic’s
‘
Elemental’
Unreal Engine 4
tech demo
from 2012 used a similar technique.
Figure 6: Epic's UE4 'Elemental' tech demo used voxel cone tracing for its jaw-dropping GI
Since that time, NVIDIA has been working on the next generation of this technology—
VXGI
—that
combines new software algorithms and special hardware acceleration in the Maxwell architecture.
To understand how voxel global illumination works, it is helpful to first understand voxels. The term
“voxel” is related to “pixel.” Whereas a pixel represents a 2D point in space, a voxel represents a small
cube (a volume) of 3D space. To perform global illumination, we need to understand the light emitting
from all of the objects in the scene, not just the direct lights. To accomplish this, we dice the entire 3D
space of the scene in all three dimensions, into small cubes called voxels. “Voxelization” is the process of
determining the content of the scene at every voxel, analogous to “rasterization” which is the process of
determining the value of a scene at a given 2D coordinate.