Go to: Related nodes. Attributes.

This node is used to dynamically simulate long hair motion with collision. This takes an array of start and rest positions from follicle nodes and computes an array of output hair positions(point arrays). When the current time input steps forward this computes a new position based on its current position. When the time is rewound to the start frame it sets the positions to the input start hair positions.

Node name Parents MFn type Compatible function sets
hairSystem shape kHairSystem kBase
kNamedObject
kDependencyNode
kDagNode
kShape
kHairSystem

Related nodes

follicle, hairConstraint, nurbsCurve, pfxHair

Attributes (156)

Attribute quick index omitted (too many attributes to show them all).

Long name (short name) Type Default Flags
simulationMethod (sim) enum 3 outputinputconnectablestorablekeyable
This controls the simulation level. If Off is selected then there is no output. Static positions the output hair aways at the start position with no dynamics(totally stiff). Dynamic Follicles Only will avoid generating output for passive follicles(if any). This is useful for faster preview of complex hairsystems. All Follicles will compute the full simulation.
inputHair (ih) hairCurve NULL arrayoutputinputconnectablestorable
Input hair
inputHairPin (ihp) hairPin NULL arrayoutputinputconnectablestorable
Input hair pin constraints
collide (cld) bool true outputinputconnectablestorablekeyable
If true then collide with connected objects.
collideOverSample (cos) integer 0 outputinputconnectablestorablekeyable
This allows one to adjust the quality collision sampling. larger values will help keep hairs from pushing through surfaces.
selfCollide (scd) bool false outputinputconnectablestorablekeyable
If true then simulate hair/hair interaction.
collideGround (cdg) bool false outputinputconnectablestorablekeyable
If true then collide with an infinite plane at the ground height. This collision does not impact the speed of the solution, unlike geometry collisions.
groundHeight (ghe) double 0.0 outputinputconnectablestorablekeyable
When collide ground is on, this determine the height of the ground plane.
evaluationOrder (evo) enum 1 outputinputconnectablestorable
This determines whether hair segments are evaluated in a cumulative or an order independant fashion. The sequential mode has a slight bias towards the root of the hair, but creates hair that is stiffer and less stretchy for a fixed number of iterations. Thus the sequential mode can allow for faster simulations because one can use lower iterations settings.
stiffness (sfn) double 0.15 outputinputconnectablestorablekeyable
The amount the hair can flex with regard to the rest position.
stiffnessScale (sts) compound n/a arrayoutputinputconnectablestorablekeyable
Stiffness Scale affects the stiffness from root to tip of the hair. The left of the graph is the root and the right is the tip. Typically the root of a hair is thicker and thus stiffer than the tip. This attribute multiplies the stiffness parameter value, so a value of 1.0 will leave the stiffness unchanged. If the stiffness attribute is zero then this parameter will have no effect, as zero times a number is always zero.
stiffnessScale_Position (stsp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
stiffnessScale_FloatValue (stsfv) float 0.0 outputinputconnectablestorablekeyable
Ramp value at the sibling position
stiffnessScale_Interp (stsi) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
lengthFlex (lfx) double 0.0 outputinputconnectablestorablekeyable
The amount the hair can stretch along its length.
damp (dmp) double 0.0 outputinputconnectablestorablekeyable
This dampens the internal motions of individual hairs. It is particularily useful to help stabilize shaped hair when one has a defined rest position.
drag (drg) double 0.05 outputinputconnectablestorablekeyable
This simulates friction with the air, in addition to helping to stabilize the simulation. When the damp is 1.0 the hair will behave as if it has no inertial motion or followthrough: it will move as if in a thick fluid.
friction (frc) double 0.5 outputinputconnectablestorablekeyable
This simulates friction with on contact with other surfaces.
mass (mss) double 1.0 outputinputconnectablestorablekeyable
This controls the simulated mass of the hair cvs. This currently will only show an effect if one applies external fields that consider mass, such as drag.
dynamicsWeight (dw) double 1.0 outputinputconnectablestorablekeyable
Scale factor for the effect of attached dynamic fields on the hair motion.
collideWidthOffset (wid) double 0.0 outputinputconnectablestorablekeyable
This value is added to clumpWidths before determining collisions. The amount is relative to the clump width. It can be used to handle situations where there is some interpenetration, or where one has passive hairs that are outside the boundaries of active clumps. In cases where the hairs collide too far off an object, one can use negative values to allow a little interpenetration of clumps.
staticCling (stc) double 0.0 outputinputconnectablestorablekeyable
This value determines the amount of local attraction between self colliding hair clumps. It simulates static cling and friction between hair clumps. Self collide must be on for this to have an effect. Motion of masses of hair tend to be very damped due to the effects of self collision, friction and static. This can be helpful in achieving natural motion. Negative values can be used to make hairs repel from each other.
repulsion (rpl) double 0.5 outputinputconnectablestorablekeyable
This value determines the amount of repulsion when clumps are overlapping. When this is 1.0 clumps are pushed apart in a single timestep, although this may cause excessive motion in some cases, especially when clumps start out overlapping. Lowering this value can help damp such motion yet still preserve general body in the hair.
numCollideNeighbors (ncn) integer 4 outputinputconnectablestorablekeyable
This controls how many neighbor hairs to include in the self collision. Each hair clump with collide with the closest hairs( relative to the separation at the base of the hair on the start frame ). If this number is equal to the total number of clumps then all hairs will collide with all other hairs in the hair system, but the simulation will be slow.
iterations (itr) integer 4 outputinputconnectablestorablekeyable
This controls number of iterations per time step of the hair solver. This affects hair stiffness and length flex, as well as the accuracy of collisions. Large values are required for very high stiffness. Note that large value will also increase the time required by the solver
drawCollideWidth (dwd) bool false outputinputconnectablestorablekeyable
If true then draw circles around each line representing its width used for collision.
widthDrawSkip (wds) integer 2 outputinputconnectablestorablekeyable
This allows one to adjust the quality of the tube collide width drawing. A value of zero will cause a circle to be draw for every segment of the tube, which may clutter the display for tube with many segments.
gravity (grv) double 0.98 outputinputconnectablestorablekeyable
A built in downward force in y simulating gravity.
turbulenceStrength (tst) double 0 outputinputconnectablestorablekeyable
Increasing this will increase the amount of force applied by the turbulence
turbulenceFrequency (tfr) double 0.2 outputinputconnectablestorablekeyable
Lowering this will make the turbulence vortices larger. This is a spacial scale factor on the turbulence function and has no effect if the turbulence strength is zero.
turbulenceSpeed (tbs) double .2 outputinputconnectablestorablekeyable
Rate at which turbulence pattern changes over time
attractionDamp (ad) double 0.0 outputinputconnectablestorablekeyable
Attraction to the start curve is done by altering the current velocity of the hair so that it will meet the start position. This control damps out this value. When this value is one, the motion towards the start curve is fully damped leaving simply the start position plus field forces. This is useful for applying fields on top of previously animated hairs. To acheive this affect, you should set attractionDamp = 1.0 and make the stiffness ramp all 1.0.
startCurveAttract (sct) double 0.0 outputinputconnectablestorablekeyable
This value determines the amount of attraction of the current hair position to the start position. Normally one would leave this at zero for long flowing hair. However for short hair it can be difficult to make hair stiff enough. This is good when the hair needs to be very stiff, and yet at the same time have some dynamic properties. At a value of one the hair position will be the start curve position( relative to the transformed follicle position ), only collisions and forces will still deflect the hair. Without startCurveAttract this could otherwise require a very high iteration count and damp value, especially if there are many cvs per hair.
attractionScale (ats) compound n/a arrayoutputinputconnectablestorable
This value attenuates the startCurveAttract value along the length of the follicle. The left of the graph is the root and the right is the tip. If the startCurveAttract attribute is zero then this parameter will have no effect, as zero times a number is always zero.
attractionScale_Position (atsp) float 0.0 outputinputconnectablestorable
Position of ramp value on normalized 0-1 scale
attractionScale_FloatValue (atsfv) float 0.0 outputinputconnectablestorable
Ramp value at the sibling position
attractionScale_Interp (atsi) enum 0 outputinputconnectablestorable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
motionDrag (mdg) double 0.0 outputinputconnectablestorablekeyable
This value determines the amount the current hair is damped relative to the transform of the follicle. If this value is 1 then the hair will fully move with the follicle, but its shape can still be changed by other forces. Unlike startCurveAttract which makes the hair like a stiff spring this pushes the hair with the motion of the follicle, but allows it to change shape. It is as if there is a block of air or mud (depending on the motion damp intensity) that moves with the follicle and tends to drag the hair with it. The normal drag attribute instead drags relative to zero motion, rather than the motion of the follicle base. This is useful in making hair stiff with fewer iterations and it can simulate the combination of self collision of hairs along with friction and trapped air. The relative range of affect along the hairs for motion drag is scaled by the stiffness ramp. It looks most natural when there is more drag at the base.
displayQuality (dpq) double 100.0 outputinputconnectablestorablekeyable
percentage of hairs within clumps to display for interactive draw This corresponds to the display quality on paint effects strokes.
noStretch (nst) bool false outputinputconnectablestorablekeyable
If true then fix the length of the output hairs to be constant. The internal dynamic hairs will still stretch, but the output hair will be locked to the base point. Care should be taken when using this attribute. If the lengthFlex is low or the iterations are low then the dynamic computed hair may protrude much beyond the end of the rendered hair, and the behavior could look unnatural.
subSegments (ssg) integer 0 outputinputconnectablestorablekeyable
This determines the number of smoothly interpolated segments at render time. The hermite interpolation smooths the shape of the line, in addition to providing more detail for curls and fine features. The added segments affect the rendered look only, and do not affect the dynamic simulation.
clumpWidth (cwd) double 0.3 outputinputconnectablestorablekeyable
This is the base or maximum width for the dynamic hair groups.
clumpWidthScale (cws) compound n/a arrayoutputinputconnectablestorablekeyable
Clump Width Scale affects the width from root to tip of the hair clump. The left of the graph is the root and the right is the tip. Often one may wish the hairs within the clump to come to a tip at the end of the clump, in which case the right value should be smaller than the left. This attribute multiplies the clumpWidth parameter value, so a value of 1.0 will leave the clumpWidth unchanged. If the clumpWidth attribute is zero then this parameter will have no effect, as zero times a number is always zero.
clumpWidthScale_Position (cwsp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
clumpWidthScale_FloatValue (cwsfv) float 0.0 outputinputconnectablestorablekeyable
Ramp value at the sibling position
clumpWidthScale_Interp (cwsi) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
clumpTwist (ctw) double 0.0 outputinputconnectablestorablekeyable
This is the rotation of the clump group about the primary hair axis.
clumpCurl (clc) compound n/a arrayoutputinputconnectablestorablekeyable
Clump Curl controls the rate of curling about the primary axis of each hair clump. The left of the graph is the root and the right is the tip. The mid value of the ramp(0.5) represents no twist while values greater than that will result in positive twisting while smaller values will cause twisting in the reverse direction.
clumpCurl_Position (clcp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
clumpCurl_FloatValue (clcfv) float 0.0 outputinputconnectablestorablekeyable
Ramp value at the sibling position
clumpCurl_Interp (clci) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
clumpFlatness (cfl) compound n/a arrayoutputinputconnectablestorablekeyable
Clump Flatness affects the flatness of the clump group from root to tip. The left of the graph is the root and the right is the tip.
clumpFlatness_Position (cflp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
clumpFlatness_FloatValue (cflfv) float 0.0 outputinputconnectablestorablekeyable
Ramp value at the sibling position
clumpFlatness_Interp (cfli) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
bendFollow (bnf) double 1.0 outputinputconnectablestorablekeyable
This determines how much the rotation of the overall clump follows the primary hair axis. Short straight fur may work better with this value near zero, as the end of wide clumps will blend better when they twist. With this value at 1.0 the cross section of the hair clump will always be perpendicular to the tube direction, which can work well for long relatively thin clumps. When this value is zero the cross section is always perpendicular to the surface normal at the start of the hair clump.
hairWidth (hwd) double 0.01 outputinputconnectablestorablekeyable
This is the global width for hairs.
hairWidthScale (hws) compound n/a arrayoutputinputconnectablestorablekeyable
Hair Width Scale affects the width from root to tip of the hairs. The left of the graph is the root and the right is the tip. This attribute multiplies the hairWidth parameter value, so a value of 1.0 will leave the hairWidth unchanged. If the hairWidth attribute is zero then this parameter will have no effect, as zero times a number is always zero.
hairWidthScale_Position (hwsp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
hairWidthScale_FloatValue (hwsfv) float 0.0 outputinputconnectablestorablekeyable
Ramp value at the sibling position
hairWidthScale_Interp (hwsi) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
baldnessMap (bmp) double 1.0 outputinputconnectablestorablekeyable
This reduces the hair density using a texture. The texture used must be a 2D texture.
opacity (opc) double 1.0 outputinputconnectablestorablekeyable
This controls the overall transparency of the hair. A value of 0 is fully transparent and 1 is fully opaque.
hairColor (hcl) float3 outputinputconnectablestorable
Base color for hairs. The final color used is determined after the hairColorScale and randomization parameters are applied. Also individual hair clumps may override the hairColor.
hairColorR (hcr) float 0.3 outputinputconnectablestorablekeyable
hair Red value
hairColorG (hcg) float 0.25 outputinputconnectablestorablekeyable
hair Green value
hairColorB (hcb) float 0.15 outputinputconnectablestorablekeyable
hair Blue value
hairColorScale (hcs) compound n/a arrayoutputinputconnectablestorablekeyable
Hair Color defines the global color of the hairs from root to tip. The left of the graph is the root and the right is the tip.
hairColorScale_Position (hcsp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
hairColorScale_Color (hcsc) float3 outputinputconnectablestorablekeyable
Ramp color at the sibling position
hairColorScale_ColorR (hcscr) float 0.0 outputinputconnectablestorablekeyable
Ramp red channel value at the sibling position
hairColorScale_ColorG (hcscg) float 0.0 outputinputconnectablestorablekeyable
Ramp green channel value at the sibling position
hairColorScale_ColorB (hcscb) float 0.0 outputinputconnectablestorablekeyable
Ramp blue channel value at the sibling position
hairColorScale_Interp (hcsi) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
hairsPerClump (hpc) integer 10 outputinputconnectablestorablekeyable
This is the number of hairs rendered for each current position hair curve.
thinning (thn) double 0.0 outputinputconnectablestorablekeyable
This controls the proportion of shorter length hairs.
translucence (tlc) double 0.5 outputinputconnectablestorablekeyable
This allows light to filter through hair for a softer effect.
specularColor (spc) float3 outputinputconnectablestorable
input color for specular highlights
specularColorR (spr) float 0.35 outputinputconnectablestorablekeyable
specular Red value
specularColorG (spg) float 0.35 outputinputconnectablestorablekeyable
specular Green value
specularColorB (spb) float 0.3 outputinputconnectablestorablekeyable
specular Blue value
specularPower (spp) double 3.0 outputinputconnectablestorablekeyable
This allows light to filter through hair for a softer effect.
castShadows (csd) bool true outputinputconnectablestorablekeyable
This causes the hair to cast shadows(depthmap only).
diffuseRand (dfr) double 0.2 outputinputconnectablestorablekeyable
a diffuse brightness randomization between hairs in a clump
specularRand (sra) double 0.4 outputinputconnectablestorablekeyable
a specular brightness randomization between hairs in a clump
hueRand (chr) double 0.0 outputinputconnectablestorablekeyable
random deviation in hue of hairs
satRand (csr) double 0.0 outputinputconnectablestorablekeyable
random deviation in color saturation of hairs
valRand (cvr) double 0.0 outputinputconnectablestorablekeyable
random deviation in brighness value of hairs
multiStreaks (mst) integer 0 outputinputconnectablestorablekeyable
Multi Streaks is the number of added sub hairs for each hair in a clump. These hairs will share the same shape and shading as the base hair they are derived from. They are created at render time and are simple duplicates, and thus do not take up any shape computation. This allows one to have a great number of tubes and yet render them in a reasonable amount of time.
multiStreakSpread1 (ms1) double 0.3 outputinputconnectablestorablekeyable
the maximum offset for added hairs relative to the clump width
multiStreakSpread2 (ms2) double 0.1 outputinputconnectablestorablekeyable
the maximum offset for added tubes relative to the clump width at the tube tip
lightEachHair (leh) bool false outputinputconnectablestorablekeyable
Render times can be much faster if we share the same illumination for each hair in a multiStreak. If the multiStreak spread is relatively large or self shadowing between hairs within a multiStreak group is desired then lightEachHair should be enabled. Also enabling this could avoid popping artifacts in situations with moving hard edged shadows.
displacementScale (dsc) compound n/a arrayoutputinputconnectablestorablekeyable
Displacement Scale affects the amount of displacment applied from root to tip of the hair clump. This affects curl, noise and subclumps. If the left side is zero then the effect will be gradually added such that the root position of the hair is not changed.
displacementScale_Position (dscp) float 0.0 outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
displacementScale_FloatValue (dscfv) float 0.0 outputinputconnectablestorablekeyable
Ramp value at the sibling position
displacementScale_Interp (dsci) enum 0 outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
None: No interpolation is done; the different colors just show up as different bands in the final texture. Linear: The values are interpolated linearly in RGB color space. Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color. Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.
curl (crl) double 0.0 outputinputconnectablestorablekeyable
This is the amount of curl displacement applied to each hair. The amount of displacement is relative to the hair width. The clump curl creates large scale curls about the clump center, while this attribute creates curls about the direction of individual hairs.
curlFrequency (crf) double 10 outputinputconnectablestorablekeyable
This is the rate of curl. Larger values result in more curls
noiseMethod (nmt) enum 0 outputinputconnectablestorablekeyable
Random defines the noise as a wiggle for each hair with no relation to neighboring hairs. Surface UV defines the noise displacement volumetrically and is relative to the uv distribution of the hairs across the surface. The noise is a 3D volume with a scale in U and V across the surface with the 3rd dimension (W) mapped down the length of the hairs. Clump UV defines the noise relative to the clump, and while neighboring clumps have completely independant noises, the frequency of the noise is not affected by the surface parametric density. Random is good for fuzzy, kinky hair, while the other, smoother noise methods can provide natural shaping and sub structure to hair clumps.
noise (noi) double 0.0 outputinputconnectablestorablekeyable
This is the amount of perlin noise displacement of the hair. The amount of displacement is relative to the hair width when the noiseMethod is Random, otherwise it is relative to the clump width. This can create a knotted, kinky look to the hair.
detailNoise (dno) double 0.0 outputinputconnectablestorablekeyable
This is the amount of secondary high frequency noise added when smooth noise is used. It can add subtle detail on top of smooth undulations from the base noise. If non-zero a second noise offset calculation is performed so this can make evaluation of the hair slightly slower than the smooth noise with no detail noise.
noiseFrequency (nof) double 0.4 outputinputconnectablestorablekeyable
This is the spacial scale of the noise offset along hair. Increasing this value results in finer kinks in the hairs.
noiseFrequencyU (nfu) double 1.0 outputinputconnectablestorablekeyable
When smooth noise is used, this scales the noise frequency in the u parameter direction relative to the surface the hair is attached to.
noiseFrequencyV (nfv) double 1.0 outputinputconnectablestorablekeyable
When smooth noise is used, this scales the noise frequency in the v parameter direction relative to the surface the hair is attached to.
noiseFrequencyW (nfw) double 1.0 outputinputconnectablestorablekeyable
When smooth noise is used, this scales the noise frequency along the length of the hair.
subClumpMethod (scm) enum 0 outputinputconnectablestorablekeyable
This determines how sub clumps are defined in UV. If Surface UV is used the sub clumps are laid out relative to the overall surface uv space. Some follicles may thus share a clump with a neighbor follicle. The density of sub clumps with be affected by the parametric density of the surface the hair system is attached to. The total number of clumps across a surface will be the numUClumps times the numVClumps. If Clump UV is used then the number of subClumps for each clump will be the numUClumps times the numVClumps. All follicles, regardless of clump width, will have the same number of sub clumps and the width of the sub clumps will be relate to the clump width. With Surface UV the smaller clumps will have fewer sub clumps and the clump width would be relative to the parametric density of the surface.
subClumping (scp) double 0.0 outputinputconnectablestorablekeyable
This is the amount secondary clumps pull together. The sub clumping is useful for a wet look. The clumps are defined in a grid relative to the uv space of the surface the hair is attached to.
subClumpRand (scr) double 0.0 outputinputconnectablestorablekeyable
This randomizes the sub clumps with a noise function. The clumps will get smeared into irregular shapes with higher values.
numUClumps (nuc) double 15.0 outputinputconnectablestorablekeyable
This is the number of sub clumps in the u dimension of surface the hair system is attached to.
numVClumps (nvc) double 15.0 outputinputconnectablestorablekeyable
This is the number of sub clumps in the v dimension of surface the hair system is attached to.
clumpInterpolation (cin) double 0.0 outputinputconnectablestorablekeyable
This interpolates hairs between neighboring clumps Note that when this is not zero hairs are not contained within the clump boundaries, and thus collisions with a clump may not be correct.
interpolationRange (inr) double 8.0 outputinputconnectablestorablekeyable
This determines how far apart a clump may be and still interpolate with another clump. The distance is defined relative to the clump diameter, so a value of 1 would only interpolate clumps that just overlap.
currentTime (cti) time 0.0film outputinputconnectablekeyable
This is the current time used for the hair solution. By default, it is given an incoming connection from the main time node. This can be replaced with some other connection (e.g. from an expression or param curve), and then the solving is done based on that time value. There must be some incoming connection in order for the hairSystem object to play back.
startTime (sti) time 0.0film outputconnectablehidden
The time after which the simulation will be run for this hair object. This is set from the startFrame attribute. Users should set startFrame instead of this attribute.
startFrame (stf) double 1.0 outputinputconnectablestorablekeyable
This is the frame after which the simulation will run. Nothing will play back for this object prior to startFrame.
lastEvalTime (lst) time -1.0film outputinputhidden
This gets the value from currTime "copied" into it at the end of the solving process. This attribute affects no others so that requesting this attribute does not trigger any other evaluation. Because of the timing of when this attribute gets set, it should not be used by users as reliable data. It is for internal computation only.
inputForce (ifc) vectorArray empty arrayoutputinputconnectable
This is the input multi-attribute where any fields acting on this particle object are connected. These are accumulated in the computePlug() section for aForce, along with other forces like goals.
fieldData (fd) compound n/a outputconnectablehidden
This is the compound that holds all of the default attribute for the fields to connect to. The contents are just sharing the data from the real attributes.
fieldDataPosition (fdp) vectorArray empty outputconnectablehidden
This is the default place that the fields will get this particle object's position data from. It will share the data from aPosition.
fieldDataVelocity (fdv) vectorArray empty outputconnectablehidden
This is the default place that the fields will get this particle object's velcoity data from. It will share the data from aVelocity.
fieldDataMass (fdm) doubleArray empty outputconnectablehidden
This is the default place that the fields will get this particle object's mass data from. It will share the data from aMass.
fieldDataDeltaTime (fdt) time 0film outputconnectablehidden
This is the default place that the fields will get this particle object's timeStep size from. It will share the data from aTimeStepSize.
usePre70ForceIntensity (upfi) bool false outputinputconnectablestorablekeyablehidden
Force evaluation changed in maya7.0 to match normal particle dynamics. Enabling this attribute will revert to the older behavior.
collisionData (cda) compound n/a inputconnectablehidden
Parent attribute for all collision input data.
collisionGeometry (cge) sweptGeometry NULL arrayinputconnectablehidden
The swept geometry for the connected shape.
collisionResilience (crs) double 0.0 arrayinputconnectablehidden
How much of the particle's velocity perpendicular to the surface is reflected
collisionFriction (cfr) double 0.0 arrayinputconnectablehidden
The amount of a particle's velocity parallel to a surface that is lost in the collision
diskCache (dc) Message n/a outputinputconnectable
Connection for playback cache node
receiveShadows (rcsh) bool true outputinputconnectablestorable
The flag to control if this object casts shadows.
visibleInReflections (vir) bool false outputinputconnectablestorable
The flag to control if this object is visible in reflections.
visibleInRefractions (vif) bool false outputinputconnectablestorable
The flag to control if this object is visible in refractions.
mentalRayControls (mrc) compound n/a outputinputconnectablestorable
This is a root of following mental ray attributes.
miOverrideCaustics (oca) bool false outputinputconnectablestorable
Enable caustic settings override for this shape. If this parameter is set, the following caustics settings will override the renddr global settings for this shape node.
miCausticAccuracy (caa) short 64 outputinputconnectablestorable
Caustic accuracy for this shape if miOverrideCaustics is on.
miCausticRadius (car) float 0 outputinputconnectablestorable
Caustic radius for this shape if miOverrideCaustics is on.
miOverrideGlobalIllumination (ogi) bool false outputinputconnectablestorable
Enable global illumination settings override for this shape. If this parameter is set, the following global illumination settings will override the renddr global settings for this shape node.
miGlobillumAccuracy (gia) short 64 outputinputconnectablestorable
Global illumination accuracy for this shape if miOverrideGlobalIllumination is on.
miGlobillumRadius (gir) float 0 outputinputconnectablestorable
Global illumination radius for this shape if miOverrideGlobalIllumination is on.
miOverrideFinalGather (ofg) bool false outputinputconnectablestorable
Enable final gather settings override for this shape. If this parameter is set, the following final gather settings will override the renddr global settings for this shape node.
miFinalGatherRays (fry) integer 1000 outputinputconnectablestorable
Final gather rays for this shape if miOverrideFinalGather is on.
miFinalGatherMinRadius (fmn) float 0 outputinputconnectablestorable
Final gather min radius for this shape if miOverrideFinalGather is on.
miFinalGatherMaxRadius (fmx) float 0 outputinputconnectablestorable
Final gather max radius for this shape if miOverrideFinalGather is on.
miFinalGatherFilter (ffi) short 1 outputinputconnectablestorable
Final gather filter for this shape if miOverrideFinalGather is on.
miFinalGatherView (fgv) bool false outputinputconnectablestorable
Final gather view flag for this shape if miOverrideFinalGather is on.
miOverrideSamples (oos) bool false outputinputconnectablestorable
Override global object sample settings. In addition to global sample settings mental ray supports per-object sample settings. The global mental ray default for all objects in the scene can be set by minObjectSamples and maxObjectSamples on the mental ray options node (miDefaultOptions). Similar attributes on individual shape nodes miMinSamples and miMaxSamples are overriding the global default, within global samples range.
miMinSamples (mins) short 0 outputinputconnectablestorable
Specifies min sample settings for the shape. For all pixels that touch this object, at least pow(2, miMinSamples) samples are taken. miMinSamples lower than the global min samples is ignored.
miMaxSamples (maxs) short 2 outputinputconnectablestorable
Specifies max sample settings for the shape. For all pixels that touch this object, at most pow(2, miMaxSamples) samples are taken. miMaxSamples higher than the global max samples is ignored.
miFinalGatherCast (fgc) bool true outputinputconnectablestorable
The object casts final gather rays if miFinalGatherCast is on, which means that the object participates in final gather.
miFinalGatherReceive (fge) bool true outputinputconnectablestorable
The object receives final gather rays if miFinalGatherReceive is on, which means that the object is not affected by final gathering.
miTransparencyCast (tpc) bool true outputinputconnectablestorable
The object casts transparent rays if miTransparencyCast is on. thus shown through transparent object if ray depth has not been reached the limit.
miTransparencyReceive (tpr) bool true outputinputconnectablestorable
The object receives transparent rays if miTransparencyReceive is on.
miFrameBufferWriteOperation (mifo) enum 1 outputinputconnectablestorable
Operation to use when writing shader results to frame buffers
miFrameBufferWriteFlags (mifl) integer 0 outputinputconnectablestorable
Bitfield of flags for write operation. Currently only the first bit has any affect. It sets the shader to use the scale factor parameter when writing to frame buffers.
miFrameBufferWriteFactor (miff) float 1.0 outputinputconnectablestorable
Scale factor for frame buffer write operation
outputHair (oh) vectorArray empty arrayoutputinputconnectablestorablehidden
Output array of polylines (double point arrays) that represet the current position of the dynamically solved hairs.
outputRenderHairs (orh) hairRenderInfo NULL outputconnectablehidden
Output of the hair system for paint effects rendering. This connection passes the positions and widths of all dynamically solved hairs in addition to shading attributes.