Hierarchical Radiosity

Programming Assignment #4

Simon Premoze

 


Hierarchical Radiosity solution of Cornell Box:

1. Constant Basis functions

After 1 iteration: 3923 elements, 15997 interactions, 979 Kb memory
After 5 iterations: 6971 elements, 68143 interactions, 2712 Kb memory
After 10 iterations: 7095 elements, 69390 interactions, 2754 Kb memory
 
The solution has converged after 4 iterations. Further iterations did not contribute much to the solution.

2. Linear Basis Functions

After 1 iteration
After 5 iterations
After 5 iterations
3. Link Refinement
I used two different methods for link refinement:
a) initial links were created and refined based on form factor approximation (as described in the Cohen and Wallace book -- Oracle1)
b) links were refined based on form factor error: FFerror = FFmax - FFmin for a pair of receiver/source (Oracle2 in Cohen and Wallace)

Solution normally convereged only after 3-4 iterations.

4. Running time and Memory issues
Memory was not really a big issue for Cornell box. My radiosity program used about 3Mb of RAM to compute Cornell box solution. However, when tried some more complex scenes, the program quickly ran into memory problems. This problem was offset using clustering radiosity.
Running time was much faster than solution in Programming Assignment #1 and #2. On average, the solution was computed under 120 seconds. The running time heavily depended on input parameters:
minimum element area, maximum element area, tolerance

5. Implementation details
Visibilty term was computed using bounding volume hierarchy. However, for Cornell box this scheme did not provide much speedup.  Form factor calculation was done using point-to-polygon method. I also tried point-to-disk method, but it did not improve running time at all. Display was done using an OpenGL viewer.

6 .Comments
Hierarchical radiosity provides much faster solution to Cornell box than MC radiosity at only fractional memory increase. However, for more complex scenes, more advanced techniques such as clustering, importance, lazy linking need to be applied in order to alleviate memory requirements of the underlying finite element method.
 


Simon Premoze

premoze@cs.utah.edu