Input Masks

You can change Deformers input properties with various types of masks like:

  • Vertex Group/Texture
  • Length
  • Randomize
  • Border Edge Distance
  • Mesh Distance
  • and more (see list below)

Mask values are clamped to: 0.0 - 1.0 range. For example if your strand Radius is set to 2.0 and mask value is 0.5, then effective Radius will be 1.0.

Note: The order of multiple masks applied to single input matters! Adding Vertex Group mask followed by Randomize mask will give different result than adding Randomize first and then Vertex Group mask.

To add mask click drop down menu icon on right and pick mask type

In video above I show how you can:

  • Add multiple masks to single input (Vertex Group + Remap + Randomize)
  • Change mask order by using Up/Down arrows
  • Preview mask strength by enabling 'Show Mask' (Lightbulb) option
  • Disable/Enable mask
  • Remove mask by clicking 'X' icon

There is also 'Refresh' button that allows you to update Mask geo-nodes setup to latest version (can be used after updating the add-on, and when you are working on old files).

Color Attribute

Color Attribute: use vertex color attribute to mask hair effects. If multiple channels are used, then the average value is used for masking.

Influence Range Mask

Influence Range Mask

Similar to Influence Range input mask but can be assigned to any parameter of deformer.

We use Quadratic falloff mask to control Duplicate Strands deformer generation radius

In this example we use Simple falloff to adjust Noise deformer frequency - we increase it towards the tip of the strand

  • Simple - gradient that goes from 0 to 1, with customizable blend falloff. Can be inverted.
  • Root to Tip - Simple linear blend between: Root value and Tip value
  • Root to Tip with Falloff - like above, but with additional falloff control (blend is no longer linear)
  • Root > Center > Tip - gives you independent control over Root, Center and Tip values

Note: Influence Range remains useful because it allows you to use "Profile Curve" masks, a feature not found in Curve Mask.

Curve Attribute

Curve Attribute: Use Curve attribute to mask hair effect. This is intended to be used with Edit Curve Attribute feature in HTool


Edge Mask

Border Edge Distance

Border Edge Distance: Mask an effect based on the distance between: strand from the mesh border. In above video we used Aligned Tilt to Mesh Border to affect strands that are closest to mesh border.

Note: You will often want to use the 'Invert' option on this mask, so that the masking effect is strongest for strands closest to the border (those with the smallest distance to the border).

Edge Attribute Distance

Same as above, but distance is calculated between: strand and edge with attribute (for example crease or sharp edges).


Invert

Invert: Not useful by itself, but placed after another mask, it will invert the previous mask effect

Length Mask

  • Assigns Min value to the shortest strands,
  • Assigns Max value to the longest strands.
  • Swapping Min and Max values will invert the effect

Math

Can be used to Push Out every second strand, or to create a mask that will be applied to every N-th strand.

Math Mask: Mostly useful for sorted strands, e.g. Strands From Grid Surface

  • Select N-th - select every N-th strand periodically: _ | _ | _
  • Wrap - slowly increase the mask value from 0 to 1, repeat periodically: /|/|/|
  • Ping-Pong - change mask value from 0 to 1 and back to 0, repeat periodically: /\/\/\

Mesh Distance

Mesh Distance: Mask an effect based on the distance between: strand and another mesh

Vertex Group/Texture

Vertex Group/Texture: Use vertex group or texture for input masking

Object Vertex Group/Texture

Same as above, but samples vertex group/texture from custom object

Radius Mask

Radius Mask: Mask an effect based on strand radius. In video above I reduced noise on braids, at thinner places.

Offset/Gain

Mask Offset Gain: Not useful by itself, but placed after another mask, it can increase the mask contrast (gain) or brightness (offset)

Randomize: Outputs random value for each strand.

Randomize

Randomize: Outputs random value for each strand.

Random value will be picked from within [x-RandRange; x+RandRange] bounds, where x - is any input value - e.g. from vertex group mask
You can disable lower/upper bound using </> buttons, thus limiting Random value range.

  • Rand Range - 0 - no randomization; 1 - maximum randomization
  • Variance < 0.5 outputs mostly smaller values, from within given range,
  • Variance == 0.5 all random values are drawn uniformly, from within given range,
  • Variance < 0.5 outputs mostly bigger values, from within given range,
  • Use Parent IDs - if enabled each child strand will inherit random value from its closest parent.

Remap

Reamp input mask values to different range

  • From Min/Max - clamps input mask to given range,
  • To Min/Max - remaps clamped input to given output range

Procedural Mask

Procedural Mask: Use procedural noise texture to randomize hair look. No need for UVs

  • Min, Max - bring these values closer together to get sharper noise transition,
  • Scale - the bigger scale the more detailed the texture will be,
  • Distort - distorts the noise,
  • Offset - offset the noise sampling position

Viewport Mask

You can mask hair effects based on whether the object is displayed in the viewport or rendered in the final image.

In video above we affect hair density with 'Viewport Display' mask. This way we render (and process) less hair strands in the 3d viewport and more in the final render

Influence Range

Special inputs that are named Influence Range allow to modulate influence of deformer over strand length. For example you can:

  • Add Noise only to the tips of the strands
  • Taper strand Radius towards the tip or root of the strands
  • Affect Clump strength only in the middle part of the strands

Note: To affect any available deformer input parameter use Influence Range Input Mask

Example of using Influence Range mask on 'Radius Set' deformer to customize hair taper

Types of Influence Range masks:

  • Constant - the effect is uniform along the whole strand length
  • Simple - gradually changes the mask from 0 to 100% with adjustable falloff. Can be inverted.
  • Root to Tip - Simple linear blend between: Root value and Tip value
  • Root to Tip with Falloff - like above, but with additional falloff control (blend is no longer linear)
  • Root > Center > Tip - gives you independent control over Root, Center and Tip values
  • Profile Curve - most detailed control using profile curve