A Layered, Heterogeneous Reflectance Model for Acquiring and Rendering Human Skin
ACM Transactions on Graphics (Proc. SIGGRAPH ASIA), December 2008
Abstract
We introduce a layered, heterogeneous spectral reflectance model
for human skin. The model captures the inter-scattering of light
among layers, each of which may have an independent set of
spatially-varying absorption and scattering parameters. For greater
physical accuracy and control, we introduce an infinitesimally thin
absorbing layer between scattering layers. To obtain parameters
for our model, we use a novel acquisition method that begins with
multi-spectral photographs. By using an inverse rendering technique, along with known chromophore spectra, we optimize for the
best set of parameters for each pixel of a patch. Our method finds
close matches to a wide variety of inputs with low residual error.
We apply our model to faithfully reproduce the complex variations in skin pigmentation. This is in contrast to most previous
work, which assumes that skin is homogeneous or composed of homogeneous layers. We demonstrate the accuracy and flexibility of
our model by creating complex skin visual effects such as veins, tattoos, rashes, and freckles, which would be difficult to author using
only albedo textures at the skin’s outer surface. Also, by varying the
parameters to our model, we simulate effects from external forces,
such as visible changes in blood flow within the skin due to external
pressure.
Paper
Citation
Craig Donner, Tim Weyrich, Eugene d'Eon, Ravi Ramamoorthi, and Szymon Rusinkiewicz.
"A Layered, Heterogeneous Reflectance Model for Acquiring and Rendering Human Skin."
ACM Transactions on Graphics (Proc. SIGGRAPH ASIA) 27(5), December 2008.
BibTeX
@article{Donner:2008:ALH, author = "Craig Donner and Tim Weyrich and Eugene d'Eon and Ravi Ramamoorthi and Szymon Rusinkiewicz", title = "A Layered, Heterogeneous Reflectance Model for Acquiring and Rendering Human Skin", journal = "ACM Transactions on Graphics (Proc. SIGGRAPH ASIA)", year = "2008", month = dec, volume = "27", number = "5" }