
5. Sparse Procedural Volume Rendering 177
Figure 5.9. Propagating light through a metavoxel’s voxels.
Figure 5.10. Procedural colors.
5.5.3 Light Propagation
We propagate light through the metavoxel with a simple loop. We use the ras-
terizer and pixel shader to perform the work. We draw one pixel for each of the
metavoxel’s voxel columns—i.e., a two-triangle quad covering one pixel for each
of our voxel columns (e.g., for a 32 × 32 × 32 metavoxel, we draw a 32 × 32 pixel
square). Our pixel/fragment shader loops over each voxel in the corresponding
voxel column.