Houdini 20.5 Nodes Geometry nodes

Fur geometry node

Creates a set of hair-like curves across a surface.

On this page

The Fur SOP creates a set of curves to represent hairs growing out from surface polygons or a point cloud. CVEX shaders can be applied to manipulate attributes and the shape of the generated curves.

When surface polygons are provided, the number of generated curves is a result of the density multiplied by the area of the skin polygons. The area of the skin polygons is taken from the optional area attribute or calculated from the vertex positions described by the optional rest attribute or point positions.

You can also generate hairs for explicitly provided positions for the roots. For example, with a point cloud wired into the first input. However, you will need to specify the normal (N) attribute, and the rest direction (restxdir, restydir, and restzdir).

The optional second input provides guide curves. The shape of the guide curves are interpolated to determine the shape of the generated curves (before CVEX shaders are applied) ignoring the Length and Vertices, on the Fur SOP. Specify a Float3 primitive attribute called guideorigin on the guide curve geometry to use location-based interpolation. When the guideorigin attribute is present, Guide Radius will indicate the size of the area influenced by each guide curve.

The optional third input provides clump curves. The clumporigin and clumpradius attributes on the clump curves are used to map each generated curve to a clump.

The optional fourth input provides curves for parting lines.

Attributes

The Fur SOP uses the following attributes from the input geometries.

Name

Source

Class

Type

Description

area

Skin

Primitive

Float

This attribute describes the area of each polygon in the skin geometry. This affects the number of curves generated by the primitive. This attribute is optional, if missing the area of each primitive will be computed.

clumporigin

Clumps

Primitive

Float3

Describes where each clump originates on the rest skin.

clumpradius

Clumps

Primitive

Float

Maximum distance from the clump origin hairs may originate and still be a member of the clump.

furdensity

Skin

Any

Float

This attribute is used as a scalar multiplier to the Density parameter and affects the number of generated curves. If this value is reduced by a CVEX skin shader, some curves will be removed to reflect the lowered density value. This attribute is optional, if missing a value of 1 is used.

guideorigin

Guides

Primitive

Float3

Describes where each guide originates on the rest skin.

guideradius

Guides

Primitive

Float

Maximum distance from the guide origin hairs may originate and still be affected by the guide.

N

Skin

Point

Float3

If guide hairs are not used, this attribute describes the direction of generated curves.

rest

Skin

Point or Vertex

Float3

This attribute describes the rest position of each point in the skin geometry. This affects the calculation of each polygon’s area when determining the number of generated curves. This value is also used to map each generated curve to a clump. This attribute is optional, if missing the point’s position is used.

The Fur SOP makes the following special attributes available to the CVEX shaders:

Name

Class

Type

Description

clumpP

Vertex

Float3

Describes the position of each vertex in the associated clump hair. This attribute is only available in the Guide Shader.

clumproot

Primitive

Float3

Describes the position on the skin from which each clump hair is grown.

hairid

Primitive

Integer

Contains a unique ID for each generated curve. This is a read-only attribute.

hairroot

Primitive

Float3

Describes the position on the skin from which each hair is grown.

hairdist

Vertex

Float

Describes each vertex’s parameterized distance along the curve in the [0, 1] range. This attribute is only available in the Guide Shader.

P

Point

(point position)

Describes the position of each vertex in the generated hairs. This attribute is only available in the Guide Shader.

restxdir

Primitive

Float3

Describes the x-axis direction of the rest attribute as a world space direction. The Fur SOP only provides this value if surface polygons are used to describe the skin.

restydir

Primitive

Float3

Describes the y-axis direction of the rest attribute as a world space direction. The Fur SOP only provides this value if surface polygons are used to describe the skin.

restzdir

Primitive

Float3

Describes the z-axis direction of the rest attribute as a world space direction. The Fur SOP only provides this value if surface polygons are used to describe the skin.

The Fur SOP can be used to interpolate (and manipulate using CVEX shaders) any attribute. The following are some related attributes used by mantra.

Name

Type

Description

orient

Float3

Hint direction for orienting the ribbons used to represent curves.

width

Float

Width of the rendered curves.

Parameters

Fur

Group

Primitives in the skin geometry from which to grow hair.

Primitive Type

Type of geometry to create.

Polygon

Create a polyline.

NURBS

Create a NURBS curve.

Segments

Number of segments in each generated curve (ignored if geometry is provided by the “Guides” input).

Length

Specifies the length of the generated curves.

Seed

Seed value for the random number generator.

Density

The number of generated curves is a result of the density multiplied by the area of the skin polygons. The value of this parameter acts as a scalar multiplier to the optional furdensity attribute to determine the curve density.

Display Ratio

Specifies a fraction of the curves to display.

Guide Radius

Maximum distance a hair can be from a guide hair and still be influenced by the guide hair.

Clump Radius

Maximum distance a hair can be from a clump and still be a member of the clump.

Use Closest Clump

Associates each hair with its closest clump.

Remove Unclumped Hairs

Removes all hairs not associated with a clump.

Remove Unguided Hairs

Removes all hairs not influenced by a guide hair.

Parting Radius

Maximum distance a hair can be from a parting line and still be affected by the parting line.

Attributes

Skin

Skin Shader

The Skin Shader parameter specifies a CVEX SHOP to manipulate attributes interpolated from the skin geometry. Each attribute has a single value for each generated curve. A unique value for each curve is available for reading in the hairid value. In the case of the furdensity variable, reducing the value will result in hairs being removed but increasing the value has no effect.

New Class

Class for transferred attributes.

Skin Attributes

Specifies a list of attributes from the skin geometry that will be transferred to the generated curves. The resulting attribute values will contain any modifications made by CVEX shaders.

Set Hair ID

Creates a hairid attribute containing a unique value for each generated curve.

Guide

Guide Shader

The Guide Shader parameter specifies a CVEX SHOP to manipulate attributes interpolated from the guide and clump geometries. Each attribute has a separate value for each vertex in the generated curves. The special P variable may be used to manipulate the vertex position.

New Class

Class for transferred attributes.

Guide Attributes

Specifies a list of attributes from the guide and clump curves that will be transferred to the generated curves. The resulting attribute values will contain any modifications made by CVEX shaders.

Examples

Clumping Example for Fur geometry node

The Fur SOP is used to instance hair-like curves.

In this case, the Fur SOP is used to create curves that can be used for clumping. A second Fur SOP is used to illustrate how to create hairs that use the clumping geometry.

FurBall Example for Fur geometry node

This example demonstrates how the Fur SOP builds hair-like curves based on guide curves and skin geometry.

FurBallWorkflow Example for Fur geometry node

This example demonstrates how the Fur SOP and Mantra Fur Procedural can be applied to an animated skin geometry. CVEX shaders are used to apply a custom look to the hairs based upon attributes assigned to the geometry.

FurPipelineExample Example for Fur geometry node

This example illustrates how custom shaders can be used to define the appearance of fur generated by the Fur SOP.

FurRandomScale Example for Fur geometry node

This example demonstrates how a CVEX shader can be used to apply procedural effects to the curves generated by the Fur SOP. All attributes from the Fur SOP’s guide geometry and the skin geometry inputs are made available to the CVEX shaders. The CVEX shader makes use of the attributes, a unique identifier for each curve, “fur_id”, and the position of each point, “P”.

FurTextureMap Example for Fur geometry node

This example demonstrates how to use a texturemap to color fur.

PointFur Example for Fur geometry node

This example demonstrates the use of points to provide specific placement of the roots of hairs.

Shaved Example for Fur geometry node

This example demonstrates how to use a texture to control hair density.

See also

Geometry nodes