GPU Precomputed Radiance Transfer
Harrison McKenzie Chapter
Precomputed Radiance Transfer (PRT) is a real-time graphics technique for encapsulating how a local element of a scene is affected by global geometry. By precomputing relationships between scene elements, PRT can achieve effects conventionally achieved through global illumination methods, such as soft shadowing.
Currently, I have taken the standard PRT rendering technique and moved the shading of the model out of the fixed function pipeline with a set of shaders. My precomputation system builds a set of textures, each representing a particular 'band' of the lighting information. These textures are then combined with a lighting representation computed at runtime in the fragment program. The result is a texture mapped, colored representation of the mesh, with dynamic soft shadows based on the mesh's position relative to the light.
Global illumination effects, like shadows and reflections, contribute a lot to the realism of a scene. Unfortunately, they almost always include lengthy processing time to generate their effects.
Unlike conventional global illumination techniques, my solution renders easily in real time (though precomputation is often lengthy). This makes it a viable technique for utilization in game engines or real time visualization.Also, unlike more common real time shadowing techniques, such as shadow volumes, using PRT on the GPU does not involve multiple rendering passes of the geometry to generate a single frame; The geometry is only processed once (though many textures are applied to it).
If you'd like to know more about Precomputed Radiance Transfer, a great set of references are Peter-Pike Sloan's publications on PRT rendering, an assortment of which can be found at http://www.ppsloan.org/publications/
If you'd like to see the dynamism of the light in the scene of Tyra which was shown above, you can watch the video.