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