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