Peach Fuzz Project




We are working to improve current methods of rendering human skin by adding fine hairs to the skin surface. Fine hairs add smooth, soft texture to skin and enhance contours by picking up light around model boundaries. These effects are particularly noticeable in the skin of newborns, children, and female subjects.




Terminology:

Fine hairs, or "peach fuzz" are known medically as vellus hairs. Vellus hairs are light colored, fine (~30um in diameter), and relatively short (< 2mm) and can be found over the body's entire surface. They are distinct from terminal hairs, which are the thicker, darker hairs such as those found on the head and arms. Terminal hairs grow from follicles containing sebaceous (oil-producing) glands, whereas vellus hairs do not.


Motivation:



The current state-of-the-art in human skin rendering allows for subsurface scattering, which yields a semi-translucent result that is much softer and organic looking than skin reproduced using BRDF techniques.


However, implicit in this model is the assumption that human skin is infinitely smooth, and it therefore tends to produce images which look slightly waxy. This is most apparent around the contours of the image, as in the ear and scalp of the image on the right.

For comparison, notice the similarly smooth-yet-glossy appearance of the "skin" found in wax models of Angelina Jolie and Pierce Brosnan at Madame Toussaud's wax museum in London:


Method: An Overview

We have written a tool with which an artist can select regions of a mesh and cover it with an arbitrary number of hairs. User controls over geometry include:

Hair properties: length, curliness, degree at which the hair protrudes from the mesh

Hair distribution: How many hairs to add to the selected region; this can be done by density (how many hairs per face?), percentage (which percentage of faces should have hairs?) or by adding an arbitrary number of hairs to that selection.

Export properties: How many line segments with which to represent each hair


The procedure for adding hairs to the mesh is as follows.






(1) Load the mesh into the viewer. (OBJ formats currently preferred; mesh must be oriented correctly and manifold.)










(2) Using mouse and keyboard controls, select the region to which you would like to add hairs.












(3) Add the desired type and quantity of hair to that region.










(4) Render image.

Image properties which can be adjusted during rendering include hair color, thickness, and reflectance properties.







Results:

Current results look slightly too "hairy" under incident light, but are starting to simulate contour effects nicely. The image on the left has 10 000 hairs of length 0.01 units (for comparison, the model is 2 units high). The image on the right has 20 000 hairs of length 0.005. The distribution of hairs is done according to the method of uniform distribution accross triangular faces described in PBRT by Pharr and Humphreys.








Okay, so we're not quite to kitten-fuzz-territory yet, but we're making progress.

Results 7-31.

Results 8-17.

Results 8-22.

















 Contact:
Katherine Breeden
breeden@caltech.edu