Principled Hair
Table Of Contents
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.
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.
Use the "Reflection Trace Depth" parameter in Redshift's main Render Settings.
This will control the reflection trace depth across the entire scene, this may be inefficient if your scene does not require high reflection trace depths outside of hair rendering.
Use the "Trace Depth" override setting in the Advanced section of the Principled Hair shader.
This will only override the local reflection trace depth of this hair material, frequently this is more efficient since you can set higher or lower trace depths for hair rendering rather than affecting the entire scene.
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 |
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's main color (Out Color) is used to drive the Principled Hair's albedo and diffuse colors.
The Principled Hair's "Albedo Mix" or "Diffuse Amount" parameters must be increased before these colors become visible. In most cases, set the Albedo Mix to 1 for realistic hair colors and leave Diffuse Amount at 0.
The C4D Hair's specular color (Out PRefl Color) is used to drive the Principled Hair's tint color.
By default a C4D Hair's specular color is white, the same as a Principled Hair's default tint color, so no change will take effect unless the specular color is changed.
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.
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 |
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 |
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 |
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 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 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 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 |
This allows you to adjust the index of refraction, human hair has an IOR of 1.55. Higher values increase reflectivity.
IOR: 1-2 |
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.
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 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 |
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 |
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 |
Changing the variation seed value alters the results of all of the random variation attributes.
|
|
|
Variation Seed: 0 | 1 | 2 |
This controls the size of the reflection breakup on the hair.
Glint Size: 0-90 |
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 |
This controls the albedo color of the stray hairs.
Stray Hair Fraction must be greater than 0.
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 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 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 variation randomizes the amount of reflection roughness on the hair.
|
|
|
Roughness Var: 0.0 | 0.5 | 1.0 |
Roughness radial variation randomizes the amount of reflection radial roughness on the hair.
|
|
|
Roughness (radial) Var: 0.0 | 0.5 | 1.0 |
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 |
Controls the diffuse color of the hair when diffuse amount is set above 0.
|
|
|
Diffuse Amount: 0.0 |
1.0 |
0.01 |