jlu7
W1188144

Visualizing Radiosity Algorithm

by Jia Cheng Lu

Description:
This program will show the Radiosity Algorithm in many different ways, using data from a light source and some kind of .obj object/scene. By following a single ray I will be able to visualize how the scene is created step by step. The program will have functionality which the user can fiddle with to show them how the radiosity is being create, find out information of where patches of data are coming from, and how patches are affecting other patches.

Goals:
1: Have a program that is capable of turning any scene with lighting to having radiosity as well.
2: Have a graphical representation of how the rays and the thermal radiation work. Probably with arrows or lines.

Example of real time radiosity




Implementation:
To reach the first goal, I will first need to be able to import .obj files, this way I can light any and all models that I wish. OpenGL then creates the model using an algorithm I will write and apply normals, lighting, etc to it. I will then have to incorporate Radiosity with OpengGL's lighting premade lighting methods.
How Radiosity works is similar to raycasting. I will need to take a light source and shoot hundreds of rays from it and bounce it off the walls/objects of my scene. During this process, I will pick a couple of rays to draw to show where the rays are going to visualize how the algorithm works. I will also show the areas in which more rays hit by coloring it with colder colors (to show areas with dissapating light) to hotter colors (to show areas with a lot of rays and light).

Timeline:
1. Have .obj reader program read in large multi-object files + have all normals and faces working 2/17/2012
2. Have Progressive Radiosity working 2/24/2012
3. Have a couple of scenes ready for the presentation 2/26/2012
4. Have visualization of Radiosity working 3/11/2012
5. If any extra time, try to make different shaders/algorithms work 3/14/2012

Resources:
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter39.html
http://en.wikipedia.org/wiki/Radiosity_(3D_computer_graphics)
http://homepages.paradise.net.nz/nickamy/realtimerad/realtimerad.html
http://bluevoid.com/opengl/sig00/advanced00/notes/node141.html