Strand Channels
Guides in Ornatrix are used to define the shape of hair without having to deal with thousands of strands individually. By default, guides consist of information such as vertex positions, root on surface information, and strand selection. Sometime it is useful to add extra information to guides to control some additional hair properties such as clustering, curling, or local dynamics and animation.
Channels allow users to add extra data to guides that can be used later on to drive various modifier parameters in the operator stack. Many surface-varying parameters in Ornatrix operators have a drop-down box listing different channels which can be assigned to them (with Unassigned being the default value). Selecting a strand channel will use the data values within it to set the parameter's values. A channel contains single scalar values which can be defined either per-strand (varying across base surface) or per-vertex (varying across each hair strand's surface). Multiple consecutive strand channels can be used to define vector (XYZ) and color (RGB) values.
There are two types of guide channels used by Ornatrix: Root and Vertex channels.
Root channels hold a single data value per every root (strand). This is a compact way of defining information that is uniform for every strand. It can be very effective for controlling properties that usually don't vary along strand length (such as hair density and dynamics properties).
Vertex channels hold Per-Vertex data. Every knot that defines the shape of every strand will have a value attached to it. This is more memory consuming than root channels and it allows you to control anything at any point on the hair model. Vertex channels can be useful to control clustering, frizz, and hair shading.
Creating Strand Channels
The most typical way to specify strand channels is to do it on guides using Edit Guides. You can also add this operator on top of Hair From Guides to create channels directly on hair strands, however this method is more memory consuming. Guide channels can also be procedurally generated, visit the Generate Strand Data operator documentation page to find out how. In this page we will create them manually using Edit Guides operator. To do this:- In Edit Guides enter Brush mode and go to the Channels tab.
- In the Strand Channels box select --Per-Strand Channels-- to create a Root channel or --Per-Vertex Channels-- to create a Vertex channel and click the Add button, enter a name for your channel and click OK. The best strategy is to name channels according to their purpose, and organize so you know clearly which channel performs which operation.
- Switch to the Paint brush, use the Current Channel Value slider to choose a gray scale value between 0 and 1.
- Select the newly created channel and use the brush to paint them.
Painting a Per-Vertex channel
Painting a Per-Strand channel
Note: The first root and vertex channels are reserved for internal Ornatrix selection. Therefore, these two channels cannot be removed. They can, however, be edited and assigned but Ornatrix can change their state at any time.
Using Strand Channels
Channels can be very helpful and even irreplaceable in many places during the process of hair management.
Most operators support strand channels to control the influence of an operators and its parameters. To use a guide channel, expand the Amount channel list on the chosen operator and select a guide channel.
In the following image a strand channel is used to control the Frizz amount in the Frizz operator:
A single guide channel can be reused in as many operators as you need.
Vertex Maps and Texture Maps as Strand Channels
Vertex Maps and Texture Maps can be used to generate Per-Strand Channels using the Generate Strand Data Modifier. This can be useful if you want to use a Vertex Map or Texture as a channel inside an Ornatrix Expression, allowing you to be creative with strand channels, like combining, extracting or multiplying channels together to create unique effects. In any other case, Vertex Maps and Texture Maps can be connected directly to the Multiplier values of any Ornatrix modifier.
To use Vertex Maps and Texture Maps as Strand Channels:
- Add a Generate Strand Data modifier to your hair object.
- Set Target Data to* New Strand Data Channel*.
- Set an identifiable name for the new strand channel in the New Channel Name field.
- Disable Use Target Value Range, so the channel values are only driven by the input texture map or the Vertex Map tag. Otherwise you can use the Min. and Max. Target Value parameters to clamp the values between 0 and 1.
- Set the Generation Method parameter to Texture Map.
- Expand Texture Multiplier parameter and load an image to use a texture map or go to Effects and select Vertex Map from the list to use a previously created Vertex Map Tag.
Using a Vertex Map tag to drive the Length multiplier parameter of a Length Modifier |
Using a Cone Field to control the Length multiplier parameter of a Length Modifier |