Hair from Guides 

Hair from Guides operator generates dense hair. This operator's primary task is to take in a set of guides and based on the provided info create a dense hair volume based on those guides. Hair from Guides is responsible to produce arbitrarily dense hair strands that best describe the volume specified by provided guides. Just like the Guides from Mesh operator, you get the distribution options to control the way dense roots are distributed over the mesh.


Viewport and Render Count 

To make it easier and quicker to edit hair Ornatrix provides an option to have fewer hairs displayed while working in the viewport than during rendering of the scene. Typically a fraction of hair displayed is good enough to accurately preview what will appear in the rendered result. However, these parameters can be adjusted by you at any time. Use the Viewport Count and Render Count parameters to set these values.

When Ornatrix detects that Maya is rendering the scene it will re-generate your grooms with the render hair count. Once the rendering is done it will switch back to using the viewport count.

Notice that the IPR (Interactive Photo-realistic Renderer) will not use the render count, as it runs in parallel with the scene editor and it doesn't notify the scene about its operation.


Switching between viewport and render count manually 

If you want to always see the render count of the hair, or if Maya fails to set viewport count after rendering for some reason you can manually switch between the render and viewport mode using the following MEL command:

// Sets the Ornatrix render mode on
OxSetIsRendering( true );

// Sets the Ornatrix viewport mode on
OxSetIsRendering( false );




Distribution and Count 

This group of parameters controls how and where the hair roots are placed onto the distribution surface.


Distribution Type 

There are several distribution methods for spreading hair roots along the surface:

  • Uniform
    Roots are placed in a linear manner forming a 'grid' around the mesh. This can be useful while creating brush patterns where hair has been planted artificially.
  • Random (area-based)
    Roots are created randomly, and the amount of roots per face is calculated based on the total area of all faces on the mesh. Therefore all roots will be distributed evenly and randomly throughout the mesh. You can control the random factor through the seed value. Same seed values will produce similar results.
  • Random (face-based)
    Same as above, except the amount of roots per face is the same for every face on the mesh. Therefore larger faces will tend to have sparser root placement, while smaller ones will have roots more clustered in one spot.
  • Vertex
    One root is generated at each vertex of the surface mesh.
  • Random (UV-based)
    Same as area-based approach, except this time instead of calculating area for every face, UV area of faces is calculated. This allows user to control the distribution by maintaining UVW coordinates on the mesh. It is possible to unwrap a character, for example, and have dense placement of hair in some spots than the others by stretching out those areas in the UV editor.
  • Guides has hair
    Simply converts incoming guides into resulting hair without generating any new strands.
  • Face Center
    Roots are placed at the center of each polygon face or triangle.

Uniform Randomness 

A parameter called Uniform Randomness is available to offset hairs in random directions after they've been created with Uniform distribution. This can be used to fix the exact even positions of uniformly placed roots and give them a little variation. Use this parameters for creating feathers, for example, where hair roots need to be placed evenly yet have some variation on the surface.

Uniform Randomness only works when Uniform distribution method is used.


Random Seed 

Change this value to shuffle the positions and random lengths of the resulting guides.


Render Count 

Specifies the total number of roots to generate during rendering.


Viewport Count Fraction 

Specifies the percentage of roots to generate inside viewports.


Distribution Map 

An optional multiplier map for hair density on the surface.


Distribution Channel 

Allows you to specify a vertex color set or a guide channel to control the hair density over the mesh.


Topology Based Orientation 

When on the rotation of hairs will be "glued" to the distribution mesh. Rotations will be computed relative to the orientations of mesh edges and thus properly react to deforming geometry. When off, the rotations will be calculated in global scene coordinates.


Use Guide Proximity 

When on, only hairs that are within a certain distance of a guide will be generated. Hairs far from guides will be culled.


Guide Proximity Distance 

When Use Guide Proximity is on, this specifies the maximum distance a hair must be away from a guide for it to be generated. This will make hair only be generated around guides.

Note that if you use Barycentric interpolation guides will be chosen based on the distribution mesh vertices and thus you might not get the exact results. To avoid this use Affine interpolation.

On the left all hair is generated. On the right guide proximity is turned on, causing hairs to be generated only around their closest guides.

Use Guide Faces 

When used, this option will plant new roots only on faces that are close to guides. Using the iterations parameter you can control how close a face has to be to a guide for roots to be planted on it. 1 means roots have to be on same face as one of the guides. 2 means roots have to be on a face that touches a face that has a guide on it. This usually works well with meshes that have many faces.


Remember Root Positions 

When this option is used the root positions generated by this operator will be cached and saved with the scene. This can ensure that you can send the same scene to other computers and render it without the risk of roots being generated in different places causing them to "jitter".

Use this option after you have set up the hair to your liking. When this option is on changing other distribution parameters will not have any effect.

When you turn this option off the guides will be regenerated using current distribution parameters.


Guide interpolation 

Parameters in this group change the way hair shape is constructed from input guides.


Guide interpolation 

There are several parameters that can dramatically change the look and behavior of dense hair as a subset of guides. Whenever a hair strand is planted, it has to be interpolated in order to achieve smooth transition from guide to guide. There are a couple of interpolation types available:

  • Polar interpolation
    Use internal strand space, interpolate by rotating transforms.
    This method will produce the smoothest results. For every created strand hair orientation is determined by the surface normal at that location. Therefore as the surface curves, hair will curve along with it. Strands are interpolated in their local space so you will see them rotating which might not always be ideal, especially for longer hair.
    If used properly, only a few guides on the whole surface could be required to form a hair volume. А downside to this method is that polar interpolation will have two poles (or sinks), where hair will not be well defined and will tend flip. If you only need a part of your surface covered, or if the surface is not fully round, this method is the best to use.
    This option is recommended when using the instanced strands option.
  • Affine interpolation
    Uses closest guides, interpolate in object space.
    Unlike the above method, this interpolation type does not take surface information into account. Instead it directly interpolates between strands. Lets say there are two guides - A and B - and we create a dense strand C and its right in the middle between these two guides. The tip of of strand C will lie in the middle of the line formed by tips of guides A and B.
  • Barycentric interpolation
    Uses distribution mesh vertices.
    This is the default, and most robust method. To interpolate hairs between guides this method utilizes surface dependence information and underlying mesh topology. This is only possible if you have both of these available. At first, for each vertex on the distribution mesh closest guide information is calculated. Then for each hair the closest vertices are looked up on the mesh and information from these vertices is used to determine which guides will be used for interpolation.
    The downside of this approach is requirement for the distribution mesh to be relatively dense. If there are too few vertices then you might lose guide information.
  • Segment interpolation
    Using this method can produce better results if you have guides which greatly change shape and want the resulting hair to blend between these guides smoothly. It blends guides using their individual segments and tries to smoothly blend the overall length of each strand.
  • Interpolate Strand Length
    When ON, hair length will be interpolated between guides.
  • Interpolation Weight
    Allows the use of a guide channel to control the interpolation weight or how much hair is attracted to specific guides.

Guide Count 

For the first two interpolation types you can control the amount of guides that every dense strand is interpolated in between. Setting this value to 1 will result in no interpolation at all, and every dense strand will automatically copy the nearest guide. Setting this value to 3 will result in a triangular interpolation where every strand will be an average of 3 closest guides. Note though, that barycentric interpolation always uses three guides and setting a lower guide count will make hair length largely dependent on how far the two or one closest guides are to it.


Root Displacement 

Parameters in this group control if and how roots are moved from their generated position. Use these controls to add an additional offset to hairs. Hair can be parted to create separate groups that are not interpolated in between. Partings can be auto-generated, specified with a map or a channel, or created manually in partings sub-object mode.


Displacement Offset 

An optional offset along surface normals of generated guides. Allows you to push away guides from the surface if needed.


Displacement Multiplier 

An optional surface map multiplier for the Displacement Offset parameter. Use to vary displacement along the surface with a texture map.



This group has parameters which separate hair into partings. Hairs in separate partings do not blend their shape in between themselves.


Auto Part 

If on, partings will be automatically deduced based on the relative angles of incoming guides. If two guides are facing away from each other the hairs between them will not interpolate between both guides, instead choosing the closest guide.


Angle Threshold 

If Auto Part option is used, this parameter determines the angle threshold which is used to either part or not part the hair between guides.


Distance Threshold 

If Auto Part option is used, this parameter determines the maximum distance between two guides which would be placed into the same parting.


Parting Groups Map 

An optional texture map where black and white values can separate hair partings on the mesh surface.


Partings Channel 

This parameter can be used to manually specify partings using a guide channel or a vertex color set.


Other parameters 

Many of the options used by this component are similar to those used in Guides from Mesh. Please refer to that help for reference.

  • Additional root data
    These four options control which data gets exported with hair. Some data, such as per-root transform matrix takes up a lot of memory (in fact it takes same memory per-root as 4 vertices). Therefore if you are sure that some of this data isn't going to be used later on in the pipeline you can choose not to export it, thus saving memory. One useful example is removing root tm and guide dependence data when exporting very dense fur.
  • Export object type
    This determines whether dense hair or guides are generated. Sometimes during modeling it is useful to interpolate between results to increase/decrease guide count.
  • Guide proximity
    This option isn't implemented in V1 or V2
  • Use guide faces
    When used, this option will plant new roots only on faces that are close to guides. Using the iterations parameter you can control how close a face has to be to a guide for roots to be planted on it. 1 means roots have to be on same face as one of the guides. 2 means roots have to be on a face that touches a face that has a guide on it. This usually works well with meshes that have many faces.
  • Instanced strands
    If on, all strands will be instanced by provided guides. This means that really only one hair is generated per a guide, and the rest are simply using same memory to display the guide offset at their root. Memory usage is greatly conserved, especially with very dense hair objects.
    For best results it is advised that you use polar interpolation to generate the dense hair from guides using this option.
  • Use UV coords
    Specifies whether mesh UVW coordinates or root world coordinates are to be used to determine relative guide/hair positions.
  • Auto-part hair
    It is often necessary to have different groups of hairs on a mesh. By default this isn't possible since hairs all interpolated to form a continuous volume. Auto parting takes an angle or distance threshold and determines whether hair should be interpolated between specific guides or not. If two guides are oriented or located apart further than provided thresholds a parting will be generated between them. Note that you may also part hairs using a map or a guide channel.
  • View Count from Render
    When enabled, the number of hairs displayed in the viewport will be determined by the percentage value of the render count parameter.
  • View Count Percentage
    When View Count from Render parameter is on, this determines the percentage of dense count parameter which determines number of hairs displayed inside viewports.
  • Render Count
    Determines the number of hairs generated by this modifier when rendering the scene.

Freezing the generated hairs 

Sometimes it is necessary to ensure that the results generated by Hair from Guides operator remain consistent even if you send the scene to a different computer and (accidentally) change some of the distribution parameters. For this reason we have the Remember Root Positions check box.

Enabling this option will make the operator generate and cache the root positions of rendered hairs. This ensures that the generated hair will remain consistent among shots rendered on different computers since random generation algorithms can vary across hardware. It is a good practice to enable this option when rendering hair on a render farm. Disabling this option will clear the cache.

The cache is stored with the scene and thus will increase your scene file size. The check box must be unchecked and then checked again if you modify any of the distribution parameters to reflect the changes. The caching process might take a few seconds depending on your render hair count.

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