This new 1.2 update is quite a big one and opens the tool to new possibilities. In addition to improvements to the core features, the HairTG family is getting two new Substances, Freestyle with direct positioning of control points in the 2D view and Tiler to organize multiple hair clumps into a final output texture. Let’s review the new features one by one.
HairTG – Freestyle
Freestyle has similar features as the Hair Clump Tool Substance with the following differences:
- 10 control points are visible in the 2D view of Substance Designer and can be manipulated from there.
- Single parent hair strand (still with unlimited child strands). Consequently, features related to correlation between parent strands are not in Freestyle.
Freestyle helps to create curve designs without constraints and can be used well beyond hair design.
Flow map output
The new Flow map output creates a vector map where vectors are oriented from hair strand root to tip. This map can be used by shaders to drive dynamic effects along the flow of the clump. A utility output also enables to analyse the flow map and display patterns such as arrows or beams to check directions. The Flow map is built in two passes, one to generate the base directions, another to filter out the result and smooth transitions. Two filters are provided, a standard one and another better suited to thick strands. For each filter, an adjustment parameter enables to control the filter strength.
The X and Y vector components can also be reversed, which reverses direction of the flow in either case.
HairTG – Tiler
The new Tiler Substance helps laying out up to 40 hair clump textures into a set of final textures ready to be used in game engines or renderers. It has several parameters to ease placement and sizing.
We can define the number of rows and columns to use. The hair clumps are generally vertical textures, whereas the tiled outputs are generally horizontal. We can specify the input and output aspect ratios of each so these different sizes can easily be combined. The input spacing controls the horizontal and vertical space between tiles globally. Input sizing enables to size all the inputs at once. We can position the whole tile set within the output texture with the Offset parameter. In addition to these global settings, we can also position and size each input independently.
Gradient ramp map
A new parameter Apply fade to Mask output enables usage of the Fade parameters to the mask. This way, we can generate a gradient ramp map through the Mask output, usually used to apply a specific processing to hair roots in shaders. Thanks to the Fade random parameter, the fade effect can be made non-uniform to increase realism.
Per-parent child count and dispersion control
Child hair strand count and dispersion controls can now optionally be determined by parent strand. This way, each hair group (parent+children) can be tweaked independently, giving more flexibility to the design of the hair clump.
Rotation at control point
This effect enables to partially rotate hair strands at the location of a given control point following the clump flow. It requires to have at least two parent strands or hair groups. This can be used to create asymmetry effects in the clump. Since it can quickly create “wild” disorganization in the clump, it is to be used with parsimony.
Global and local center for hair strand rotation
In the previous version, hair group rotation was using a global rotation center located at the center of the texture. In this update, the global center is still available but it is also possible to opt for a local rotation center relative to the hair group.
Masked Depth output
The Depth output can now be configured to use either the original pattern (similar as the Alpha output) or the masked pattern (used for the Mask output).