Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page provides information on the V-Ray Hair Next Material.

 

Overview


Section
Column
width60%

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).

 

UI Expand
titleUI Path: ||Material Editor|| > Material/Map Browser...

||Material Editor|| > Material/Map Browser > Materials > V-Ray > VRayHairNextMtl


||V-Ray Toolbar|| > V-RayMtl (hold left click to display a dropdown list)

 

||V-Ray menu|| > Create > Materials > VRayHairNextMtl

Column
width10%

 

Column
width35%

 

General Parameters


Section
Column
width60%

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.

UI Text Box
typenote

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.

Column
width5%

 

Column
width35%

 

Anchor
exampleMelanin
exampleMelanin
 
Anchor
examplePheomelanin
examplePheomelanin

 

Section
Column
width10%

 

Column
width30%

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.

Column
width20%

 

Column
width30%

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.

Column
width10%

 

Section
Column
width50%
Image slider
minLabel0.1
maxLabel1.0
Panel
borderStylenone


Melanin = 0.1

Panel
borderStylenone


Melanin = 0.2

Panel
borderStylenone


Melanin = 0.3

Panel
borderStylenone


Melanin = 0.4

Panel
borderStylenone


Melanin = 0.5

Panel
borderStylenone


Melanin = 0.6

Panel
borderStylenone


Melanin = 0.7

Panel
borderStylenone


Melanin = 0.8

Panel
borderStylenone


Melanin = 0.9

Panel
borderStylenone


Melanin = 1.0

Column
width50%
Image slider
minLabel0.1
maxLabel1.0
Panel
borderStylenone


Pheomelanin = 0.1

Panel
borderStylenone


Pheomelanin = 0.2

Panel
borderStylenone


Pheomelanin = 0.3

Panel
borderStylenone


Pheomelanin = 0.4

Panel
borderStylenone


Pheomelanin = 0.5

Panel
borderStylenone


Pheomelanin = 0.6

Panel
borderStylenone


Pheomelanin = 0.7

Panel
borderStylenone


Pheomelanin = 0.8

Panel
borderStylenone


Pheomelanin = 0.9

Panel
borderStylenone


Pheomelanin = 1.0

 

Anchor
exampleDyeColor
exampleDyeColor
 
Anchor
exampleSoftness
exampleSoftness

Section
Column
width10%

 

Column
width30%

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.

Column
width20%

 

Column
width30%

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.

Column
width10%

 

Section
Column
width50%
Image slider
minLabel0
maxLabel255
Panel
borderStylenone


Dye color (hue) = 0

Panel
borderStylenone


Dye color (hue) = 26

Panel
borderStylenone


Dye color (hue) = 51

Panel
borderStylenone


Dye color (hue) = 77

Panel
borderStylenone


Dye color (hue) = 102

Panel
borderStylenone


Dye color (hue) = 128

Panel
borderStylenone


Dye color (hue) = 153

Panel
borderStylenone


Dye color (hue) = 179

Panel
borderStylenone


Dye color (hue) = 204

Panel
borderStylenone


Dye color (hue) = 230

Panel
borderStylenone


Dye color (hue) = 255

Column
width50%
Image slider
minLabel0.1
maxLabel1.0
Panel
borderStylenone


Softness = 0.1

Panel
borderStylenone


Softness = 0.2

Panel
borderStylenone


Softness = 0.3

Panel
borderStylenone


Softness = 0.4

Panel
borderStylenone


Softness = 0.5

Panel
borderStylenone


Softness = 0.6

Panel
borderStylenone


Softness = 0.7

Panel
borderStylenone


Softness = 0.8

Panel
borderStylenone


Softness = 0.9

Panel
borderStylenone


Softness = 1.0

 

Anchor
exampleHighlightShift
exampleHighlightShift
 
Anchor
exampleIOR
exampleIOR

Section
Column
width10%

 

 

 

Column
width30%

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.

Column
width20%

 

Column
width30%

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.

Column
width10%

 

Section
Column
width50%
Image slider
minLabel1
maxLabel11
Panel
borderStylenone


Highlight shift = 1

Panel
borderStylenone


Highlight shift = 2

Panel
borderStylenone


Highlight shift = 3

Panel
borderStylenone


Highlight shift = 4

Panel
borderStylenone


Highlight shift = 5

Panel
borderStylenone


Highlight shift = 6

Panel
borderStylenone


Highlight shift = 7

Panel
borderStylenone


Highlight shift = 8

Panel
borderStylenone


Highlight shift = 9

Panel
borderStylenone


Highlight shift = 10

Panel
borderStylenone


Highlight shift = 11

Column
width50%
Image slider
minLabel1.55
maxLabel3.55
Panel
borderStylenone


IOR = 1.55

Panel
borderStylenone


IOR = 1.80

Panel
borderStylenone


IOR = 2.05

Panel
borderStylenone


IOR = 2.30

Panel
borderStylenone


IOR = 2.55

Panel
borderStylenone


IOR = 2.80

Panel
borderStylenone


IOR = 3.05

Panel
borderStylenone


IOR = 3.30

Panel
borderStylenone


IOR = 3.55

Glint


Section
Column
width60%

The Glintrollout 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.

Column
width5%

 

Column
width35%

 

 

 

Section
Column
width10%

 

 

 

Column
width30%

Example: Glint Strength

 

Controls the strength of the highlights along and across the hair strand. All other parameters are set to their default values.

Column
width20%

 

Column
width30%

Example: Glint Variation

 

The Glint Variation randomizes the glint effect along the strand. All other parameters are set to their default values.

Column
width10%

 

 

Section
Column
Image slider
minLabel0.0
startIndex5
maxLabel1.0
Panel

Glint Strength = 0.0

Panel

Glint Strength = 0.1

Panel

Glint Strength = 0.2

Panel

Glint Strength = 0.3

Panel

Glint Strength = 0.4

Panel

Glint Strength = 0.5

Panel

Glint Strength = 0.6

Panel

Glint Strength = 0.7

Panel

Glint Strength = 0.8

Panel

Glint Strength = 0.9

Panel

Glint Strength = 1.0

Column
Image slider
minLabel0.0
startIndex5
maxLabel1.0
Panel

Glint Variation = 0.0

Panel

Glint Variation = 0.1

Panel

Glint Variation = 0.2

Panel

Glint Variation = 0.3

Panel

Glint Variation = 0.4

Panel

Glint Variation = 0.5

Panel

Glint Variation = 0.6

Panel

Glint Variation = 0.7

Panel

Glint Variation = 0.8

Panel

Glint Variation = 0.9

Panel

Glint Variation = 1.0

 


 


Section
Column
width10%

 

 

 

Column
width30%

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.

Column
width20%

 

Column
width30%

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.

Column
width10%

 

Section
Column
Image slider
minLabel0.01
maxLabel1000
Panel

Glitter Size=0.01

Panel

Glitter Size = 0.1

Panel

Glitter Size = 1.0

Panel

Glitter Size = 10

Panel

Glitter Size = 100

Panel

Glitter Size = 1000

Column
Image slider
minLabel0.0
maxLabel1.0
Panel

Glitter Strength = 0.0

Panel

Glitter Strength = 0.1

Panel

Glitter Strength = 0.2

Panel

Glitter Strength = 0.3

Panel

Glitter Strength = 0.4

Panel

Glitter Strength = 0.5

Panel

Glitter Strength = 0.6

Panel

Glitter Strength = 0.7

Panel

Glitter Strength = 0.8

Panel

Glitter Strength = 0.9

Panel

Glitter Strength = 1.0




Example: Scale

 

Values below 1.0 shrink the variation pattern; values above 1.0 elongate it, so the effect is spread out.

 

Section
Column
width25%

 

Column
width50%
Image slider
minLabel0.01
maxLabel1000
Panel

Scale = 0.01

Panel

Scale = 0.1

Panel

Scale = 1.0

Panel

Scale = 10

Panel

Scale = 100

Panel

Scale = 1000

Column
width25%

 


Randomization Rollout


Section
Column
width60%

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.

Column
width5%

 

Column
width35%

Tint Rollout


Section
Column
width60%

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.

Column
width5%

 

Column
width35%

 

Anchor
examplePrimaryTint
examplePrimaryTint


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.

 

Section
Column
width25%

 

Column
width50%
Image slider
minLabel0
maxLabel255
Panel
borderStylenone


Primary tint (hue) = 0

Panel
borderStylenone


Primary tint (hue) = 26

Panel
borderStylenone


Primary tint (hue) = 51

Panel
borderStylenone


Primary tint (hue) = 77

Panel
borderStylenone


Primary tint (hue) = 102

Panel
borderStylenone


Primary tint (hue) = 128

Panel
borderStylenone


Primary tint (hue) = 153

Panel
borderStylenone


Primary tint (hue) = 179

Panel
borderStylenone


Primary tint (hue) = 204

Panel
borderStylenone


Primary tint (hue) = 230

Panel
borderStylenone


Primary tint (hue) = 255

Column
width25%

 


Maps Rollout


Section
Column
width60%

The settings on the Maps rollout determine the various texture maps used by the material.

Column
width5%

 

Column
width35%

 

Advanced Rollout


Section
Column
width60%

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.

Column
width5%
 
Column
width35%

 



Anchor
presets
presets

Example: Presets

 

Section
Column
width25%

 

Column
width50%
Image slider
Panel
borderStylenone

White

Panel
borderStylenone

White (Fur)

Panel
borderStylenone

Sandy Blond

Panel
borderStylenone

Golden Blond

Panel
borderStylenone

Light Brown

Panel
borderStylenone

Dark Brown

Panel
borderStylenone

Aged Dark Brown

Panel
borderStylenone

Ginger Red

Panel
borderStylenone

Auburn

Panel
borderStylenone

Scarlet Red (Dyed)

Panel
borderStylenone

Atlantic Blue (Dyed)

Panel
borderStylenone

Lagoon Blue (Dyed)

Panel
borderStylenone

Black

Column
width25%

 

Notes


Fancy Bullets
typecircle
  • 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.

   


Here is a list of links and references used when building the VRayHairNextMtl material.

[1] Chiang et al. "A Practical and Controllable Hair and Fur Model for Production Path Tracing" - 2016
     (https://benedikt-bitterli.me/pchfm/)
[2] Pharr "THE IMPLEMENTATION OF A HAIR SCATTERING MODEL" - 2016
      (http://www.pbrt.org/hair.pdf)
[3] d'Eon et al. "An Energy-Conserving Hair Reflectance Model" - 2011
      (http://www.eugenedeon.com/project/an-energy-conserving-hair-reflectance-model/)
[4] d'Eon et al. "An Energy-Conserving Hair Reflectance Model" post publication review - 2011
      (https://publons.com/publon/2803/)
[5] d'Eon et al. "Importance Sampling for Physically-Based Hair Fiber Models" - 2013
      (https://cg.ivd.kit.edu/publications/pubhanika/2013_hairbrief.pdf)
[6] d'Eon et al. "A Fiber Scattering Model with Non-Separable Lobes - Supplemental Report" - 2014
      (http://www.eugenedeon.com/project/a-fiber-scattering-model-with-non-separable-lobes/)
[7] Marschner et al. "Light Scattering from Human Hair Fibers" - 2003
      (http://www.graphics.stanford.edu/papers/hair/hair-sg03final.pdf)
[8] Zinke et al. "Light Scattering from Filaments" - 2007
      (http://cg.cs.uni-bonn.de/project-pages/hairmodeling/documents/BFSDF_preprint_with_copyright_notice.pdf)
[9] Zinke (thesis) "Photo-Realistic Rendering of Fiber Assemblies" - 2008
      (http://cg.cs.uni-bonn.de/en/publications/paper-details/Zinke2008a/)
[10] Jakob (thesis) "Light Transport On Path-Space Manifolds" - 2012
      (https://ecommons.cornell.edu/handle/1813/34189)
[11] Yan et al. "Physically-Accurate Fur Reflectance: Modeling, Measurement and Rendering" - 2015
      (https://cseweb.ucsd.edu/~ravir/paper_fur.pdf)
[12] Yan et al. "An Efficient and Practical Near and Far Field Fur Reflectance Model" - 2017
      (https://cseweb.ucsd.edu/~ravir/lingqi_fur2.pdf)