Mike Stark

Programming Assignment #2

Monte Carlo Radiosity Solution, Adaptive Mesh

Description of the Results

The following images were created using an adaptive mesh solution using Monte-Carlo integration to approximate the radiance function. As is doubtlessly apparent from the images, the grid is a purely rectangular mesh, and subdivision breaks the edge continuity.

Subdivision based on error computed with the L1 norm

The two images below used an approximation to the L1 norm of the error in the radiance to control the subdivision. The initial mesh was constructed at approximately one fifth the height of the enclosing box, and subdivision proceeded from there. Subdivision was stopped at a rucursive depth of 7, corresponding to about one one-hundredth of the size of the surface, and the error threshold was 0.0001 in units of spectral radiance. (The l1 norm was used as the metric for individual spectra.)

These images were computed without the "indirect lighting" component, to make it easier to see how the subdivision works. A couple of full Monte-Carlo solutions (with 256 rays per sample) are, or will be, shown below.

Subdivision based on error computed with the L-infinity norm

These images were produced using the L-infinity norm, and a threshold of 0.01 (yes, two orders of magnitude larger!) A much larger threshold is needed because The L1 norm accounts for the area of the mesh cell, while the L-infinity norm does not.

Full solutions, including indirect lighting

This one used the L-infinity norm.

Conclusion

Meshing without shared nodes looks terrible! But at least you can see how the grid works. I'm not totally conviced my subdivision is correct (although I can't find anything intrinsicly wrong with it) so I'm not quite sure what to conclude. The subdivision seems to work a little better with the L1 norm. I think the trouble with the L-infinity norm for this problem is that it is indepenent of the area of the mesh cell, and as they get smaller, variation across the cell becomes less important.