MaterialPhysicalHairFiber#
(Hair Fiber)
- Category:
/Material/Physical
- Default object name:
hair_fiber
- Inherits from: ProjectItem > Material > MaterialPhysical
Description#
Physically-based shader for hair and fur fibers.
Public Attributes#
Type | Name | Visual Hint | Description |
---|---|---|---|
double |
melanin_amount |
VISUAL_HINT_PERCENTAGE |
Concentration of natural melanin pigment: low to high values result in hair color gradually ranging between white, blond, brown/auburn/red (depending on melanin mixture) and black. |
double |
melanin_redness |
VISUAL_HINT_PERCENTAGE |
Relative mixture of pheomelanin (yellow/red pigment) compared to eumelanin (brown/black pigment): at intermediate melanin concentrations, mixtures from 0% to 100% result in hair color gradually ranging between brown, auburn and red. |
double |
dye_mix |
VISUAL_HINT_PERCENTAGE |
Relative blend of artificial dye pigment compared to natural melanin pigment. |
double[3] |
dye_albedo |
VISUAL_HINT_COLOR |
Custom apparent color of artificial dye pigment (a white pigment does not absorb any light). |
double |
highlight_roughness |
VISUAL_HINT_PERCENTAGE |
Apparent longitudinal roughness along the fibers (between the roots and the tips). |
double |
fiber_softness |
VISUAL_HINT_PERCENTAGE |
Apparent azimuthal roughness across the fibers (within their cross-sections). |
double |
cuticle_tilt |
VISUAL_HINT_ANGLE |
Tilt angle of the cuticle scales: positive values shift the reflection highlight toward the tip and the transmission and scattering highlights toward the root, whereas negative values shift all three highlights in the opposite direction. Set to 0 degrees for synthetic hair without cuticle scales, while typical values for human hair range between 2 and 4 degrees. |
double |
index_of_refraction |
VISUAL_HINT_DEFAULT |
Refractive index of the dielectric surface of the fibers: higher values give stronger Fresnel reflections and scattering inside the fibers, whereas lower values give stronger transmission through the fibers (as with wet hair). |
double[3] |
reflection_tint |
VISUAL_HINT_COLOR |
Color tint of light that is directly reflected off the fibers surface (a.k.a. R lobe). |
double[3] |
transmission_tint |
VISUAL_HINT_COLOR |
Tint modifying the color of light that is directly transmitted through the interior of the fibers (a.k.a. TT lobe). |
double[3] |
single_scattering_tint |
VISUAL_HINT_COLOR |
Tint modifying the color of light that bounces once inside the fibers (a.k.a. TRT lobe). |
double[3] |
multiple_scattering_tint |
VISUAL_HINT_COLOR |
Tint modifying the color of light that bounces multiple times inside the fibers (a.k.a. TRR+T lobe). |
Inherited Public Attributes#
Type | Name | Visual Hint | Description |
---|---|---|---|
bool |
export_aovs |
VISUAL_HINT_DEFAULT |
Compute and write Aovs defined in the shading graph |
reference (AovStore ) |
arbitrary_output_variables |
VISUAL_HINT_DEFAULT |
Set the list of extra channels to write to the image. |
string |
light_path_expression_label |
VISUAL_HINT_DEFAULT |
Set the material label in light path expressions. |
long |
material_sample_count |
VISUAL_HINT_SAMPLE_PER_PIXEL |
Material sample count per pixel. |
double |
glossy_reflection_sampling_multiplier |
VISUAL_HINT_SCALE |
Material glossy reflection sample count multiplier. |
double |
glossy_transmission_sampling_multiplier |
VISUAL_HINT_SCALE |
Material glossy transmission sample count multiplier. |
double |
russian_roulette |
VISUAL_HINT_PERCENTAGE |
Amount of Russian roulette used on the material samples. |
double |
roughness_noise_optimization |
VISUAL_HINT_PERCENTAGE |
Noise reduction strategy along rough light path. |
long |
glossy_reflection_depth |
VISUAL_HINT_DEFAULT |
Maximum glossy reflection depth. |
long |
glossy_transmission_depth |
VISUAL_HINT_DEFAULT |
Maximum glossy transmission depth. |
double[3] |
opacity |
VISUAL_HINT_COLOR |
Opacity of the material. |
long |
normal_mode |
VISUAL_HINT_DEFAULT |
Define which geometric normal to use for the shading. |
long |
shadow_casting_mode |
VISUAL_HINT_DEFAULT |
Defines the properties of the material when casting shadows: fully opaque (regardless of the actual value of the opacity of the material), artistic (user-defined opacity and coloring), pseudo-caustics (cheaply emulating actual refractive caustics) or physical (intrinsic transparency of the material), where the last three are modulated by the opacity of the material. |
double |
shadow_opacity |
VISUAL_HINT_PERCENTAGE |
Defines how dark the shadows cast by this material are. |
double |
shadow_coloring |
VISUAL_HINT_PERCENTAGE |
Defines how much refraction and absorption colors affect shadowing. |
long |
reflective_caustics |
VISUAL_HINT_DEFAULT |
Reflective caustics computation mode. |
long |
refractive_caustics |
VISUAL_HINT_DEFAULT |
Refractive caustics computation mode. |
CID#
class "MaterialPhysicalHairFiber" "MaterialPhysical" {
#version 1
icon "material_hair.iconrc"
doc "Physically-based shader for hair and fur fibers."
attribute_group "base" {
percentage "melanin_amount" {
doc "Concentration of natural melanin pigment: low to high values result in hair color gradually ranging between white, blond, brown/auburn/red (depending on melanin mixture) and black."
texturable yes
animatable yes
slider yes
numeric_range yes 0.0 1
ui_range yes 0.0 1
value 0.8
}
percentage "melanin_redness" {
doc "Relative mixture of pheomelanin (yellow/red pigment) compared to eumelanin (brown/black pigment): at intermediate melanin concentrations, mixtures from 0% to 100% result in hair color gradually ranging between brown, auburn and red."
texturable yes
animatable yes
slider yes
numeric_range yes 0.0 1
ui_range yes 0.0 1
value 0.25
}
percentage "dye_mix" {
doc "Relative blend of artificial dye pigment compared to natural melanin pigment."
texturable yes
animatable yes
slider yes
numeric_range yes 0.0 1
ui_range yes 0.0 1
value 0.0
}
color "dye_albedo" {
doc "Custom apparent color of artificial dye pigment (a white pigment does not absorb any light)."
texturable yes
animatable yes
read_only yes
value 0.9 0.6 0.3
}
}
attribute_group "base>surface" {
collapsed yes
percentage "highlight_roughness" {
doc "Apparent longitudinal roughness along the fibers (between the roots and the tips)."
texturable yes
animatable yes
slider yes
numeric_range yes 0.0 1
ui_range yes 0.0 1
value 0.25
}
bool "anisotropic_roughness" {
doc "Set whether the azimuthal roughness is driven by the longitudinal roughness, or whether it is defined independently."
hidden yes
value yes
}
percentage "fiber_softness" {
doc "Apparent azimuthal roughness across the fibers (within their cross-sections)."
texturable yes
animatable yes
slider yes
numeric_range yes 0.0 1
ui_range yes 0.0 1
value 0.65
}
angle "cuticle_tilt" {
doc "Tilt angle of the cuticle scales: positive values shift the reflection highlight toward the tip and the transmission and scattering highlights toward the root, whereas negative values shift all three highlights in the opposite direction. Set to 0 degrees for synthetic hair without cuticle scales, while typical values for human hair range between 2 and 4 degrees."
texturable yes
animatable yes
slider yes
numeric_range yes -90 90
ui_range yes -10 10
value 3
}
double "index_of_refraction" {
doc "Refractive index of the dielectric surface of the fibers: higher values give stronger Fresnel reflections and scattering inside the fibers, whereas lower values give stronger transmission through the fibers (as with wet hair)."
texturable yes
animatable yes
slider yes
numeric_range yes 0.0 1.79769313486232e+308
ui_range yes 1 4
value 1.55
}
}
attribute_group "base>tint" {
collapsed yes
color "reflection_tint" {
doc "Color tint of light that is directly reflected off the fibers surface (a.k.a. R lobe)."
texturable yes
animatable yes
value 1 1 1
}
color "transmission_tint" {
doc "Tint modifying the color of light that is directly transmitted through the interior of the fibers (a.k.a. TT lobe)."
texturable yes
animatable yes
value 1 1 1
}
color "single_scattering_tint" {
doc "Tint modifying the color of light that bounces once inside the fibers (a.k.a. TRT lobe)."
texturable yes
animatable yes
value 1 1 1
}
color "multiple_scattering_tint" {
doc "Tint modifying the color of light that bounces multiple times inside the fibers (a.k.a. TRR+T lobe)."
texturable yes
animatable yes
value 1 1 1
}
}
set "diffuse_sampling_multiplier" {
null_label "Use Renderer Settings"
null_value "-1.0"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 1000
ui_range yes 0.0 10
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable yes
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "subsurface_sampling_multiplier" {
null_label "Use Renderer Settings"
null_value "-1.0"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 1000
ui_range yes 0.0 10
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable yes
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "volume_sampling_multiplier" {
null_label "Use Renderer Settings"
null_value "-1.0"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 1000
ui_range yes 0.0 10
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable yes
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "multiple_scattering_strength" {
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 1
ui_range yes 0.0 1
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value 1
}
set "diffuse_depth" {
null_label "Use Renderer Settings"
null_value "-1"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 65536
ui_range yes 0.0 16
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "specular_reflection_depth" {
null_label "Use Renderer Settings"
null_value "-1"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 65536
ui_range yes 0.0 16
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "specular_transmission_depth" {
null_label "Use Renderer Settings"
null_value "-1"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 65536
ui_range yes 0.0 16
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "volume_depth" {
null_label "Use Renderer Settings"
null_value "-1"
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range yes 0.0 65536
ui_range yes 0.0 16
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value -1
}
set "normal_input" {
private no
hidden yes
saveable yes
texturable yes
animatable yes
slider no
numeric_range yes 0.0 1
ui_range yes 0.0 1
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
value 1
}
set "sidedness" {
private no
hidden yes
saveable yes
texturable no
animatable no
slider no
numeric_range no 0.0 1
ui_range no 0.0 1
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
preset "Single" "0"
preset "Double" "1"
preset "Invert" "2"
value 0
}
set "shadow_casting_mode" {
private no
hidden no
saveable yes
texturable no
animatable no
slider no
numeric_range no 0.0 1
ui_range no 0.0 1
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
preset "Opaque" "0"
preset "Artistic" "1"
preset "Physical" "3"
preset "Pseudo-Caustics" "2"
value 3
}
set "reflective_caustics" {
private no
hidden no
saveable yes
texturable no
animatable no
slider no
numeric_range no 0.0 1
ui_range no 0.0 1
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
preset "Off" "0"
preset "Glossy only" "1"
preset "Specular only" "2"
preset "Full" "3"
value 3
}
set "refractive_caustics" {
private no
hidden no
saveable yes
texturable no
animatable no
slider no
numeric_range no 0.0 1
ui_range no 0.0 1
dg_active yes
dg_cyclic no
dirtiness_pass_through no
read_only no
shading_variable no
experimental no
advanced no
overriden no
promote_attribute no
allow_expression yes
localizable yes
preset "Off" "0"
preset "Glossy only" "1"
preset "Specular only" "2"
preset "Full" "3"
value 3
}
}