Principled Hair

Table Of Contents


Overview

The Redshift Principled Hair shader is a physically-based shader for hair and fur. You can quickly get up to speed with natural hair results by adjusting the melanin and melanin redness values. adding in some randomization by increasing the amount of variation for various color and roughness parameters.

 

Trace Depths

The look of hair is heavily affected by the reflection trace depth render setting. When hair is lighter in color a multi-scattering reflection effect becomes more pronounced, this means that light hair (lower melanin values) will generally require higher trace depth values than dark hair (higher melanin values). Hair that is driven by an albedo color behaves in the same way but hair that is diffuse is much less sensitive to reflection trace depth changes.

Reflection trace depth values that are too low may look nothing like their intended color. In the example videos below, note how significantly the look of the hair can change when trace depth values are low. However, since high trace depths can have a significant negative impact on render times it is important to find a good balance for your intended look as there are diminishing visual returns beyond a certain point.

Trace Depth: 1-32
Hair Color: Melanin 0.2

Melanin 0.65

Albedo Color: Light Pink

 

There are two ways to control the reflection trace depth of hair.

 

Render requirements

The 'Hair Render' effect found in the Render Settings panel must be present and enabled for hair rendering in Redshift. Normally, this effect is added automatically with the creation of C4D hair but it may be necessary to manually add to your Render Settings in certain situations.

To do this, go to your Render Settings panel and create the "Hair Render" effect as pictured below.

Manually adding the Hair Render effect

 

The Hair Render effect is only used as a global option that enables or disables hair rendering, the individual parameters in the Render, Objects, and Multi-Pass tabs have no effect on Redshift rendering.

Instead, use the "Hair" parameters in Redshift's "Globals" render settings tab as pictured below. For more information please see the the Globals Advanded page.

Redshift Hair render settings

 

Examples

Usage with C4D Hair

Create a Principled Hair shader and apply it to your C4D hair object without replacing the default C4D hair material, this will still be used to control hair attributes like frizz, clump, and curl. For more information regarding these attributes please see the C4D Hair Material page.

Applying a Principled Hair material to a C4D Hair object

 

By default Principled Hair will render using its realistic melanin color controls but the node graph is already set up to easily inherit colors from a C4D hair material by using a "C4D Hair Attributes" node as seen below.

C4D Hair Attributes driving the colors of a Principled Hair material

The C4D Hair Attributes node is set up to work as follows:

The C4D Hair Attributes node can be disconnected if you intend to use the Principled Hair controls exclusively, however the C4D hair material will still be used to drive all non-color attributes like frizz and curl.

 

Hair color from root to tip

Use a Hair Position node's "Out Scalar" to drive a gradient ramp that feeds into the Albedo Color of a Principled Hair shader. Tweak the ramp until the colors are aligned to your liking, colors on the left side start at the root and transition to the tip on the right side.

Color ramp driven by a Hair Position node
Hair colored by a ramp

 

Hair color from a texture

Connect a texture to the main color input of a C4D Hair material, this will drive the C4D Hair Attribute node which controls the Principled Hair's Albedo color. Remember to increase the Albedo Mix so that the texture color can be seen.

Controlling hair color with a texture
Hair driven by texture

 

Mixing colors

Hair color can be mixed and tweaked using shading nodes like the color correct and color layer. However, you may prefer to accomplish all the color mixing in the C4D hair material and just pass the result to the Principled Hair with the C4D Hair Attributes node.

Mixing a ramp with a texture to drive hair color
Texture and color ramp averaged together

 

Parameters

 

General

Tint

This allows you to tint the color of the hair. The default white color leaves melanin and other color attributes to show through unaffected.

Tint color breaks physical accuracy and should be left at the default white for realistic hair so that specular highlights are not colored. To simulate dyed hair or other colors outside of the melanin color range and maintain physical accuracy please use albedo color instead.

Tint: White (Default)
Melanin: 0.65
Light Green Magenta

 

 

Roughness

Roughness controls how shiny the hair looks by tightening or spreading the reflection highlights along the length of the hair strands. Higher values result in more spread out diffuse reflections while lower values result in tighter more shiny highlights.

Roughness: 0-1

 

Roughness (radial)

Roughness radial controls how shiny the hair looks by tightening or spreading the reflection highlights across the width of the hair strands. Higher values result in more spread out diffuse reflections while lower values result in tighter more shiny highlights.

Roughness (Radial): 0-1

 

Angle Shift

Angle Shift moves the location of the highlights along the hair strands. Positive values shift the highlight position towards the root of the hair strands and negative values shift the highlight towards the tip.

Angle Shift: -15 to +15

 

IOR

This allows you to adjust the index of refraction, human hair has an IOR of 1.55. Higher values increase reflectivity.

IOR: 1-2

 

Samples

This defines the number of samples to use when rendering the hair, more samples means less noise. Lower hair roughness values produces sharper light reflections which will require using higher sample counts.


Color

Albedo Mix

This controls how heavily the albedo color is mixed with the melanin color.

For an albedo only color set Albedo Mix to 1.

Albedo Mix: 0-1
Albedo: Blue

 

Albedo

Albedo controls the color of the hair.

If you intend to simulate natural hair colors it is recommended to use the melanin/melanin redness color attributes instead of the albedo color.

Albedo Mix: 0.0
Albedo: Orange (default)
Melanin: 0.65
0.5
Orange (default)
0.65
1.0
Orange (default)
0.65
0.5
Blue (0,0,255)
0.2
0.5
Blue (0,0,255)
0.65
1.0
Hair Position + Color Ramp
0.65

 

Melanin

Defines the concentration of melanin in the hair. High values result in darker hair while a value of 0 will render the hair completely white.

Lighter colored hair benefits greatly from increasing the rendering trace depth so be certain to check reflection trace depth particularly for blonde hairstyles.

Melanin: 0.0 0.25 0.5 0.75 1.0

 

Melanin Redness

Defines the redness of the hair color by controlling the amount of pheomelanin in the hair. High melanin redness values result in redder hair.

Melanin value must be greater than 0.

Melanin Redness: 0.0
Melanin: 0.3
0.5 1.0

 

Variation

Variation Seed

Changing the variation seed value alters the results of all of the random variation attributes.

Variation Seed: 0 1 2

 

Glint Size

This controls the size of the reflection breakup on the hair.

Glint Size: 0-90


Glint Strength

This controls the intensity of the reflection breakup on the hair. Higher values result in more intense glint reflections and greater contrast in the hair.

Glint Strength: 0-1


Stray Hair Albedo

This controls the albedo color of the stray hairs.

Stray Hair Fraction must be greater than 0.


Stray Hair Fraction

This controls the ratio of normal hairs to stray hairs that use the stray hair albedo color. A value of 0 results in no stray hairs while higher values result in more stray hairs.

Stray Hair Fraction: 0-1
Stray Hair Albedo: Orange


Melanin Var.

Melanin variation randomizes the amount of melanin concentrated in the hair strands. Higher numbers increase the amount of melanin variation.

Melanin Var: 0.0 0.5 1.0

 

Melanin Redness Var.

Melanin redness variation randomizes the amount of melanin redness found in the hair strands. Higher numbers increase the amount of melanin redness variation.

Melanin Redness Var: 0.0 0.5 1.0

 

Roughness Var.

Roughness variation randomizes the amount of reflection roughness on the hair.

Roughness Var: 0.0 0.5 1.0

 

Roughness (radial) Var.

Roughness radial variation randomizes the amount of reflection radial roughness on the hair.

Roughness (radial) Var: 0.0 0.5 1.0

 

Diffuse Contribution

Diffuse Amount

Controls how diffuse the hair is and uses the diffuse albedo color. Higher values result in hair that is less translucent.

Real hair or fur does not have a diffuse component, however, increasing diffuse amount can be helpful when simulating dirty/damaged hair or other fibers that are not translucent. For the most realistic hair diffuse amount should be set to 0.

Diffuse Amount: 0-1
Diffuse Color: Brown


Diffuse Albedo

Controls the diffuse color of the hair when diffuse amount is set above 0. 

Diffuse Amount: 0.0
Diffuse Albedo: White

1.0
White

0.01
Light Green