Ground Strands 

Many Ornatrix operators need a distribution mesh to function properly. Such operators will query the distribution mesh from the operators before them. For instance, when you have a set of curves defining the hair guides without any surface beneath them you can use the Ground Strands operator to assign a distribution surface to them. This distribution surface can then be used by Hair from Guides operator to generate dense hair from the guides. Ground Strands operator projects the guides onto a mesh to figure out the closest point on the surface to each guide root. This projected surface point is used to determine texture coordinates and to update the guide position in the future when the mesh surface changes and deforms due to animation. This step is crucial because many Ornatrix operators require a distribution mesh to work properly, so this operator should be used to assign and ground the roots to a distribution mesh if it is not present.


Guides are grounded to a surface mesh (Start at 1:30)

 

Mechanism 


'Floating' strands are re-projected onto the surface and assigned new surface info

Grounding in Ornatrix is the process of attaching surface dependance information to a strand (hair or guides) object. To do this, strands are 'projected' onto base mesh. Once every strand root's position relative to the mesh is determined it is cached and attached to the strands as surface info that flows up in the pipeline. Surface info is often required to compute UV coordinates, to deform guides with mesh, and to inherit other surface-related properties for modifiers such as surface comb.

To make the best use of this operator you need to understand a couple of things that it does:
  1. Ornatrix always assumes that its hairs are located in the same object space as the distribution mesh (ie. all operations with mesh vertices and hair strands are done in same space). Therefore, ground strand operator will align the hair object you chose to ground with the selected distribution mesh. You can see this if you disable ground operator and your previous guides are not aligned as they're used to. This step is very necessary for further operations on guides.
  2. Strands should always be grounded at frame 0. This constraint is necessary to ensure that grounding works properly.
  3. Ground strands will use closest triangles for each guide to find a suitable place to put it. If a guide's tip is closer to a triangle than its root, it will be flipped (ie. its root considered its tip). This ensures that guides retain their relative shape, however, in some rare cases it can cause some guides to stick to undesired surface points.
 

Parameters 

  • Ground Closest End
    When turned on, each strand will be checked for which of its end is closest to the distribution object. That end will then be considered the root of the hair. If the option is off, the strand end with the smallest vertex index will be grounded as root.
  • Dynamic Grounding
    When on, the hair stands will be grounded when they are evaluated the first time. This is specially useful for dense hair when the viewport hair count it's different from the render hair count. The hair strands visible in the viewport will be grounded first, and the render hairs will be grounded on the first frame of the animation while rendering. The user should make sure that the render hairs are grounded on an appropriate character's relaxed at frame 0.
  • Set Positions
    When on, applying the grounding will update the locations of each strand's root according to mesh deformation.
  • Set Texture Coordinates
    When on, texture coordinates for the first channel will be generated and assigned to the hair from its newly grounded surface. This is useful if you want to paint texture maps to style the hairs and to allow proper hair shading. The hair object needs texture coordinates for all the Multiplier Values to work correctly.
  • Set Rotations
    When on, applying the grounding will rotate each strand according to mesh deformations.
 

Grounding strands 

To assign a distribution surface to guides or hair in Ornatrix:

  1. Add a Ground Strands operator from Ornatrix Menu and select it in the hair operator stack
  2. In Maya's Attribute Editor click the Set Distribution Mesh button
  3. Select the distribution surface mesh inside the viewport. The name of the selected distribution mesh will now appear on the button.
  4. Click the Attach Roots button in the operator settings. When roots are attached this button will turn from gray to green.

The strands should now be projected onto the surface and follow it as it deforms.

 

Grounding Hair from Mesh Strips 

When grounding hair generated using the Hair from Mesh Strip node to a polygon surface, Ground Strands node assumes it is working in the same space as the distribution surface or the polygon surface to which it has been grounded. In order for the hair to follow the polygon surface, both the mesh strips and the generated hair need to be parented to the polygon surface, this could be the head or a scalp mesh.

 

Ungrounding strands 

To stop the operator from attaching strands to the distribution surface surface press the Detach Roots button.

 

Position blend ramp 

This curve ramp allows you to specify the effect, along the strands length, that the grounding will have on the resulting strands. Value of 1 indicates that the points of target strands should be moved into position of being attached to the surface. Value of 0 indicates that points should remain unaffected by this operator.

As a result you can, for example, leave the tips of the strands unaffected by this operator while having the roots be moved in such a way that they are attached to the mesh surface.

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