On this page |
Feathers come in many different forms. The shaft is normally not just a straight line, but more or less curved. Many feathers are also asymmetric and the barbs' growth direction and curvature also changes from bottom to top. These properties can be recreated with curves and profiles when you draw a feather.
Tiny hooks, called barbules, hold the barbs together. Sometimes, the barbs are torn apart and then clump together in other parts of the feather. This results in gaps where the barbs split. Houdini’s feather tools provide several methods to mimic this effect.
Note
The following guide is based on the setup from Drawing feathers. Here’s the network that’s used to draw the feather and create its barbs.
Feather Clump SOP ¶
This fully featured node is a convenient way to add splits and clumps. The only limitation is that you can’t differentiate between left and right barbs. However, the advantage is that you can also create a custom attribute to control the entire process.
Note
All values are only valid for the example feather from the reference image. If you want to create a different feather, you’ll need different settings.
-
Add a Feather Clump SOP and connect its first input with the output of
feathertemplatefromshape1
.What you often get is a deformed shape that might remind you of a plant. To change this look, use the parameters of the Split and Clump sections. Splitting creates a point attribute to identify those barbs where the split will occur. Clumping, however, pushes the barbs at their splitting points apart and creates the characteristic gaps.
This node uses mathematical methods to create the splits and you can’t define exact points where the splits should occur. Furthermore, splits and gaps are always applied to both sides of the feather.
-
On the Splits section go to Frequency. This parameter determines the number of split points and sometimes you might end up with high values of
100
or even more. -
With Jitter you can create clumps of different size and avoid a uniform look.
-
Play with Seed to change the split pattern.
The image shows three states with Frequency values of 10
, 100
, and 400
. The other parameters have default values.
Clumping section ¶
The Clumping section lets you shape the gaps between the barbs.
-
With Amount, you can push the barbs apart. Higher values create wider gaps and the barbs tips contract. A value of
0.5
can be a good starting point. -
The Falloff radius creates the typical V shape of the gaps.
-
With Split Depth you can control how close to the rachis the split should start. With lower settings, e.g.
0.4
, you push the split points away from the shaft. -
Shift lets you move the barbs towards the tip of feather. The feather in this example uses a value of
0.8
to make the barbs follow the main growth direction.
On the left image you can see Split Depth values of 0.25
and 0.75
. The right image illustrates how clumps look with Shift values of 0
and 1
.
Split attribute ¶
The procedural method for splitting and clumping is a fast way to achieve naturally looking results, but sometimes you need more control. Then, a custom point attribute is the only alternative. The Feather Clump SOP supports both methods. You can define and assign a split
attribute to the barbs' points. A value of 0
means no splitting, while a value of 1
indicates that there’s a split. This is the network you're going to create.
Note
In fact, any value greater than or equal to 1
will introduce a split, but a zero-one “switch” is normally easier to handle.
One method applies a split
attribute and random numbers of 0
and 1
to the points.
-
Add an Attribute Randomize SOP and place it between the Feather Template from Shape and Feather Clump SOPs to connect it.
-
For Attribute Name, enter
split
. This attribute is then used by the Feather Clump SOP. -
On the Distribution tab, change Distribution to Two Values.
-
Change Dimensions
1
, becausesplit
is a scalar.You can see that Value A and Value B are set to
0
and1
by default. So, the parameters represent exactly the states,split
should have. -
From the Split Location Mode dropdown, choose From Attribute. The default entry for Split Attribute is
split
. -
On the Attribute Randomize SOP, use the Probability of Value B slider to control the amount of splits. With smaller values you can decrease the number of splits and create bigger clumps. The final look strongly depend on the number of barbs.
-
Use the clump node’s parameters on the Clumping section to fine-tune the feather.
The Probability of Value B values in this image are 0
, 0.01
, 0.1
and 0.5
.
Geometry masking ¶
A mask protects certain areas of an object from becoming modified. This way you can achieve more control where the gaps should appear. One common approach is to restrict the clumping effect through some sort of geometry. The screenshots shows the network you're going to create.
-
Add a geometry, for example a Sphere SOP or a Box SOP.
-
Use Center to shift the object to the area you want to mask.
-
Depending on the type of object, you can use Radius, Size or Uniform Scale parameters to define the size of the mask.
-
Lay down a Guide Mask SOP and place it between the Feather Template from Shape and Feather Clump SOPs to connect its first input. The fourth input is linked to the mask geometry’s output.
If you're using the attribute method, place the Guide Mask SOP between the Attribute Randomize and Feather Clump SOPs.
-
On the Guide Mask node’s General tab, go to the Output section. From the Output Type dropdown, choose Point.
-
Change Output Attribute to
clumpingmask
. -
Open the Additional Masks tab and turn on Use Geometry Mask to connect the mask object object.
There are also some useful settings to improve and customize the mask.
-
If the result doesn’t meet your expectations, try to decrease to Voxel Size to add more resolution to the mask.
-
To invert the mask, go to the Presets menu and choose Outside.
-
The Depth Ramp controls the mask’s softness or falloff.
Naming ¶
Complex setups often use more than one mask and it’s therefore a good idea to assign meaningful names not only to the mask itself, but also to its associated nodes.
-
In this scene, the geometry is a Sphere SOP and the node’s name is set to
clumpingmask_geo
. -
The Guide Mask SOP’s name is
clumpingmask_guide
.
Activating the mask ¶
You must activate the mask on the Feather Clump SOP to make it work.
-
Connect the output of the mask node with the first input of the clump node.
-
On the Feather Clump SOP’s Clumping section, set the Amount parameter’s first dropdown from No Override to Guide Attribute.
-
Change the default entry on Amount Attrib to
clumpingmask
.
Here’s a possible result with a spherical mask. The mask’s center is around the midpoint of the two vanes. The clump node’s Falloff creates a smooth transition between the barbs.
Left and right clumping ¶
By default, the Feather Clump SOP is always applied to both vanes of the feather. However, when you look at real feathers, there’s often an asymmetric distribution of clumps: the left vane shows more gaps than the right and vice versa, or one vane doesn’t have any clumps at all, etc.
Currently, the Feather Clump SOP can’t differentiate between left and right barbs. The only way to do this is to convert the feather into a so-called uncondensed state. Then you're able to split a feather into left and right barbs, and a Hair Clump SOP lets you create the clumping effect.
Uncondensed feather networks require different setups and are therefore discussed separately on the Splitting feathers and Down design pages.
Feather atlas ¶
The Feather Clump SOP does not only work in conjunction with a single feather, but you can also merge several feathers and apply the node to the entire group. This is a fast and convenient way to randomize large feather sets (also called feather atlas) through a single node.