Hair Clustering 

 

Overview 


Hair clustering with 10 clusters (left) and 100 clusters (right)

Clustering is often required to quickly simulate realistic hair in both short and long form. In nature clustering is caused by external forces such as static charges between hair strands and synthetic forces caused by gel and hairspray.

To accomplish this task, hair has to be separated into groups which are then pulled together to form clusters. Each group has one of the hair strands selected to be its center. The user has full control over how each group does its clustering. This control consists of a set of cluster knots which determine the amount and direction of clustering at each point on a strand.


Hair clustered with 500 clusters, using a noise map for clustering amount

For very quick results clustering can be controlled on a global scale. Clusters can be randomly generated and spread evenly throughout the surface. Then one knot structure, presented on the main panel controls all of the clusters.

A special threshold parameter controls how close a strand has to be to a particular cluster to get affected. You can control threshold with a global value and through a global texture map. Controlled this value by a noise map with high contrast in upper and lower limits for good results.

You can use this operator in combination with guide clustering, which uses guide strands as cluster centers instead of randomly selecting them from the hair.

 

Parameters 

 

Strand Group 

Allows you to isolate the effect of this operator by selecting a particular Strand Group created in the Edit Guides operator.

 

Random Seed 

Specifies randomness value when generating hair clusters. Use this option to change the hairs which are picked to be clusters.

 

Cluster Count 

Total number of clusters to generate for all the hair.

 

Cluster Multiplier 

An optional texture map to control how much clumping is applied for each individual hair along the distribution surface.

 

Cluster Ramp 

Specifies the clumping strength along the strand lengths

 

Threshold 

Specifies the maximum distance a hair needs to be away from a cluster to be a part of it. Smaller values will leave some hairs unclustered.

 

Threshold Multiplies 

A texture map which can be used to vary the Threshold parameter along the surface

 

Use Uv 

If this option is on, surface mesh UV space will be used for calculating cluster distances instead of world coordinates.

 

Generating clusters 

Once you decide on the number of clusters and distance threshold by editing these parameters with viewport preview you will need to generate cached clusters. This extra step will create clusters for render hairs and save them with the scene. This way the clustering will be consistent even if you render of different computers on a render farm.

  • To generate clusters press the Generate Clusters button.
  • Alternatively you can use the OxGenerateClusters clusterNodeName MEL command.