HairAndFurΒΆ

The HairAndFur node is a procedural geometry node. It generates, duplicates, interpolates curves or instances over a scalp mesh.

In this documentation, we call guide curves the input curves which are duplicated or control the fur direction. We call fibers the final displayed curves. The scalp meshes are the meshes on which we will generate the fibers. Instances are the geometries which will be instanced.

Workflows

This procedural can be used in different workflows :

  • Simple fur : it generates fur on the scalp meshes with a lot of grooming options. Use this worlkflow for the grass, the cloth materials etc.. See the Generate Fur mode and the User Guide/Procedurals/Fur section.

    The basic fur and the fur with some polar noise.

  • Oriented fur : it generates fur on the scalp meshes, using textures to orient them. Use this worlkflow for non-dynamic creature fur. See the Generate Fur mode and the User Guide/Procedurals/Fur section.

    The basic fur, the direction map, the fur oriented by the map.

  • Guided fur : it generates fur on the scalp meshes and orient them with simulated guide curves. Use this workflow for the dynamic creature fur. See the Generate Fur mode and the User Guide/Procedurals/Fur section.

    The basic fur, the guide curves in red, the fibers guided by the guide curves.

  • Hair interpolation : it interpolates simulated guide curves to get a high hair density and add grooming details. Use this workflow for dynamic creature hairs. See the Interpolate Guides mode and the User Guide/Procedurals/Hair section.

    The guide curves in red, the interpolated fibers and the guide curves.

  • Hair replication : it replicates the input guide curves in order to add surface attributes on them, like st or the surface normal. See the Replicate Guides mode.

    The guide curves in red, the replicated fibers.

  • Instancing : it generates instances on the scalp meshes with a lot of grooming options. Use this workflow to populate a forest or a ground with instances. See the Generate instances mode and the User Guide/Procedurals/Instances section.

    The basic instancing and the instancing with some polar noise.

    Like the fur, the instances can also be oriented with a texture or some guide curves.

    The basic instancing, the direction map, the instances oriented by the map.

    The basic instancing, the guide curves in red, the instances guided by the guide curves.

Implentation

Geometry Mode

Controls how the procedural generates the fibers or the instances.

  • Interpolate Guides : the fibers geometry is interpolated from the guide curves. This is the mode for the hair duplication. This mode needs guide curves.
  • Generate Fur : the fibers geometry is controlled by the procedural (see curvature). The guides are optional. If present, they control the inclination and the orientation of the fibers.
  • Replicate Guides : the fibers are the exact copy of the guide curves. This can be used to check the guide curves or to generate the parameters (st, normals) on guide curves with no parameters. This mode needs guide curves.
  • Fill Nurbs : Fill the linked Nurbs cylinders (as Scalp) with fibers.
  • Generate Instances : the geometries linked in Instances are instanciated in place of the fibers.

Implantation Mode

Controls the baking and the reading of implantation data. Implantation data (the final fiber positions on the scalp meshes and the guide selection per fiber) are stored in the Hair node.

  • Disabled : no data are generated or read.
  • Baked : the data are generated after the next display update or render of the hairs.
  • Read : the data are read from the baked ones.

Guides

The guides are objects composed of curves. Those guide curves can be duplicated (mode Interpolate Guides) or can guide the generated fur (mode Generate Fur). Those parameters control the guide selection and interpolation process.

Selection Radius

Radius of the circle that selects the guides root vertices around a scalp position. This radius is expressed in the procedural local space.

Selection Radius Shader Out

The scalp shader output that multiplies the selection radius.

N Select Min

Minimum number of guides to select.

N Select

Maximum number of guides to select.

Seed

The random generator seed. Modify this value to generate a different set of fibers using the same parameters.

Interpolation

Blend factor between the duplication and the interpolation mode.

  • 0 : the fibers are fully duplicated from a single guide of the selection.
  • 1 : the fibers are the result of the interpolation of all the selected guides.
  • 0.5 : the result is a blend of the interpolated and the duplicated fibers.

Transplant Method

Indicates how guides are duplicated or interpolated into fibers.

  • Legacy : guides are duplicated in tubular like strands of fibers.
  • Smooth : guides are duplicated using the scalp normal.

Interpolation Shader Out

The scalp shader output that multiplies the interpolation.

Interpolation Method

Indicates which method to use for guides interpolation.

  • Spherical : guides are averaged using their distance to the fiber, with the formula (d-Radius)^p..
  • Shepard : guides are interpolated with the formula ((d-Radius)/(Radius*d))^p. p is the interpolation parameter below.

Interpolation Parameter

The interpolation method's parameter.

Scalp

The scalp are polygonal objects on which the guide curves will be interpolated or the fur generated. This section control how the scalp objects can be modified before using them.

Scalp Subdivision

Subdivision level to apply to the scalp mesh before generating hairs on it.

Scalp Displace

If true, the procedural will displace the scalp mesh using its displace shader before generating hairs on it.

Object Id

The name of the object id variable of the scalp to use for instances.

Geometry

Those parameters control the geometry of the fibers.

Scale

Global scale of the length and the width of the fibers.

Segments Per Fiber

Number of segments per fiber curve.

  • 0 : Use the same segment count than the first connected curve.
  • > 0 : Force the final number of segment per fibers.

Density

Those parameters control the fibers density.

Density

Controls the fiber density. The density is expressed in fiber per surface unit in the procedural local space.

The density set to 100, 1000 and 10000.

Density Exponent

Controls the fiber density with a exponential control. This parameter is equivalent to the density, but has an exponential scale instead of a linear scale. Increasing the exponent by 1 multiplies the density by 2.

Density Noise

Controls the amount of density noise.

The density noise set to 0 and 1.

Density Noise Frequency

Controls the frequency of the density noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The density noise frequency set to 1, 2 and 4.

Density Shader Out

The scalp shader output that multiplies the density.

The density with no shader, the fur using the checker texture for the density, the texture displayed on the scalp mesh.

Width

Those parameters control the fibers width.

Use Guides Width

Whenever possible, use the guides width. Otherwise, use the absolute width (see below.)

Absolute Width

If the original guides have no width, or in 'Generate Fur' mode, this value is the fiber width

The absolute with set to 0.001, 0.002 and 0.004.

Root Width

Fiber root width multiplier.

Tip Width

Fiber tip width multiplier.

The tip with set to 1.0 and 0.0.

Width Shader Out

The scalp shader output that multiplies the width.

Length

Those parameters control the fibers length.

Absolute Length

In 'Generate Fur' mode, this value is the fiber length

The length set to 1.0, 0.5 and 0.25.

Length Mode

Controls the length is applied, either by scaling the whole fibers, our cutting the fiber from the tip.

Length Min

Minimal value that multiplies the guide length.

The length min set to 1.0 and 0.0.

Length Max

Maximum value that multiplies the guide length.

Length Balance

Balance between length min and length max.

Length Shader Out

The scalp shader output that multiplies the length.

The length without and with the gradient texture applied on the scalp object.

Length Noise

Controls the amount of length noise.

Length Noise Frequency

Controls the frequency of the length noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The length noise frequency set to 1, 2 and 4.

Fur Curvature

Those parameters control the generated fur curvature.

Root Curvature

Controls the curvature at the root of the fiber. Used only in 'Generate Fur' mode.

The root curvature set to 0.5, 0.6 and 0.7.

Curvature Shader Out

The scalp shader output added to Root Curvature.

The root curvature without and with a gradient texture.

Root Curvature Noise

Controls the amount of root curvature noise.

Root Curvature Noise Frequency

Controls the frequency of the root curvature noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The root curvature noise frequency set to 1, 2 and 4.

Tip Curvature

Controls the curvature at the tip of the fiber. Used only in 'Generate Fur' mode.

The tip curvature set to 0.5, 0.6 and 0.7.

Curvature Shader Out

The scalp shader output added to Tip Curvature.

The tip curvature without and with a gradient texture.

Tip Curvature Noise

Controls the amount of tip curvature noise.

Tip Curvature Noise Frequency

Controls the frequency of the tip curvature noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The tip curvature noise frequency set to 1, 2 and 4.

Orientation

Those parameters control the fibers orientation.

Axis Direction

Controls the fiber local space, either the using the surface normal, the world Y direction, or using explicitely the X, Y and Z directions set on the scalp/point cloud.

X Shader Out

Controls the X axis of the base matrix.

Y Shader Out

Controls the Y axis of the base matrix.

Z Shader Out

Controls the Z axis of the base matrix.

Axis Space

The space frame of the axis values.

Polar

Controls the fiber rotation around the scalp normal.

The polar set to 0.0, 0.33 and 0.66.

Polar Noise

Controls the amount of polar noise.

Polar Noise Frequency

Controls the frequency of the polar noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The polar noise frequency set to 1, 2 and 4.

Polar Shader Out

The scalp shader output added to Polar.

The polar without and with a gradient texture in polar mode.

The polar without and with a direction texture in direction mode.

Polar Shader Mode

The scalp shader can return a polar value (1D) or a direction value (3D).

  • Angle : the shader value is a grey scale polar value between [0,1] added to Polar.
  • Direction : the shader value returns a 3D vector in the scalp tangent space. The vector components are stored between [0,1]. The texture complies with the Mari® direction maps. The fur and instances inclination can also be controlled by this map. Use the Fur Guide Inclination attribute for that.

Inclination

Controls the fiber rotation around the scalp tangent vector.

The inclination set to 0.0 and 0.5.

Inclination Noise

Controls the amount of inclination noise.

Inclination Noise Frequency

Controls the frequency of the inclination noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The inclination noise frequency set to 1, 2 and 4.

Inclination Shader Out

The scalp shader output added to Inclination.

The inclination without and with a gradient texture.

Fur Guide Inclination

Amount of guide/direction inclination to use.

  • 0 : the guides inclination or the direction map inclination are not used in the final fiber inclination. Only the polar angle is used.
  • 1 : the guides inclination or the direction map inclination are fully used in the final fiber inclination.
This parameter is used only in 'Generate Fur' mode with some guide curves or with a polar map in 'Direction' mode.

Roll

Controls the fiber rotation around the second scalp tangent.

Roll Noise

Controls the amount of roll noise.

Roll Noise Frequency

Controls the frequency of the roll noise. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

Roll Shader Out

The scalp shader output added to Roll.

Scraggle

Those parameters control the scraggle effect. This effect add noise on the fibers vertices.

Scraggle

The scrabble add noise on the fiber vertices. This parameter controls the amount of noise.

The scraggle set to 0.0, 0.2, 0.5 and 1.0.

Scraggle Frequency

Controls the frequency of the scraggle noise along the curve. The frequency is a factor of the curve 'v' parameter. The bigger the frequency is, the sharper the noise is.

The scraggle frequency set to 2 and 10.

Scraggle Surface Frequency

Controls the frequency of the scraggle noise along the scalp. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The scraggle surface frequency set to 2 and 10.

Perturbation

Those parameters control the perturbation effect. This effect add noise on the fibers direction.

Perturbation

The perturbation add noise in the fiber direction. This parameter controls the amount of noise.

The perturbation set to 0.0, 2.5, 5.0 and 10.0.

Perturbation Shader Out

The scalp shader output that multiplies the perturbation.

Perturbation Shape

Controls the frequency of the perturbation noise along the scalp. The frequency is a factor of the scalp 'st' parameters. The bigger the frequency is, the sharper the noise is.

The perturbation shape set to 0, 1, 2 and 4.

Clumping

Those parameters control the cluming effect. This effect groups bunch of fibers together.

Clumping Mode

The cluming can be done on the guide curves or on some fibers.

  • Guides : use the guides as clamping target
  • Fibers : use fibers as clamping target

Clumping Density

The density of fiber clamping targets. The density is expressed in fiber per surface unit in the procedural local space. This parameter is used only in 'Fiber' clamping mode.

The clumping density set to 1, 10 and 50.

Clumping Density Shader Out

The scalp shader output that multiplies the clumping density.

Clumping Tip

Amount of cluming at the fiber tip.

  • 0 : no clumping
  • 1 : fully clumped
  • -1 : inverted clumping

The clumping tip set to 0 and 1.

Clumping Tip Shader Out

The scalp shader output that multiplies the clumping tip.

The clumping tip without and with a gradient texture.

Clumping Middle

Amount of cluming at the fiber middle position.

  • 0 : no clumping
  • 1 : fully clumped
  • -1 : inverted clumping

The clumping middle set to 0 and 1.

Clumping Middle Shader Out

The scalp shader output that multiplies the clumping middle.

The clumping middle without and with a gradient texture.

Clumping Root

Amount of cluming at the fiber root.

  • 0 : no clumping
  • 1 : fully clumped
  • -1 : inverted clumping

The clumping root set to 0 and 1.

Clumping Root Shader Out

The scalp shader output that multiplies the clumping root.

The clumping root without and with a gradient texture.

Clumping Ratio

Amount of clumped fibers.

  • 0 : no fibers are clamped
  • 1 : all the fibers are clamped
  • 0.5 : half of the fibers are clamped

The clumping ratio set to 0.0, 0.5, 0.75 and 1.0.

Clumping Ratio Shader Out

The scalp shader output that multiplies the cluming ratio.

The clumping ratio without and with a gradient texture.

Clumping Middle Position

Offset of the middle position on the fiber.

  • 0 : The middle position is merged with the root.
  • 0.5 : The middle position is in the middle of the fiber.
  • 1 : The middle position is merged with the tip.

The clumping middle pos set to 0.25, 0.5 and 0.75.

Clumping Middle Position Shader Out

The scalp shader output that multiplies the clumping middle position.

Flatness

The flatness parameter flatten the fibers by a projection on the plane tangent to the scalp surface, at the curve basis. If driven by a mindist shading node, this parameter can be used to dynamically (at render time) flatten the fibers with an object, like a foot crushing the grass.

Flatness

Flatten the fibers.

  • When flatten, the fibers are sticked on a virtual plane having the same normal than the scalp position from where the fiber starts.
  • 0 : the fiber are not flatten.
  • 1 : the fiber are fully flatten.

The flatness set to 0.0, 0.25, 0.5 and 0.75.

Flatness Shader Out

The scalp shader output that multiplies the flatness.

The flatness without and with a gradient texture.

Crazy Hairs

Those parameters control the crazy hair effect. This effect add some randomness in a fiber subset.

Crazy Hairs Ratio

Amount of crazy fibers.

  • 0 : no crazy fibers
  • 1 : all the fibers are crazy

The crazy hair ratio set to 0.0, 0.1, 0.5 and 1.0.

Crazy Hairs Amplitude

Random perturbation maximum distance.

The crazy hair amplitude set to 0.0, 0.25, 0.5 and 1.0.

Crazy Hairs Amplitude Shader Out

The scalp shader output that multiplies the crazy hair amplitude.

The crazy hair amplitude without and with a gradient texture.

Crazy Hairs Smooth

Blend between the vertex and the global random perturbations.

  • 0 : use only the vertex preturbation. The curve is perturbed at every vertex with different random values.
  • 1 : use only the global preturbation. The curve is perturbed at every vertex with the same random value.

The crazy hair smooth set to 0.25, 0.5, 0.75 and 0.95.

Crazy Hairs Attenuation

Root attenuation of the perturbation.

  • 0 : the crazy effect is done on all the curve.
  • 1 : the crazy effect is gradually noticeable along the curve.

The crazy hair attenuation set to 0.0, 0.5 and 1.0.

Crazy Hairs Exclude From Clumping

Excludes the crazy hairs from clumping.

Wind

Those parameters control the wind effect.

Wind Strength

Amount of wind.

The wind strength set to 0.0, 1.0 and 2.0.

Wind Mode

The wind can be radial or linear.

  • Radial : the wind is emitted from the [Center X, Center Z] position.
  • Linear : the wind is emitted in the polar direction gived by 'Wind Direction'.

The wind mode set to Radial and Linear.

Wind Center X/Z

The wind source position for the 'Radial' mode. This is a 2d world position.

The wind center X/Z set to -0.25, 0.0 and 0.25.

Wind Direction

The wind direction for the 'Direction' mode. This is a polar direction between [0, 1].

The wind direction set to 0.0, 0.33 and 0.66.

Wind Speed

The wind speed in wave length per seconds.

Wind Wave Length

The wind wave length in world units.

The wind wave length set to 0.1, 0.25 and 0.5.

Curls

Those parameters control the curling effect.

Curls Radius

The radius of the curls in the procedural space.

The curl radius set to 0.0, 0.005 and 0.01.

Curls Radius Shader Out

The scalp shader output that multiplies the curls radius.

Curls Radius Noise

The amount of noise in the curls radius.

The curl radius noise end set to 0.0 and 1.0.

Curls Radius Noise Frequency

Controls the frequency of the curls radius noise along the curve. The frequency is a factor of the curve 'v' parameter. The bigger the frequency is, the sharper the noise is.

The curl radius noise frequency set to 1.0, 4.0 and 20.0.

Curls Radius Noise Offset

Controls the curl radius noise offset.

Curls Spin

The number of spins the hair will do around the fiber curve.

The curl spin set to 1.0, 4.0 and 10.0.

Curls Spin Noise

The amount of noise in the curls spins.

The curl spin noise set to 0.0 and 1.0.

Curls Spin Noise Frequency

Controls the frequency of the curls spin noise along the curve. The frequency is a factor of the curve 'v' parameter. The bigger the frequency is, the sharper the noise is.

The curl spin noise frequency set to 1.0, 2.0 and 4.0.

Curls Spin Noise Offset

Controls the curl spin noise offset.

Curls Surface Noise Frequency

Controls the frequency of the curls radius and spin noise along the scalp. The frequency is a factor of the scalp 'st' parameter. The bigger the frequency is, the sharper the noise is.

The curl spin noise surface frequency set to 0.1 and 4.0.

Curls Start

Control the progressive start of the curling.

The curl start set to 0.0, 0.5 and 1.0.

Curls End

Control the progressive ending of the curling.

The curl end set to 0.0, 0.5 and 1.0.

Offset

Those parameters add an offset to the fibers.

Offset

Add an offset to the curve along the scalp normal vector.

The offset set to 0.0 and 0.1.

Offset Shader Out

The scalp shader output that multiplies the offset.

The offset without and with a gradient texture.

Attributes

Those parameters add shading attributes to the fibers.

Generate ST

Add in the fiber the scalp ST parameters. This parameter can be used in the hair shader to texture the fibers.

Generate N

Add in the fiber the scalp normal. This parameter can be used in the hair shader to light the fibers using the scalp normal.

Generate ID

Add a unique ID attribute per fiber. The ID is the fiber number, starting at 0. The ID is generated in the shader variable 'float12'. It can be used in the shader to add some random colors per fiber.

Generate ClumpID

Add a unique ID attribute per clump. The ID is the clumping guide number, starting at 0. The ClumpID is generated in the shader variable 'float13'. It can be used in the shader to add some random colors per clump.

Extra Attributes

The list of extra attributes to read from the scalp and transmit.

LOD

The Level of detail can be used to fade out or blend different levels of detail of fur. Using this technique, you can generate the fur around the camera.

The isolated LOD levels 1, 2, 3, and the 3 levels together.

Level 1 Enable

Enable this level of detail level. If enabled, the procedural is view dependent, meaning the procedural is recomputed each time the camera moves.

Level 1 Far

The maximum distance this level of detail is visible.

The LOD 1 far set to 20.0, 35.0 and 50.0.

Level 1 Fade

The distance used to smoothly fade out the level of detail. This distance is also used to blend with the next LOD level. The fading is done using a sampling technique to ensure no visual artefact.

The LOD 1 fade set to 0.0 and 10.0. The two first LODs blended using the previous fade distance.

Level 2 Enable

Enable this level of detail level. If enabled, the procedural is view dependent, meaning the procedural is recomputed each time the camera moves.

Level 2 Far

The maximum distance this level of detail is visible.

The LOD 2 far set to 60.0, 75.0 and 100.0.

Level 2 Fade

The distance used to smoothly fade out the level of detail.

Level 2 Density Mul

The density factor to apply to this level of detail. If < 1, the number of fibers will be reduced in this level of detail.

The LOD 2 density mul set to 0.1, 0.25 and 0.5.

Level 2 Width Mul

The width factor to apply to this level of detail. If > 1, the width of the fibers will be enlarged.

The LOD 2 width mul set to 1.0, 2.0 and 4.0.

Level 3 Enable

Enable this level of detail level. If enabled, the procedural is view dependent, meaning the procedural is recomputed each time the camera moves.

Level 3 Far

The maximum distance this level of detail is visible.

Level 3 Fade

The distance used to smoothly fade out the level of detail.

Level 3 Density Mul

The density factor to apply to this level of detail. If < 1, the number of fibers will be reduced in this level of detail.

Level 3 Width Mul

The width factor to apply to this level of detail. If > 1, the width of the fibers will be enlarged.

Advanced

Verbose

Display informations about the hair process in the console.

OpenGL Ratio

Amount of the fibers to display in the OpenGL viewport.

  • 0.1 : 10 percent of the fibers are visible.
  • 1.0 : All the fibers are visible.

Bounds Extension

Extends the Hair bounding box. You may need to extend the Hair bounding box if for some reason, some hairs go outside of the computed bounding box.

Motion Steps

Number of motion blur steps.

  • 0 : use the maximum motion steps available in the scalp and the guides
  • 1 : no motion blur
  • N : force the number of motion steps.

Group Instance Prims

Generate instances as a single group of primitives, instead of instanciating the primitives separately. This can reduce the amount of memory consumed by instances when each instance is composed of several individual objects, but increases the rendering time.

Scalp Poly Batch

The number of polygons scanned per batch. When dealing with scalps with polygons covered with large number of individual curves, decrease this value to improve the performances.

Use Frustum Culling

Enable/disable Frustum Culling for the Fur generation.

Scalp

The link button to select the scalp mesh. Only a single scalp mesh is allowed

Scalp Set

The object set to assign as scalp. Only a single scalp mesh is allowed

Guides

The link button to select the guide curves. You can select multiple guide curves or guide curve bunch, but they should have the same number of vertices and have the same set of parameters.

Guides Set

The object set to assign as guides. You can select multiple guide curves or guide curve bunch, but they should have the same number of vertices and have the same set of parameters.

Instances

The link button to select the instanced objects. You can select multiple instances.

Instances Set

The object set to assign as instances. You can select multiple instances.