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

Compare with Current View Page History

« Previous Version 13 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 a single hair strand. This seemingly simple observation explains why so many complex shaders are not successful at conveying the look of realistic hair. This includes the widely used shaders based on the Marschner model.

 

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 fetures. 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.  

Before explaining the parameters of the shader in detail, let's explain the fundamentals :

  1. There is no diffuse term. Most shaders have an add-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 usual diffuse BRDF.
  2. The is no primary/secondary highlight parameters. As is the case for diffuse, these parameters are an approximation to directly relfected light and to light that has been reflected after bouncing twice inside a hair strand.
  3. No control over directly reflected colour. Directly reflections are of the colour of the light.
  4. There are no "glint" parameters. This visual feature is caused by caustics inside each strand. Depending on hair roughness, light gets periodically concentrated in some areas of each hair strand and this causes the so-called glint.

Parameters

Output Variables

 

  • No labels