CurvesΒΆ

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



Diffuse only



Primary specular only



Secondary specular only



Glints only



Back lighting only



Color parameters

Global Color

This is the global color of the hair. This color affects all the components except the primary specular which has its own color

Root 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 perturbation

Mutant Color

The color for the mutant hairs

Mutant Ratio

The ratio of mutant hairs

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

Opacity parameters


The Curves shader with all the opacity attributes at 1

Opacity


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)

Diffuse parameters

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.



Intensity

The scale of the diffuse component.



Diffuse Mode

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.



Intensity

The scale of the primary specular component.



Width

The width of the specular highlight. Increasing this value makes reflections more and more rough (or less and less shiny).



Shift

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.

Glints parameters

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.