The Curves material aims to render hair or fur geometry with a realistic look. This kind of geometry is made up of hundreds of thousands long fibers, each fiber is cylinder shaped with an ellipse cross section and exibits microscopic tilted surface scales. This structure requires a specific shader to account the behavior of light scattering inside the fiber.
Guerilla Render provides a curve shader node, that exposes one diffuse and three specular components. Our reflectance model is based on Marschner's paper which is physically correct but has been tweaked to stay artist friendly and controllable.
The three components comes from the light that scatters inside the fiber:
- The primary specular (R)
- The secondary specular (TRT)
- The back lighting (TT)
All components together
Primary specular only
Secondary specular only
Back lighting only
Color parametersGlobal Color
This is the global color of the hair. This color affects all the components except the primary specular which has its own colorRoot Color / Tip Color
The root and tip colors are interpolated along the curve and multiplied by the global color.Hue/Value Random
Add some random in the hair color hue/value. 0 : no perturbation. 1 : full perturbationMutant Color
The color for the mutant hairsMutant Ratio
The ratio of mutant hairsSelf Shadow
Self shadow add a gradient from the black to the white on the hair color to simulate self shadowing near the root of the curves. 0 : no self shadowing, 1 : full self shadowing.Self Shadow Position
Shift the self shadow gradient along the curve. 0 : the self shadow effect is shifted to the root, the result is brighter. 1 : the self shadow effect is shifted to the tip, the result is darker.
The Curves shader with all the opacity attributes at 1
The Curves shader with the Opacity attribute at 0.5
Opacity control. 0 : Fully transparent. 1 : fully opaque. This parameter has no effect in shadows.Shadow Opacity
The Curves shader with the Shadow Opacity attribute at 0.5
Shadow opacity control. 0 : Fully transparent. 1 : fully opaque.Tip Fade
The Curves shader with the Tip Fade attribute at 0
Add an opacity gradient at the end of the curves to slowly fade the tip. 0 : the gradient starts from the root of the curve, 1 : the gradient starts from the end (so no gradient at all)
The diffuse component of the lighting is based on Kajiya-Kay model that used the hair tangent instead of a surface normal.Color
The color of the diffuse.
The scale of the diffuse component.
curves (default) : the diffuse shading is done using the curve tangent vector.
surface : the diffuse shading is done using the surface normal used to generate this curve. The diffuse component is then constant along the hair and matchs the diffuse lighting on the surface at the base of the curve. *
* The N attribute is needed on the curves to get this effect. You have to check the "Generate N" checkbox in the HairAndFur procedurals.
Primary specular parameters
The main bright highlight is due to the reflection of the light onto the hair surface. This highlight is usually whiter and smaller than the secondary specular highlight.Color
The specular color.
The scale of the primary specular component.
The width of the specular highlight. Increasing this value makes reflections more and more rough (or less and less shiny).
The specular highlight shift. For primary speculars, this value should be small. This shift is caused by the tilt of the scales forming the cuticle of the fiber.
Secondary specular parameters
The second main bright highlight is due to internal reflection off the back side of the fiber. Secondary specular parameters color, intensity, width and shift work in a similar way than for the primary specular. Usually the color for brown, red or blond hairs should be something close to the diffuse since the light passing through the hair structure tints the reflection. The secondary specular can be disabled for black hairs. The width should be bigger compared to the first specular and must be shifted toward the tip so that the secondary highlight is visible just above the primary one.
The secondary specular parameters (TRT component) excludes the glints. The glints are randomized sharp peaks formed by light that goes through the hair fiber and forms caustics. Glint are randomized because the hair fiber is not perfectly round but rather has an ellipse shape that varies over its length. Separating the glints make the shader more controlable. Glints parameters color, intensity, width and shift work in a similar way than for the secondary specular.Half angle
The half angle is the half angle between two glints. The angle should be for each hair fiber a randomized value between 30 and 45 degrees.
Back lighting parameters
Back lighting is due to the light that passes through the hair fibers and causes brown, red, and blond hair to look very bright when lit from behind in respect to the camera position. Back lighting parameters color, intensity, width and shift work in a similar way than for the primary specular.Azimuth width
The azimuth width.