GroomLab

Color patterns

Banded fur, patterned and iridescent feathers, downy bases.

Feathers patterned by GroomLab: bars, an eye spot, iridescence from two angles
Bars and a downy base, an eye spot, iridescence face-on and turned

HairColor colors more than one tone a strand. Every pattern renders the same in Maya's viewport, the standalone app and Arnold, bakes into game cards and exports to Unreal.

Banded fur

Agouti, ticked, tipped and shaded coats: each hair changes color along its length.

  • bandAmount turns the bands on (0-1, mappable).
  • bandMelanin, bandRedness, bandDye: the band's pigment, in the same terms as the hair's own.
  • bandProfile: a ramp from root to tip, 0 the hair's color, 1 the band's. bands repeats it (ticked fur: three or four).
  • bandJitter and bandWidthJitter shift and stretch each hair's bands a little, so they never line up across the coat: what makes agouti read.
  • Guard hairs: guards is the share of hairs that take the bands and the tip; the rest is a plain undercoat (tinted by undercoatDye). guardsBy picks them at random or the longest.
  • A black tip is the tip color as before (tipColor, tipAmount, a tipProfile near 1); a shaded coat is a long, soft tip profile.

The agouti_fur preset puts it together.

Feather patterns

After a Propagate, HairColor draws in each feather's own flat space: the feather laid out with its shaft up the middle. A bar crosses many barbs, each at its own place along the barb, which no along-the-strand color can do.

featherPatternWhat it draws
barsBands across the vane: patternCount a feather, patternWidth, patternAngle (tilt), patternSharpness
chevronsV-shaped bands mirrored across the shaft (patternAngle: the arms, try 30)
spotspatternCount rows of spots, patternWidth their size
fringeThe vane's edge: the last patternWidth of every barb
eyeAn eye spot at patternOffset along the feather; patternProfile makes its rings
textureYour painting: featherTexture is the feather laid flat (root at the bottom, left vane on the left, alpha where it covers); add featherTextureRight for one image per vane
  • The pattern's color is patternMelanin, patternRedness and patternDye (white bars: melanin 0).
  • patternVanes: both, or one vane (left and right as seen from the vane's top, tip up).
  • patternJitter, patternScaleJitter, patternRotationJitter vary each feather, so no two match.
  • It works on scattered shafts, hand-placed ones and Split assortments alike. Put the HairColor inside a design's compound for one image per design.

A downy base

On Propagate, down (0.2-0.4) turns the barbs at the shaft's base into soft, curly down (an afterfeather): downCount, downLength, downCurl, downFrizz. HairColor's downColor and downAmount color them.

Iridescence

Structural color, not pigment: iridescence (mappable, per point) makes the strands shimmer toward iridescenceColor when they face you, the hue turning by iridescenceShift as they turn edge-on (on a feather, the vane's angle to the view). iridescenceOn limits it to one vane, or to where the feather pattern is (or is not).

  • Arnold: Create Hair Shader builds the same as a ramp on the camera's angle to each strand's normal (an approximation: within a few hue degrees face-on and edge-on). Arnold's hair shader renders the patterns' colors lighter and softer than the viewport does (it adds light scattered through many hairs); they sit in the same places.
  • Game cards carry it in the Color map's alpha; Unreal strands as groom_iridescence (and in groom_ao with Iridescence as AO, which Unreal's Hair Attributes node reads). See Game export for the Unreal material.

The barred feather design (groomlab.add_feathers(groom, "barred")) is a barred feather with a green iridescent outer vane and a white downy base.

On this page