Radiosity
Radiosity is a neat way of modeling the spread of light through diffuse-diffuse interraction. Here is a WIKI link to Radiosity.
RollOver to compare Direct Lighting and Lighting taking into account multiple bounces.
Note how on roll over, some of the green and red walls leak color onto the boxes, and the ceiling, although not directly gets quite abit of light.
The scene shown here is the Cornell Box, (mine is flipped because I didnt correctly convert from Left-hand to Right-hand (woops).
The first step in calculating radiosity is to compute the Form Factor matrix, the amount each 'patch' can see of every other patch. This is done most easily by actually rendering each patch as a different color and rendering the view from each patch (forwards and in each 90 degree direction)

Now we know how the light leaks from each patch to every other patch. now we can simply introduce light into the scene from the top, and iteratively bounce light around until it reaches equalibrium. It's neat to think of the light in your room as an eigenvector.
(It is pretty neat to watch it find that state.)
Now we have a really boxy result, so we can smooth between the vertices to get something less objectionable. (MOUSE OVER TO SEE SMOOTHING) (note how good the results are for vertex smoothing even for a relatively course tessellation.
Note that once this lighting is calculated, it's view independant, so i can move the camera around at 60 FPS:



