What is radiosity and how it works

Formally, radiosity is a measure of energy leaving a surface, per unit area, per unit time. The underlying strategy of radiosity is to divide all surfaces in a scene into small polygons, called patches and to compute the radiosity value for each. The radiosity value of all patches is determined by first distributing energy from all primary light sources to all patches. Each patch absorbs some of the energy it receives and reflects the rest. The amount of reflection depends on the diffuse reflection parameter associated with the patch. After the distribution of light from the primary sources, the patch which reflects the most amount of energy is now considered a light source itself, called a secondary source. It distributes its reflected energy to all other patches in the scene. Next, the patch which reflects the second highest amount of energy is processed, and so on. Note that the first patch may reappear at some point in the list of light emitting patches, because it has received enough energy from other patches to become the brightest patch in the scene. Obviously, this process will continue forever, since surfaces typically emit a portion of the energy they receive. It is therefore necessary to specify some criteria, which will stop the radiosity process. These criteria may be a given amount of time that the process is allowed to run, a given number of cycles, or the amount of energy absorbed by a patch relative to the overall energy emitted by all primary sources.


By the time the radiosity process stops, a mesh of small patches with varying intensities has been generated. In most cases, the radiosity mesh will be used by a RenderZone rendering with the final gather global illumination method. Final gather will use the precomputed light intensities of the mesh as additional input to its own lighting calculations and produces a high quality realistic rendering. This mesh can also be rendered without final gather, substituting the per pixel intensity calculation of the simple illumination model with the precalculated intensity of the patch. The rendering is also able to smooth the intensity changes between neighboring patches, giving the impression of a gradual change of illumination and soft shadow boundaries. Such a rendering will show a varying amount of light in areas which are not directly illuminated by the primary light sources. In contrast, a rendering generated with the simple illumination model shows no such variation. A scene rendered with a simple illumination model and from a radiosity solution, using RenderZone and Final Gather, is shown in Figure 6.0.1.


a martin_no_radios_small.pict
b 4
Figure 6.0.1: A scene rendered with (a) a simple illumination model and
(b) from a radiosity solution using RenderZone with Final Gather.