Houdini 20.5 Nodes Shader nodes

Mantra: Fur Procedural shader node

Creates a set of hair-like curves across a surface at render time.

On this page

The Mantra Fur Procedural 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.

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 Mantra Fur Procedural. 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 Mantra Fur Procedural 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 Mantra Fur Procedural 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 Mantra Fur Procedural 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

Main

Skin

Path to an object containing skin geometry.

Guides

Path to an object containing guide hairs.

Clumps

Path to an object containing clump center geometry.

Expand Bounds

Allows you to adjust the bounds of the bounding box to compensate for any fur that may have been moved outside of the original bounds by a shader.

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.

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

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

IFD Bounds

Bounding Box

The bounding box controls let you specify a bounding box for the referenced geometry. Only when this bounding box is “on screen” will mantra load the referenced geometry. You can set Bounding Box to No bounding box required, in which case mantra will always load the references geometry regardless. You can also specify the bounding box by referencing the SOP’s bounding box in the SOP Bounds parameter.

SOP Bounds

The geometry whose bounding box you want to reference.

Min Bounds

The minimum bounding box dimensions, when setting explicit bounds.

Max Bounds

The maximum bounding box dimensions, when setting explicit bounds.

Shader nodes