Mark Schmelzenbach
Homework #2
CS684 II

This assignment implements error-driven adaptive meshing. Initially, each surface is created with a uniformly divided mesh of 16 elements. The same Monte Carlo techniqes used in Homework #1 are again used to calculate the radiosity of each mesh element. However, as the radiosity is calculated, an error metric is also calculated. If the error metric exceeds a certain threshold, the mesh element is refined, and the calculation begins again.

Two error metrics were used in this assignment: the L1 norm and the L infinity norm. The norm were estimated by finding the minimum (MIN) and maximum(MAX) values of the Monte Carlo radience sampling function over a given patch. The radience was reduced to a single number by converting to a luminence value between 0 and 1. The minimum and maximum luminence were called LMIN and LMAX respectively.

The L infinity norm was estimated by taking (LMAX-LMIN)

The L1 norm was estimated by weighting (LMAX-LMIN) by the percentage of the area the mesh element covered the polygon. This has the effect of penalizing errors over large areas, but making error over small areas less significant.

Again, piecewise constant basis functions were used, making the patches fairly obvious in the following pictures. All the pictures are snapshots grabbed from an OpenGL viewing application (and are therefore gamma corrected to be viewed on an SGI machine) The maximum meshing threshold was set to a depth of 6 (a maximum of 4096 mesh elements per surface) for the following pictures:



This is the L1 norm error metric, with an error threshold of 0.005. Each mesh element was sampled 256 times.



This is a view of the mesh from the picture above. Notice that the mesh on the light is not displayed (The light and the mesh are the same color).



This is the L1 norm error metric, with an error threshold of 0.001. Each mesh element was sampled 256 times.



...And the corresponding mesh from the picture above.



This is the L infinity norm error metric, with an error threshold of 0.5. Each mesh element was sampled 256 times.



This is a view of the mesh from the picture above.



This is the L infinity norm error metric, with an error threshold of 0.25. Each mesh element was sampled 256 times.



...And the corresponding mesh from the picture above.


For fun here is a run where the maximum depth was increased to 7 (a maximum of 16386 nodes per surface). The L1 metric was used, with an error threshold of 0.0001

The result...



...From this mesh.


Conclusions

The L1 norm generated a better grid and was faster to calculate, it also produced a better raw display.

The L Infinity norm tended to pick areas for extremely fine meshing, which generated strange artifacts in the raw display.

So, I prefer the look and speed of the L1 error metric.