Tech Report CS-04-02

Using Graphics Hardware to Accelerate Progressive Refinement Radiosity

Benjamin R. Landon

February 2004


In this report I present a technique for implementing the shooting phase of progressive refinement radiosity on modern programmable graphics hardware. I draw on results from the hemicube and from progressive refinement, both common techniques in radiosity, to derive the amount of radiosity that is shot into the scene per hemicube cell for each iteration of the progressive refinement algorithm. This approach to shooting radiosity has two advantages: the amount of radiosity shot per hemicube cell can be computed in one rendering pass per hemicube face, and it is not necessary to explicitly store form factors.

Using the graphics processor to update the radiosity and delta radiosity attributes on each scene patch is difficult. This is due to limitations in the feature set available with floating point render targets on the current generation of commodity graphics hardware. The system presented in this report computes the value of the incremental update of radiosity and delta radiosity on the graphics processor, but actually applies the incremental update value using the CPU. Like progressive refinement, this process is repeated until desired approximation to the radiosity solution is achieved.

Source code for a DirectX implementation of this technique is available.

(complete text in pdf or gzipped postscript)