You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 37 Next »

The 3Delight Hair shader is a physically plausible shader that renders hair and fur using a Monte-Carlo simulation. A Monte-Carlo simulation explores the different light paths inside a medium (in this case, a clump of hair) to produce an image.

An interesting aspect of hair rendering is that all the intricate visual details seen in hair stem from the scattering of light in a multitude of hair strands and is not due to the complexity of the BRDF os single hair strand. This seemingly simple observation explains why so many complex shaders are not successful at conveying a realistic look for hair. This includes the widely used shaders based on the Marschner model not using volume scattering.

 

Example renders of blond, red and dark hair. Note the glow caused by light scattering inside blond and red hair. Also note how black hair has nice silky features. The "glint" on hair strands is caused by caustics inside hair strands and is not an after thought of the shading model.

All theses features necessitate proper simulation of light scattering in hair clumps.  

The Model

The shader simulates 3 scattering events from one single hair strands and then proceeds with a Monte-Carlo simulation to follow light paths inside the hair volume. 

 

The three principal components of light scattering: Reflection (R), Transmission (TT) and 2nd Order reflection (TRT).

The following images show examples of each component rendered separately. 

    

From left to right:

  • Beauty: the final image.
  • Reflection (R) : light directly reflected from the surface of a hair strand. In many other hair materials this element is named the primary highlight.
  • Transmission (TT) : light goes through the hair strand and interacts with the interior of the strand (absorption). This term is responsible of the back lighting that is visible when putting a light behind a hair clump.  
  • Secondary Reflection (TRT) : light travels through the hair twice before going back to the same side it entered. As this light path gets absorbed twice and interacts 3 times with the surface of the hair strand it is much dimmer than R and TT. In many other hair materials, this element is named the secondary highlight.

 

Before explaining the parameters of the shader in detail, please note that :

  1. There are no diffuse terms. Most shaders have an ad-hoc diffuse term to approximate the soft look of hair. In reality, this soft look is caused by light scattering and is not related to a classic diffuse BRDF..
  2. No control over directly reflected colour. Direct reflections have the same colour as the incoming light. Any coloured visual features are due to light passing through through a strand of hair. 
  3. There are no "glint" parameters. This visual feature is caused by caustics inside each hair. Depending on hair roughness, light gets periodically concentrated in some areas of each hair strand and this causes the so-called glint.
  4. We don't use secondary/primary highlight nomenclature

Material Parameters

Parameter

Description
Colour
_____________________
This is the colour of one hair strand. It is defined as: 1.0 - Absorption. Absorption inside a hair strand is the main parameter driving the overall look of hair. Fair hair has small absorption levels (Hair Colour is closer to white), while dark hair has high absorption (Hair Colour is closer to black). When absorption levels are low, light scatters more so "glow" is more apparent.
Thickness

The diameter of one hair strand. The wider the hair the more it absorbs light. 3Delight first computes the absorption levels from Hair Colour and then multiplies that absorption by this parameter to get the actual absorption inside one hair strand.

Note that is parameter doesn't affect the geometric thickness of hair.

Roughness
Reflection RoughnessThis is the roughness of the direct reflection. The range is [0..1] with values closer to one meaning rougher hair.
Transmission RoughnessThis is the roughness of the transmission component of the model. The range is [0..1] with values closer to one meaning rougher hair.
TRT RoughnessThis is the roughness of the TRT component of the model.
Note that, in a real hair strand, roughness should be the same for all the elements. They are separate here for artistic control but should be kept the same if model realism is desired.
Weights
Reflection WeightThe contribution of Reflection (R) to the final result.
Transmission WeightThe contribution of Transmission (TT) to the final result.
TRT WeightThe contribution of 2nd Order Reflection to the final result
Note that the different weights are actually a balance between the different components. In other words, the weights are normalized so as to conserve the overall energy in the system.
Positions
Reflection Positions 
Transmission Positions 
TRT Positions 

 

Material Output Variables

 

  • No labels