Mark Schmelzenbach
Homework #1
CS684 II

This assignment is based heavily on the Monte Carlo raytracer written last term. Once again, the Cornell Box is being used as the test scene. However, this time we are to calculate the radiosity solution of each surface, not just surfaces visible to the eye. This means that the solution is viewer independant, allowing the results to be exported to an interactive OpenGL program.

To calculate the solution, each surface in the Cornell Box is uniformly meshed. The mesh is created in parameter space, and functions exist that move between the object geometery and mesh space. The mesh elements are stored in a quadtree data structure and are themselves quads.

Monte Carlo techniques are used to evaluate the radiosity of each mesh element. I used piecewise constant basis functions, which makes the patches fairly obvious in the following pictures. All the pictures are snapshots grabbed from an OpenGL viewing application.



Radience function sampled 16 times per mesh element, polygons uniformly meshed into 16 peices.



Radience function sampled 1024 times per mesh element, polygons uniformly meshed into 16 peices.



This is a view of the mesh used for the above scenes... Notice the somewhat peculiar meshing of the ceiling. This occured because of the method I used to define the scene (splitting the ceiling into 4 slabs, leaving a hole in the center for the lightsource). It presents an interesting example of discontinuities that occur when edges don't line up. It is not great using a piecewise constant basis, but it would be even worse using a linear basis.



Radience function sampled 16 times per mesh element, polygons uniformly meshed into 256 peices.

Radience function sampled 1024 times per mesh element, polygons uniformly meshed into 256 peices.



This is a view of the mesh used for the above scenes...



This is a view from within the Cornell Box. Again the radience function was sampled 1024 times per mesh element, and the polygons are uniformly meshed into 256 peices. Notice the color bleeding on the faces of the box--there is a tinge of green on the left and red on the right. Isn't radiosity great?



Radience function sampled 1024 times per mesh element, some polygons uniformly meshed into 256 peices, others uniformly meshed into 1024 pieces.



Here is the mesh of the above scene...