Poets and novelists often describe hair as "shining" or "shimmering." Dark hair has a "sheen"; blond hair "glows." All this comes about because of the complex scattering of incident light off of individual hairs and from one hair to another.
Reproducing this effect in computer graphics has always been a challenge. Computers can create three-dimensional structures resembling hair, but the process of "rendering," in which the computer figures out how light will be reflected from those structures to create an image, requires complex calculations that take into account the scattering between hairs. Current methods use approximations that work well for dark hair and passably for brown, but computer-generated blondes still don't look like they're having more fun.
But now Cornell researchers have developed a new and much quicker method for rendering hair that promises to make blond (and other light-colored) hair more realistic.
Steve Marschner, Cornell assistant professor of computer science, developed the new method with Cornell graduate student Jonathan Moon, who will present the work at the 2006 SIGGRAPH computer graphics conference in Boston July 30 to Aug. 3.
"The model that's been around since the '80s works for black hair, and a model we introduced in 2003 in collaboration with workers at Stanford gets brown hair right and makes blond hair better," said Marschner, an award-winning computer graphics expert who specializes in making computer graphics more realistic, particularly in animating human beings. "Using that model with our new work provides the first practical method to use physically realistic rendering for blond hair and still get the right color."
The problem is that light traveling through a mass of blond hair is not only reflected off the surfaces of the hairs, but passes through the hairs and emerges in a diffused form, from there to be reflected and transmitted some more.
The only method that can render this perfectly is "path-tracing," in which the computer works backward from each pixel of the image, calculating the path of each ray of light back to the original light source. Since this require hours of calculations, computer artists resort to approximations.
"People do something reasonable for one bounce and then assume it reflects diffusely," Marschner explained. In other words, he said, they assume that hair is opaque. "In light-colored hair it's important to keep track of the hair-to-hair scattering," he said.
Marschner and Moon's algorithm begins by tracing rays from the light source into the hair, using some approximations of the scattering and producing a map of where photons of light can be found throughout the volume of hair. Then it traces a ray from each pixel of the image to a point in the hair and looks at the map to decide how much light should be available there.
The result, in a test rendering of a swatch of blond hair, appears almost identical to a rendering by the laborious path-tracing method. Path tracing for the test required 60 hours of computation, while the new method took only 2.5 hours, the researchers report.
Marschner now plans to look for better ways to generate the geometric model of hair that underlies the rendering and to simulate realistically the way hair moves. "Tools that generate hair generate random strands in space, and it's unclear whether the arrangement is realistic," he explained.
Marschner shared a technical achievement award from the Academy of Motion Picture Arts and Sciences in 2004 for a method of rendering translucent materials, including human skin, which helped to make the character of Gollum in the "Lord of the Rings" films more realistic. His earlier methods for rendering hair helped to create computer-animated versions of Naomi Watts in the arms of the computer-animated gorilla in the 2005 version of "King Kong."