Silhouette Maps for Improved Texture Magnification

 Slide 13 of 61 [index] [first] [prev] [next]  

So let's take a few moments to formally define what a silhouette map is.

As I mentioned earlier, silhouette maps were first introduced at SIGGRAPH last year as a way to address the aliasing artifacts of shadow maps. We noted in that work that the jagged artifacts of shadow maps occur at shadow boundaries. By explicitly storing the position of these boundaries in a silhouette map, we were able to reconstruct these boundaries correctly and thus produce a shadow that more closely resembled the true shadow.

Silhouette maps store this information by storing the xy coordinates of points that lie on the discontinuity edges.

The sample values, which in the case of the shadow maps were scalar depth values, are located in the corners of the silhouette map texels. In texture magnification, these samples will be the RGB color values. Thus the silhouette map and the standard texture are offset by 1/2 pixel in x and y relative to each other.

Finally, every cell in the silhouette map contains one and only one point. This is because our reconstruction algorithms require each silhouette point to have 4 valid neighbors. The fact that we store no more than one point makes our algorithm fast and efficient, requiring a constant-time lookup for each sample.

As presented at SIGGRAPH/EUROGRAPHICS Graphics Hardware 2004
by Pradeep Sen on August 30, 2004