This page provides information on the V-Ray Hair Next Material.
Overview
VRayHairNextMtl is specifically designed for rendering hair and fur and provides settings for a workflow based on the physiology of real hair. Instead of tweaking arbitrary colors that mix together, the new Hair Next material uses a simple melanin slider that determines the hair color just like in the real world. The material is the product of research based on the paper A Practical and Controllable Hair and Fur Model for Production Path Tracing and can be used to render geometry generated through the VRayOrnatrixMod modifier, the VRayFur primitive, or the 3ds Max Hair&Fur modifier (when in mr prim mode).
General Parameters
Preset – Offers some commonly used hair settings as presets. You can choose between White, White (Fur), Sandy Blond, Golden Blond, Light Brown, Dark Brown, Aged Dark Brown, Ginger Red, Auburn, Scarlet Red(Dyed), Atlantic Blue (Dyed), Lagoon Blue (Dyed), Black presets. See the Presets example below for comparison.
Melanin – The pigmentation component that gives the hair strand its main color. The higher the value assigned, the higher the concentration of melanin and the darker the hair strands are. See the Melanin example below to understand how different values work.
Pheomelanin – The redness (pheomelanin content) of the hair strand as fraction of all melanin. 1.0 makes the hair redder. The ratio of melanin to pheomelanin determines how red the hair is. The Pheomelanin value will have no effect if the Melanin is set to 0. See the Pheomelanin example below.
Dye color – Applies a color tint to the hair. For a dyed hair look, set the Melanin to 0, otherwise the melanin darkens the dye color and pheomelanin introduces redness to it. White means no hair dye. See the Dye color example below.
Opacity – Controls the opacity of hair. White is fully opaque, while black is fully transparent.
Diffuse color – Controls the diffuse component of the shader. Use this for materials made out of cloth threads or other non-translucent fibers, as well as for dirty hair.
Diffuse amount – Specifies the amount for the diffuse component of the material.
Note that real-world hair or fur does not have a diffuse component. Although the diffuse parameter allows for some artistic control, for realistic results it is best to disable it by leaving the Diffuse amount at 0.
Glossiness – Controls the glossiness along the hair strand. It primarily controls the width of the highlight, essentially how shiny the hair appears.
Primary glossiness – Additional scaling factor to boost the primary reflection glossiness. This can be useful for reproducing the effect of shiny coating on rough looking fur.
Softness – Controls the overall softness of the hair by how much the highlights are wrapped around the individual hair strands. Higher values make the highlights wrap almost completely around the strands giving the hair a smoother look, while lower values make the it look crispier. See the Softness example below.
Highlight shift– Shifts the highlights along the hair strand. Positive values shift the highlight away from the root of the hair, while negative values move the highlight closer to the root. Values in the range 2-4 are typical for human hair. See the Highlight shift example below.
IOR – Hair index of refraction. The typical value for human hair is 1.55. The higher the value, the more reflective the hair strands. See the IOR example below.
Example: Melanin
The pigmentation component that gives the hair strand its main color. The higher the value assigned, the higher the concentration of melanin, the darker the hair strands are. In the example below, Pheomelanin is set to 0.
Example: Pheomelanin
The redness (pheomelanin content) of the hair strand as fraction of all melanin. 1.0 makes the hair redder. The ratio of melanin to pheomelanin determines how red your hair is. The Pheomelanin amount will have no effect if Melanin is set to 0. In the example below, Melanin is set to 0.4.
Example: Dye color
Applies a color tint to the hair. For a dyed hair look, set the Melanin to 0, otherwise the melanin darkens the dye color and pheomelanin introduces redness to it. White means no hair dye. In the example below, the Dye color is set to red(H=0,S=250,V=104) and we the hue value is adjusted. Melanin is set to 0.4.
Example: Softness
Controls the overall softness of the hair by how much the highlights are wrapped around the individual hair strands. Higher values make the highlights wrap almost completely around the strands giving the hair a smoother look, while lower values make the it look crisper. In the example below, the effect is also shown on a single hair strand. Melanin is set to 0.4.
Example: Highlight shift
Shifts the highlights along the hair strand. Positive values shift the highlight away from the root of the hair, while negative values move the highlight closer to the root. In the example below, Melanin is set to 0.6.
Example: IOR
Hair index of refraction. The typical IOR value for human hair is 1.55. The higher the value, the more reflective the hair strands. In the example below, Melanin is set to 0.6.
Glint
The Glint rollout provides control over the Glint (focused highlight) and the Glitter (focused colorless highlight) parameters.
Glint strength – Controls the strength of the colored highlights across and along the strand.
Glint variation – Adds a random glint variation along the strand. It affects the glint strength and orientation; the original secondary highlight strength and orientation; the softness, glossiness and highlight shift.
Glitter strength – Controls the glitter strength. Glitter is the additional more focused colorless highlight, which is randomly scattered along the strand. It is more pronounced with hard lighting produced by small or collimated light sources.
Glitter size – This parameter controls the size of the randomization pattern applied. Increasing the value increases the size of the pattern.
Glint scale – Internally, the variation along the strand is set in real world units. This parameter allows correction of the appearance of hair not modeled in real world scale. Values below 1.0 shrink the variation pattern, while values above 1.0 elongate it.
Example: Glint Strength
Controls the strength of the highlights along and across the hair strand. All other parameters are set to their default values.
Example: Glint Variation
The Glint Variation randomizes the glint effect along the strand. All other parameters are set to their default values.
Example: Glitter Size
The Glitter Size controls the size of the randomization pattern applied. The higher the value, the more variation. All other parameters are set to their default values.
Example: Glitter Strength
Controls the strength of the glitter highlights. The higher the value, the more pronounced the effect. All other parameters are set to their default values.
Example: Scale
Values below 1.0 shrink the variation pattern; values above 1.0 elongate it, so the effect is spread out.
Randomization Rollout
The Randomization parameters can be used to introduce variation of the general parameter values. When using randomization, different hair strands receive slightly different values for the below parameters, so in fact the randomization works on a per strand basis.
Random melanin – Adds variation to the amount of melanin in each hair strand.
Random dye hue – Adds variation to the hue component of the Dye color. This makes each strand appear with a different dye color. This parameter has no effect, when dye color is not used, i.e. when the Dye color is pure white.
Random dye saturation – Randomizes the saturation of the Dye color between hair strands. This makes each strand appear with a more or less saturated dye color. This parameter has no effect, when dye color is not used, i.e. when the Dye color is pure white.
Random dye value – Adds variation to the value component of the Dye color. This makes each strand appear with a brighter or darker dye color. This parameter has no effect, when dye color is not used, i.e. when the Dye color is pure white.
Random gray hair density – Adds variation to the number of gray hair strands. You can also assign a texture map to this parameter to specify areas where the density is higher.
Random glossiness – Randomizes the Glossiness of each hair strand.
Random softness – Assigns a random value for the Softness parameter for each strand. This makes some hair strands appear crisper, while other appear softer.
Random highlight shift – Adds variation to the Highlight shift for each strand. This offsets the highlights closer or further away from the root of the hair on a per strand basis.
Random IOR – Randomizes the IOR value for each hair strand. This makes some strands more reflective, and others - less reflective.
Random tangent – Adds a random offset to the hair tangent. This makes the hair stands receive light from slightly different directions, which also means that the highlights are placed in slightly different places for each strand. Note that this parameter depends on the scene scale.
Tint Rollout
Primary tint – The color tint for the primary component. Corresponds to the light reflected off of the outer surface of a hair strand. See the Primary tint example below.
Secondary tint – The color tint for the secondary component. Corresponds to the light piercing through and reflecting off of the back surface of a hair strand.
Transmission tint – The color tint for the transmission component. Corresponds to the light going through the hair strands.
Example: Primary tint
The color tint for the primary component. Corresponds to the light reflected off of the outer surface of a hair strand. In the example below the Primary tint color is set to pink (H=0,S=172,V=132) and we adjust its hue value.
Maps Rollout
The settings on the Maps rollout determine the various texture maps used by the material.
Advanced Rollout
Bounces – The number of indirect bounces used to compute the effect of the multiple scattering. It can significantly affect the hair appearance, especially for light colored hairs. The number of bounces necessary can vary from 5 for dark colored hairs, to 30 and more for light colored ones.
Compensate energy - When enabled, compensates for a lack of light bounces in areas where the hair is denser and light cannot pass sufficiently.
Example: Presets
Notes
- Proper gamma workflow is essential for realistic rendering of hair.
- To apply the VRayHairNextMtl material to a 3ds Max Hair & Fur modifier, use the mr Parameters section as described here.
References
Here is a list of references used when building the VRayHairNextMtl material.
- Chiang et al. "A Practical and Controllable Hair and Fur Model for Production Path Tracing" - 2016
(https://benedikt-bitterli.me/pchfm/) - Pharr "THE IMPLEMENTATION OF A HAIR SCATTERING MODEL" - 2016
(http://www.pbrt.org/hair.pdf) - d'Eon et al. "An Energy-Conserving Hair Reflectance Model" - 2011
(https://eugenedeon.com/pdfs/egsrhair.pdf) - d'Eon et al. "An Energy-Conserving Hair Reflectance Model" post publication review - 2011
(https://publons.com/publon/2803/) - d'Eon et al. "Importance Sampling for Physically-Based Hair Fiber Models" - 2013
(https://cg.ivd.kit.edu/publications/pubhanika/2013_hairbrief.pdf) - d'Eon et al. "A Fiber Scattering Model with Non-Separable Lobes - Supplemental Report" - 2014
(https://eugenedeon.com/pdfs/nonsephair2014.pdf) - Marschner et al. "Light Scattering from Human Hair Fibers" - 2003
(http://www.graphics.stanford.edu/papers/hair/hair-sg03final.pdf) - Zinke et al. "Light Scattering from Filaments" - 2007
(http://cg.cs.uni-bonn.de/project-pages/hairmodeling/documents/BFSDF_preprint_with_copyright_notice.pdf - no longer available) - Zinke (thesis) "Photo-Realistic Rendering of Fiber Assemblies" - 2008
(http://cg.cs.uni-bonn.de/en/publications/paper-details/Zinke2008a/ - no longer available) - Jakob (thesis) "Light Transport On Path-Space Manifolds" - 2012
(https://ecommons.cornell.edu/handle/1813/34189) - Yan et al. "Physically-Accurate Fur Reflectance: Modeling, Measurement and Rendering" - 2015
(https://cseweb.ucsd.edu/~ravir/paper_fur.pdf) - Yan et al. "An Efficient and Practical Near and Far Field Fur Reflectance Model" - 2017
(https://cseweb.ucsd.edu/~ravir/lingqi_fur2.pdf)