Skip to content

MaterialPhysicalHairFiber

MaterialPhysicalHairFiber#

(Hair Fiber)

Go to User page.

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
    }
}