A Self-Shadow Algorithm for Dynamic Hair using Density Clustering

Tom Mertens, Jan Kautz, Philippe Bekaert, Frank Van Reeth

Abstract

Self-shadowing is an important factor in the appearance of hair and fur. In this paper we present a new rendering algorithm to accurately compute shadowed hair at interactive rates using graphics hardware. No constraint is imposed on the hair style, and its geometry can be dynamic. Similar to previously presented methods, a 1D visibility function is constructed for each line of sight of the light source view. Our approach differs from other work by treating the hair geometry as a 3D density field, which is sampled on the fly using simple rasterization. The rasterized fragments are clustered, effectively estimating the density of hair along a ray. Based hereon, the visibility function is constructed. We show that realistic self-shadowing of thousands of individual dynamic hair strands can be rendered at interactive rates using consumer graphics hardware.

Publication

A Self-Shadow Algorithm for Dynamic Hair using Density Clustering
Tom Mertens, Jan Kautz, Philippe Bekaert, Frank Van Reeth
In proceedings of Eurographics Symposium on Rendering 2004, Norrköping, Sweden, June 21-23, 2004
Also appeared as a Siggraph 2004 sketch.

Downloads

Paper [PDF]
PowerPoint presentation [PPT]
Curly hair example [MPEG] (3.5Mb)
Long hair example [MPEG] (3.9Mb)

Results

Here we show some additional qualitative comparisons that couldn't fit in the paper. The quality of our renderings are equal or better than the ones produced by opacity shadow mapping (OSM), using high quality settings (256 slices). In certain cases, the visual texture caused by shadow attenuation is more pronounciated, thereby greatly improving the appearance.

Our method, 4 clusters

OSM, 256 slices

This is very clear in the above example. The flat region in the center right part of the image shows some variation in shadow attenuation, causing a very interesting texture. The rendering next to it shows that OSM is not capable of generating this detailed appearance.

Our method, 4 clusters

OSM, 256 slices

OSM, 64 slices

OSM, 16slices

OSM, 4 slices

Upon close inspection, one can see the same effect again with our method, and not with OSM. Also, it seems that adding more slices does not help much to achieve this "shadow texture".

Our method, 4 clusters

OSM, 256 slices

OSM, 64 slices

OSM, 16slices

OSM, 4 slices

Here the effect is less noticable due to the already chaotic characteristics of the hair model.

Our method, 4 clusters

OSM, 256 slices

OSM, 64 slices

OSM, 16slices

OSM, 4 slices

The blond model again, in a different setting.