Skip to content

Hair Fiber#

The Hair Fiber material is an artist-friendly material dedicated to realistically render hair, fur and fibers. This material is based on the works of [Chiang et al. "A Practical and Controllable Hair and Fur Model for Production Path Tracing" - 2016] and [d'Eon et al. "An Energy-Conserving Hair Reflectance Model" - 2011]. Internally it models fibers as physically based dielectric cylinders where light is reflected and transmitted multiple times within.

Important

The Hair Fiber material must be used on curve geometries rendered as ribbons. Using it on curves rendered as tubes or on other types of geometries will introduce rendering artifacts. For more information on how to set the proper curve geometric property, refer to the Fur/Shape section of this reference guide.

Note

The model rendered below is a courtesy of Eisko

Default Settings (Louise model courtesy of Eisko)

Default Settings with Dye Mix at 100%

Tip

The raytracer offers a special texture operator Curve Utility dedicated to curve geometries allowing you to get useful values such as per curve ID or random values to add variation in your material.

Base#

The Base set of attributes controls the color of the fiber. This set of attribute is designed to be WYSIWYG, normalized and perceptually linear. The look of the fiber is controlled by defining the concentration of natural melanin pigments (eumelanin and pheomelanin) in the fiber that are potentially mixed with a dye pigment. When the fiber color is light, the material can require a lot of bounces to render accurately. For more information, please refer to Rendering Tips section.

Attribute Description
Melanin Amount Define the amount of melanin (brown pigment aka eumelanin) in the fiber. This attribute actually drives the concentration of melanin in the fiber. When set to 0% there is no melanin pigment in the fiber. At 100% the fiber is fully saturated with melanin.
Melanin Redness Define the relative concentration of the pheomelanin (red pigment) over the amount of brown pigments. This value typically controls how reddish the fiber is.
Dye Mix Define the dye pigments concentration over the melanin. When set to 100% the fiber is completely saturated with dye pigments. The color of the fiber is then exclusively defined by Dye Albedo. On the other hand, dye pigments are totally absent when the value is set to 0%. The color of the fiber is then exclusively defined by the melanin.
Dye Albedo Define the albedo (diffused color) of the hair dye pigment.

Note

The lighter the color the deeper lights propagate in fibers and the slower the render gets.

Melanin Amount#

Melanin Amount defines the concentration of melanin in the fiber such as low to high concentrations range hair color from white/grey, blond, brown to black. When set to 0% there is no melanin pigment in the fiber resulting in a white/grey hair. At 100% the fiber is fully saturated with melanin pigments resulting in black hair.

Melanin Amount 0%

Melanin Amount 25%

Melanin Amount 50%

Melanin Amount 75%

Melanin Amount 100%

Melanin Redness#

Melanin Redness defines the relative concentration of pheomelanin (natural red pigment) over eumelanin (brown pigment) in the fiber. When set to 0% there is no pheomelanin pigment. At 50% there is as much pheomelanin than eumelanin pigments in the fiber. At 100% there are only pheomelanin pigments in the fiber. Values ranging from 0% to 100% result in hair color changing from brown, auburn to red. The images rendered below are all using the default settings but with a Melanin Amount of 50%.

Melanin Redness 0%

Melanin Redness 25%

Melanin Redness 50%

Melanin Redness 75%

Melanin Redness 100%

Setting Melanin Amount to 8% and Melanin Redness to 100% gives light natural blonde hair.

Blonde Hair using Melanin Amount 8% and Melanin Redness 100%

Dye Mix and Albedo#

Dye Albedo defines the color of the dye pigment that is mixed to the melanin and Dye Mix defines the concentration of the dye pigment over the melanin. When set to 100% the fiber is completely saturated with dye pigments. The color of the fiber is then exclusively defined by Dye Albedo.

On the other hand when the value is set to 0%, dye pigments are totally absent. The color of the fiber is then exclusively defined by the melanin attributes.

Dye Mix is very useful when textured since using a simple gradient. It then becomes very easily to simulate faded dyed hair. In the render below you can see 3 renders illustrating the effect of Dye Mix:

  1. The first one reveals the natural hair color defines using the melanin attributes.

  2. The second one reveals the actual color of the dye set to Dye Color since Dye Mix is set to 100%

  3. The third render, uses a B&W gradient on UV Map (V) along the hair to drive Dye Mix. This gives a faded dye look to the hair which are naturally blending with the underlying natural hair color.

Dye Mix 0% revealing the base melanin

Dye Mix at 100% reveling the green dye

Faded dye, using a B&W gradient on UV Map (V) to drive the Dye Mix

Surface#

The Surface set of attributes controls the properties of the micro surface geometry of hair fibers which are modeled as cylindrical dielectrics. In the renders below, we compare, actual cylinder geometries with a dielectric material to curve geometries assigned to a Hair Fiber material:

cylinder with dielectric material

Closeup of hair fiber with no melanin and no roughness

Closeup of hair fiber with no melanin and 50% roughness

Attribute Description
Highlight Roughness Control the longitudinal roughness of the fiber affecting the sharpness/softness of reflection highlights
Fiber Softness Control the azimuthal roughness of the fiber affecting the sharpness/softness and saturation of the transmission.
Cuticle Tilt Define the tilt angle of cuticles of the fiber.
Index Of Refraction Define the index of refraction of the fiber.

Highlight Roughness#

Highlight Roughness controls the sharpness/softness of reflection highlights. The higher the value the softer they are. Internally this attribute drives the longitudinal roughness of the fiber and as such it also has an effect over transmission but to a lesser degree than Fiber Softness.

Note

The images rendered below are all using the default settings using a Melanin Amount of 50% and Fiber Softness of 100%.

Highlight Roughness 0%

Highlight Roughness 25%

Highlight Roughness 50%

Highlight Roughness 75%

Highlight Roughness 100%

Fiber Softness#

Fiber Softness controls the sharpness/softness and saturation of the transmission. The higher the value the softer and saturated the fibers look. Internally this attribute drives the azimuthal roughness of the fiber and as such also affects reflections but to a lesser degree than Highlight Roughness. The images rendered below are all using the default settings but with a Melanin Amount of 50%.

Fiber Softness 0%

Fiber Softness 25%

Fiber Softness 50%

Fiber Softness 75%

Fiber Softness 100%

Cuticle Tilt#

At the microscopic level fibers are made of small overlapping scales called cuticles. The Hair Fiber material takes into account these cuticles and Cuticle Tilt allows you controls the angle between cuticles. Changing Cuticle Tilt angle has for effect to shift highlights towards the tip (positive angles) or the root (negative ones) of the fiber.

Typically synthetic fibers should have a Cuticle Tilt angle of 0. Human hair fibers have a tilt value of around 3 degrees since cuticles are orientated towards the root.

Cuticle Tilt -10.0

Cuticle Tilt -5.0

Cuticle Tilt 0.0

Cuticle Tilt 5.0

Cuticle Tilt 10.0

Index Of Refraction#

Since the material is modeled after a dielectric cylinder model, Index Of Refraction controls how light is scattered and reflected within/from the fiber. The higher the Index Of Refraction the more light is reflected and less is transmitted/scattered.

Note

The images rendered below are all using the default settings but with a Melanin Amount of 50% and Melanin Redness of 50%.

Index of Refraction 1.0

Index of Refraction 1.4

Index of Refraction 1.8

Index of Refraction 2.2

Index of Refraction 2.6

Tints#

The Tints set of attributes allows you to artistically control the tint of reflection, transmission as well as internal scattering.

Attribute Description
Reflection Tint Tint the color of the light reflection on the fiber.
Transmission Tint Tint the color of transmitted light.
Single Scattering Tint Tint the color of light being scattered once in the fiber.
Multiple Scattering Tint Tint the color of light being scattered multiple times in the fiber.

These settings can also be used to cheat rendering and optimize render times. Use it at your own risk since you can easily break energy conservation! However, when used carefully they can save render times:

In the render (Render A) below, the maximum number of bounces for transmission was set to 3 which is too low to get realistic blonde hair. Setting Transmission Tint to a bright yellow does the trick as you can see on (Render B).

Blonde Hair settings with not enough depth (3)

Same settings with Transmission Tint set to bright yellow

Variation#

To achieve greater realism, it is best to use variation to drive some of the attributes of the Hair Fiber such as Melanin Amount or Melanin Redness.

To achieve this, you can use the dedicated Curve Utility texture to add per curve variation. All you have to do is to set it to special Random Value mode of the Curve Utility to output a random value for each curve.

Then you are free to connect it anywhere as is or use it in a Gradient texture for example to remap the random values in the desired range.

Gradient connected to Melanin Amount remapping random values output from a Curve Utility

Gradient

In the renders below we can see how much adding variation to the Melanin Amount helps achieving more convincing look:

Melanin Amount set to 40%

More natural look with Melanin Amount ranging between 30% and 80%

Using the same type of setup, you can improve your lookdev by adding more variation on hair color and even gray hair by randomizing Melanin and other attributes such as Highlight Roughness and Fiber Softness.

Adding 10% of gray hair through randomization

Same setup with 50% of gray hair.

Rendering Tips#

The biggest part of the illumination of the hair fiber comes from light being transmitted within fibers. It is then very important to make sure Transmission Depth of the material as well as the Total Maximum Depth of the path-tracer to be set at a large enough value.

Increasing the Transmission Depth generally results in lighter hair and more saturation because of multiple scattering. In a way light hair are like like clouds: they need a lot of bounces to render realistically.

However, increasing these settings isn't super critical for dark hair (and most hair color in general) as you can see in the render below:

Transmission Depth 3

16

While this isn't critical for dark hair, it becomes more important when the hair gets lighter:

Transmission Depth 3

16

As you can see above the hair become slightly lighter and more saturated when Transmission Depth is set to 16. As light bounces more in the hair, render times also increased slightly now becoming 20% slower to render.

However it becomes crucial to increase these values when you want to render realistic light/blonde hair. Otherwise they won't render accurately.

Glossy Transimission and Total Maximum Depth set to 3

When set to 16 the hair is lighter and more saturated. However render times are 300% longer.

As you can see, when rendering with 16 bounces the blonde hair looks way more realistic. However, render times were 300% longer to render.

Tip

In general, for light fiber colors it is recommended to set Total Maximum Depth and Specular/Glossy Transmission Depth of the material to a value of 10 or 16 if the hair is very light.