Efficient Multi-Fragment Effects On GPUs
Louis Bavoil, M.S. Thesis in Computer Science, University of Utah
Abstract
Current GPUs (Graphics Processing Units) are very efficient at rendering opaque surfaces
with local lighting based on the positions of point lights and the nearest fragment to the eye for
every pixel. However, global illumination features such as shadows and transparent surfaces
require more fragments per pixel. Multi-fragment effects on the GPU usually require multiple
geometry passes which are expensive for large scenes.
In the first section of this thesis, we look at how to capture rasterized fragments efficiently
on current GPUs. First, we analyze how to feed the GPU geometry by studying the impact
of batch size and vertex attributes on performance. Then, we describe a data structure that
we refer to as the k-buffer, which can be implemented on current GPUs with programmable
read-modify-write operations on multiple fragments per pixel. The k-buffer can be used to
perform depth peeling in a single geometry pass, but its current GPU implementation suffers
from pipeline hazards. We propose two ways of removing these hazards in future GPUs.
In the second section, we present effects using multiple fragments per pixel. First, we
present a robust soft shadow mapping algorithm based on multiple layers of fragments per
shadow map pixel. Similarly to related work, our algorithm renders soft shadows from rectangular
lights, based on the idea of unprojecting the shadow map pixels into the world, and
using them as a simplified geometry of the occluders. The algorithm runs interactively on the
GPU and addresses the issues of self-shadowing and light bleeding robustly, using multiple
depths per shadow map pixel. Finally, we look at other effects that can take advantage of the
k-buffer: transparency, translucency, constructive solid geometry and depth of field.
Images
Left: With a traditional shadow map (1 depth layer).
Right: With a multi-layer shadow map (2 depth layers).
Interactive Soft Shadow Mapping using Backprojection and a
Multi-Layer Shadow Map.
Images rendered using Melissa.
Disseration
Pre-print - 61 pages - Edited April 20 2007
(pdf)
Defense Slides
Slides - December 2006 (pdf) (videos)
Louis Bavoil