4. The Radiosity Calculations - The workhorse !!
The radiosity algorithm implemented here is a hemicube based progressive radiosity algorithm. The algorithm iterates and at each iteration step calculates the energy received by all patches due to the energy shot by a patch.
- Progressive Radiosity Algorithm -
The algorithm proceeds as follows -
- Calculate the energy of each patch from the object emittance values given. Identify the highest emitting patch in the scene. The iteration process begins with this patch. Total energy in the scene is the sum off all the emittance of all patches.
- While total energy shot in an iteration > convergence limit * total energy in the scene do the following -
- Place the hemicube on the next highest emitter.
- Orient the hemicube in a random manner to prevent aliasing
- Calculate the form factors for the projected patches.
- Update the radiosity of all the patches.
- Identify the next highest emitter patch to restart the iteration
Given below are some examples of the progressive rendering engine :
The Cornell Box at various stages of the radiosity calculations.
|
A Cellar getting lit up at various stages of the radiosity calculations.
|
- The OpenGL connection -
The iteration is controlled by the glut Idle function which iterates once through the algorithm and renders the scene in the preview window. The vertex colors for each vertex in the scene is calculated using the energy of the incident triangles. The strategy for this is outlined here
[ Back ]
Page last updated on 04 October, 2005.
|
AT cse.iitd.ac.in
|
© Parag Chaudhuri , 2009
|
|