Generate Strand Data Modifier 

The Generate Strand Data operator is a procedural way of creating per-guide or per-vertex strand channel values based on some criteria. These per-guide values can then be used to control parameters and groups inside Ornatrix.




Data Generation Settings 


Strand Group 

Allows you to select a Strand Group created in Edit Guides node which contains the guides from where you want the data to be generated by this node.


Random Seed 

Very straight forward: Use this parameter to randomize the way the data is generated.


Target Channel 

Similar to Strand Groups, this allows you specify a channel to isolate the area you want the strand data to be generated from.


Target Data 

Specifies which part of hair this operator will modify. Aside from creating and changing strand channel data Generate Strand Data operator can also modify other aspects of hair like its width, strand groups, texture coordinates, and more. The available options are:

  • Existing Strand Data Channel
    Strand channel set in Target Channel option will be modified. If this value is set to None then a new channel will be created, this is behavior as designed for backward compatibility.
  • New Strand Data Channel
    This option will create a new channel for the Generate Strand Data node using the name provided in New Channel Name instead of using the default name.
  • Strand Groups
    Strand groups will be modified. It is important to make sure that the target value range is sufficiently high to set groups to an integer value. For example, the default target range of [0,1] will set all groups to 0. However, changing it to [0,100] will set groups to a range between 0 and 100. Values are per-strand.
  • Strand Ids
    Unique per-strand ids will be modified. This is typically not needed but could be useful in some exotic scenarios. Values are per-strand.
  • Widths
    The thickness of individual strands will be modified. Values can be per-strand or per-vertex.
  • Texture Coordinates
    Currently not supported
  • Strand Rotations
    The twist rotations of strands around their stem will be modified. Values are per-strand.

New Channel Name 

A blank field to provide a name to the generated channel. If a channel with specified name already exists a number will be appended at the end to make the name unique, for example MyChannel can become MyChannel1. If you are exporting more than one sample per channel then channel for each new sample will have an integer value appended to it. For example, MyColor becomes MyColor1, MyColor2, and MyColor3.


New Channel Type 

Here you can choose if the new channel will be generated Per-Strands or Per-Vertex.


Sample Value Count 

You can generate or alter more than one consecutive data channel. For example, you may want to generate 3 channels to define an RGB color set or an XYZ object position. Or you may want to generate 2 channels to define a UV set. This parameters specifies how many channels will be generated or altered by this operator. There is no limit, you can go beyond 3 channels if needed.

If you're generating new channels then each new channel will be given a new name with a number suffix. If you're altering existing channels then the channel specified will be the first one to be altered and subsequent channels after it will be altered as well, up to the same value count.

This option is only applicable if target data is either an existing or new data channel, or texture coordinates.


Generation Method 

In the drop down list select the type of data to be generated. The following are the options:
  • Constant
    Minimum target value will be assigned to all resulting strands or vertices.
  • Random
    A random value within the minimum and maximum target range will be assigned to each strand or vertex. Each target sample will have a different random value.
  • Index
    Index of the current strand will be assigned to each strand or vertex.
  • Strand Length
    The length of the current strand will be assigned to each strand or vertex.
  • Strand Curviness
    A value between target minimum and maximum range will be set based on how straight or curvy the strand is. The more kinks and turns the strand has the bigger the value will be.
  • Distance To Object
    For each strand or vertex distance to selected scene shape will be calculated and assigned. If a target range is provided the distance will be scaled based on the farthest strand or vertex. See below how to properly use this option.
  • Is Inside Object
    A value of 0 or 1 will be assigned based on whether the strand's root or vertex is inside specified scene shape.
  • World Space Position
    Generates a set of three channels, each containing X, Y, and Z components of world space positions for the strands or vertices.
  • Object Space Position
    Generates a set of three channels, each containing X, Y, and Z components of object space positions for the strands or vertices.
  • Expression
    A custom user expression will be used to assign values to strands or vertices
  • Texture Map
    A source texture map provided through the Texture Multiplier attribute will be used to get the greyscale or RGB values

Store Values 

When this option is on the current data output is remembered and always used. Use this to freeze the output of this operator. It will also be saved with the scene. To clear the values simply uncheck this option.


Use Source Value Range 

When on, used strand values will be clamped with minimum and maximum values


Minimum Source Value 

Any strand values less than this will be clamped to the minimum target value


Maximum Source Value 

Any strand values larger than this will be clamped to the maximum target value


Use Target Value Range 

When on, the generated values will be rescaled to be in this range, instead of being between 0 and 1


Minimum Target Value 

Smallest generated output value


Maximum Target Value 

Largest generated output value


Texture Multiplier 

When generation method is set to Texture Map or Expression this provides the texture to use for getting source greyscale or RGB values. With expressions texture( u, v, index ) function can be used to get the texture map. Default index is 0.

Missing Something? Let us know if this page needs more information about the topic.