Hard at work: By Hyun Gu Lee & Murad Akhter
Project Goal and motivation
Rendering realistic human characters is considered the holy grail of 3D games and computer animation. One of the central challenges in shading 3D characters is the appearance and modeling of healthy-looking, life-like skin due to its sub-surface scattering and semi-translucent, non-homogenius, multi-layered structure. The different layers of skin exhibit a range of reflectance, transmission and absorption properties which need to be accounted for with a specific physical model. The rough surface layer of the skin also needs to be accounted for, otherwise the characters can look like plastic. On top of this, human skin often has a clumps of short, thin hairs without which rendered characters can look too clean and uninspired. Incorporating hair is a challenge because it greatly increases the geometric complexity of the scene.
Our project's goal is to incorporate all of the aforementioned enhancements necessary in PBRT to render realistic-looking human skin and hair. For reference we will be emulating the following picture of a studious CS348B student hard at work.
Outline of Implementation and key technical challenges
In order to build a realistic thin model we need a surface to bind it to. We are planning on deriving the hand and elbow 3D mesh by editing the CGHuman male model based on the Absolute Character Tools plugin for 3D Studio Max. This should allow us to export the 3D mesh as an OBJ file into Maya where we will pose it, add the shapes for the pen and notebook and probably use Mark Colbert's maya-pbrt plugin to generate the pbrt file to render our scene. Here's what our mesh currently looks like when loaded into Alias Motion Builder
We plan on creating skin textures and procedurally generating normals for per-pixel bump-mapping to model the fine-scale and rough outer surface of the skin. We will be using the approach used to grow normal map textures from different skin regions as outlined by Haro et. all's Eurographics 2000 paper. In their work, they used reference normal maps collected from different skin regions around the face. We are hoping these regions will workl well for skin around the hand as well. If this turns out to not be true in practice, we will try to acquire our own normal maps.
Using the ideas from Hanrahan and Krueger's Siggraph '93 paper and Pharr and Hanrahan's Siggraph 2000 paper, we will implement subsurface scattering, simulating the behavior of light interacting with the multiple layers of skin. These layers will consist of the outer oily, the epidermis, dermis and hypodermis layer as shown in the figure below.
One way to model hair is by incorporating spatially inhomogeneous atmospheric attenuation and creating solid textures to define the color and opacity for each interval. However, this approach is probably unnecessary in our case since the amount of hair present on the hand is small and so we will simply model hair strands as a series of b-spline curves. Therefore, we expect to write a new shape class and will have to come up with some way to grow hair using hair region masks generated from actual photographs.
Here are some further illustrative images showing the range of skin color and translucency. The darker toned skin allows less light to penetrate the lower layers of the skin and is thus less 'reddish' in hue
Hanrahan, P., and Krueger, W. 1993. Reflection from layered surfaces due to subsurface scattering. In Proceedings of the ACM Siggraph 1999, ACM Press / Addision-Wesley Publishing Co., New York, Computer Graphics Proeedings, 164-174.
Pharr, M., and Hanrahan, P. 2000. Monte carlo evaluation of non-linear scattering equations for subsurface reflection.
A. Haro, B. Guenter, and I. Essa, Real-time, Photo-realistic, Physically Based Rendering of Fine Scale Human Skin Structure, Proceedings 12th Eurographics Workshop on Rendering, London, England, June 2001.