Radiosity (x)

Most rendering models, including ray-tracing, assume a simplified spatial model, highly optimised for the light that enters our 'eye' in order to draw the image. You can add reflection and shadows to this model to achieve a more realistic result. Still, there's an important aspect missing! When a surface has a reflective light component, it not only shows up in our image, it also shines light at surfaces in its neighbourhood. And vice-versa. In fact, light bounces around in an environment until all light energy is absorbed (or has escaped!).

Re-irradiated light carries information about the object which has reirradiated it, notably colour. Hence not only the shadows are 'less black' because of re-irradiated light, but also they tend to show the colour of the nearest, brightly illuminated, object. A phenomenon often referred to as 'colour leaking' (Figure 1).

Figure 1. Radiosity example

In closed environments, light energy is generated by 'emitters' and is accounted for by reflection or absorption of the surfaces in the environment. The rate at which energy leaves a surface is called the 'radiosity' of a surface. Unlike conventional rendering methods, radiosity methods first calculate all light interactions in an environment in a view-independent way. Then, different views can be rendered in real-time.

In Blender, Radiosity is more of a modelling tool than a rendering tool. It is the integration of an external tool and still has all the properties (and limits) of external tools.

You can run a radiosity solution of your scene. The output of such Radiosity solution is a new Mesh Object with vertex colors. These can be retouched with the VertexPaint option or rendered using the Material properties "VertexCol" (light color) or "VColPaint" (material color). Even new Textures can be applied, and extra lamps and shadows added.

Currently the Radiosity system doesn't account for animated Radiosity solutions. It is meant basically for static environments, real time (architectural) walkthroughs or just for fun to experiment with a simulation driven lighting system.

The Blender Radiosity method

First, some theory! You can skip to next section if you like, and get back here if questions arise.

During the late eighties and early nineties radiosity was a hot topic in 3D computer graphics. Many different methods were developed, the most successful of these solutions were based on the "progressive refinement" method with an "adaptive subdivision" scheme. And this is what Blender uses.

To be able to get the most out of the Blender Radiosity method, it is important to understand the following principles: