Graphics Hardware (2003) M. Doggett, W. Heidrich, W. Mark, A. Schilling (Editors) GPU Algorithms for Radiosity and Subsurface Scattering Nathan A. Carr, Jesse D. Hall and John C. Hart Dept. of Computer Science, University of Illinois, Urbana-Champaign Abstract We capitalize on recent advances in modern programmable graphics hardware, originally designed to support advanced local illumination models for shading, to instead perform two different kinds of global illumination models for light transport. We first use the new floating-point texture map formats to find matrix radiosity solutions for light transport in a diffuse environment, and use this example to in- vestigate the differences between GPU and CPU performance on matrix operations. We then examine multiple-scattering subsurface light transport, which can be modeled to resemble a single radiosity gath- ering step. We use a multiresolution meshed atlas to organize a hierarchy of precomputed subsurface links, and devise a three-pass GPU algorithm to render in real time the subsurface-scattered illumina- tion of an object, with dynamic lighting and viewing. Categories and Subject Descriptors (according to ACM CCS): I.3.3 [Computer Graphics]: Subsurface Scattering 1. Introduction The programmable shading units of graphics proces- sors designed for z-buffered textured triangle rasteriza- tion have transformed the GPU into general purpose streaming processors, capable of performing a wider variety of graphics, scientific and general purpose pro- cessing. A key challenge in the generalization of the GPU to non-rasterization applications is the mapping of well- known algorithms to the streaming execution model and limited resources of the GPU. Some popular graphics and scientific algorithms and data structures, such as ray tracing 19, 3 as well as preconditioned con- jugate gradient and multigrid solvers 2 , have neverthe- less been implemented on, or at least accelerated by, the GPU. This paper expands the horizon of photore- alistic rendering algorithms that the GPU can accel- erate to include matrix radiosity and subsurface scat- tering, and describes how the techniques could even- tually lead to a GPU implementation of hierarchical radiosity. Matrix radiosity is a classic technique for simulat- ing light transport in diffuse scenes 7 . It is capable of synthesizing and depicting the lighting, soft shad- owing and color bleeding found in scenes of diffuse materials. Our mapping of radiosity to the GPU uses the floating-point texture format to hold the radios- ity matrix, but also pays attention to cache coherence and the order of computation to efficiently perform a Jacobi iteration which gathers radiosities as it iter- ates toward a solution. Given precomputed form fac- tors, we are thus able to both compute and display a radiosity solution entirely on the GPU. While the geometry is fixed, the emittance is not, and our GPU algorithm can support dynamic relighting as well as dynamic alteration of patch reflectances. Lensch et al. 15 shows how the BSSRDF formulation of subsurface (multiple diffuse) scattering 12 resembles a single radiosity gathering step. Light transport in the object interior is computed by gathering, for each patch, the diffused image of the Fresnel transmitted irradiances from the other patches. The BSSRDF can be integrated to form a throughput factor 15 that re- c The Eurographics Association 2003. 51