Standard Hair

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

Compare with Current View Page History

« Previous Version 17 Current »

Hair groom by Sohrab Esfehani

 

Standard Hair is a physically based shader to render hair and fur, based on the d'Eon model for specular and Zinke model for diffuse. Realistic results can be obtained by setting a few simple parameters for the base color, roughness, and index of refraction.

The Standard Hair shader is designed to be used with Arnold's curves shape node, and will not work well on other types of shapes. Other shaders like Lambert also work on curves, but can not accurately simulate hair scattering.

Texturing Hair
When connecting textures to hair, the intended workflow is to set Melanin to 0, and link the texture to the Base Color. Diffuse can normally be left at 0. The Base Color will affect the secondary Specular and Transmission, just like Melanin. They are just two different ways to control the absorption in hair. Melanin can be seen as a way to more easily pick a Base Color appropriate for human hair, but if you have a texture, then Melanin can be disabled.

It is not possible to directly map Hair shader parameters to Standard Hair, due to the very different shading models. The specular, specular2 and transmission colors are still separately controllable but are now automatically energy conserving using Fresnel and need to be made brighter to get a similar look. The diffuse component needs to be made brighter to match Hair.

However, for accurate results, it is better to not use diffuse scattering or specular tints at all. These parameters provide artistic control beyond what is physically accurate and are usually not needed anymore.

To reduce noise with white/ light colored hair, you will need to either increase the Specular and/or the Camera (AA) samples.

Example Hair Presets

The following examples are also available as presets within the Standard Hair attribute editor in Maya.

Base

The brightness of the hair, a multiplier for the base color.

Base Color

The color of the hair. This controls absorption inside hair fibers, which gives hair its color as light scatters around. Note that for blond or bright colored hair, a higher number of specular bounces is needed to get accurate results.

It is recommended to leave the Base Color as pure white and instead use the melanin controls. This guarantees that the color will be "plausible" in the sense that it more resembles the appearance of human hair.

This parameter can also be connected to a texture map to vary the hair color.

Ramp textures connected to Base Color

Melanin

The Melanin parameter is used to generate natural hair colors, by controlling the amount of melanin in hair. Colors will range from blonde around 0.2 to red and brown around 0.5, to black at 1.0. To control the hair color with a texture map, set melanin to 0 and use base color instead.

Melanin Redness

Controls the redness of hair. Higher values increase the proportion of red pheomelanin (as found in red hair), relative to the amount of brown eumelanin (0.. 1).


Melanin Randomize

Randomizes the amount of melanin in hair fibers, for variation in hair colors (0.. 1).

(Melanin: 0.5)

Roughness

Controls the roughness of hair specular reflections and transmission. Lower values give sharper, brighter specular highlights while higher values give softer highlights.

IOR

Index of refraction. Each hair fiber is modeled as a dielectric cylinder, with hair reflecting off and transmitting into the fiber depending on the IOR. Lower IOR values give stronger forward scattering, and higher values give a stronger reflection.

Shift

The angle of scales on the hair fiber, shifting the primary and secondary specular reflections away from the perfect mirror direction. For realistic results for human hair, a small angle between 0° and 10° should be used (values for animal fur may be different).

Rollover image

 

Some suggested values can be found below (taken from "Studies of light scattering from ethnic hair fibers"):

Piedmont: 2.8

Light brown European: 2.9

Dark brown European: 3.0

Indian: 3.7

Japanese: 3.6

Chinese: 3.6

African-American: 2.3

Specular Tint

The scale of the primary specular contribution, which simply multiplies the primary specular color.

For realistic and clean hair, the color should be set to white. For realistic hair, it is recommended that this value is left at the default value (1.0/white).

2nd Specular Tint

The scale of the secondary specular contribution, which simply multiplies the secondary specular tint. For realistic and clean hair, this color should be set to white to let the base color tint the reflection. 

For realistic hair, it is recommended that this value is left at the default value (1.0).



Transmission Tint

The scale of the secondary specular contribution, which simply multiplies the secondary specular tint. For realistic and clean hair, this color should be set to white to let the base color tint the reflection. 

For realistic hair, it is recommended that this value is left at the default value (1.0).



 


 

 

The parameters below provide additional artistic control but are not required to achieve realistic results.

Diffuse

Controls the diffuseness of hair, with 0 giving fully specular scattering, and 1 fully diffuse scattering. For typical realistic hair, no diffuse component is needed. Dirty or damaged hair might be approximated with diffuse scattering.

Diffuse should not be used for realistic hair. Real hair does not have a diffuse component (unless makeup, spray, etc.). This parameter is not physically correct and is provided purely for additional artistic control. It is not needed to achieve realistic results.

Diffuse Color

Diffuse scattering color.

This parameter is not physically correct and is provided purely for additional artistic control. It is not needed to achieve realistic results.

Emission

The multiplier for the emission color.

This parameter is not physically correct and is provided purely for additional artistic control. It is not needed to achieve realistic results.

Emission Color

The color used as emission.

This parameter is not physically correct and is provided purely for additional artistic control. It is not needed to achieve realistic results.

Opacity

The opacity of the hair. This is set to full white by default, which means fully opaque hair, and for best performance, it should be left to the default.

Playing with this value to make the hair less opaque (or in other words, more transparent) can sometimes help make the hair look softer, at the expense of significantly increased render times. If not set to full white, be sure to have the Opaque flag off in the Arnold Parameters property of the hair object, or else Arnold will bypass any transparency-related calculations to optimize render times.

This parameter is not physically correct and is provided purely for additional artistic control. It is not needed to achieve realistic results.

Indirect Diffuse

The amount of diffuse light received from indirect sources only. Values other than 1 are not physically correct.


Indirect Specular

The amount of specularity received from indirect sources only. Values other than 1 are not physically correct.

Extra Depth

Adds extra Specular Ray Depth just for this shader. Blonde hair renders correctly by default, without needing to increase the GI_specular_samples first. 

For blond or bright colored hair, a high number of specular bounces must be used to accurately simulate multiple scattering. If this is too expensive to render, a diffuse component can be used as an approximation instead.


 

 

 

 

  

Many thanks to Zeno Pelgrims for the use of his hair groom.
  • No labels