TABLE OF CONTENTS


Although the graph provides enough control to get a decent overall fur result in most cases you’re going to want a much more aesthetic means of controlling the look of the system.

Yeti provides this control via Grooms which is a set of controllable strands that can be shaped with the ability to store any number of custom attributes on each.

A graph can rely on any number of input grooms which may control the length, density, direction or other node parameters via the Attribute node.


Creating a Groom

A groom is generated via a groom node in Maya - to create the groom select a mesh and press the CRG ( Create Groom ) button in the Yeti shelf and a new empty node will be created.

Grooms consist of any number of strands, defaulting to none, and require the user to create an initial set of strands - to do this use the Add followed by the Fill tool to quickly create a strand at every vertex which is a good default starting point for most grooms.

_images/groom_01.png


The Yeti Groom node works within it’s own grooming context where you can use brushes to cut, comb and paint the Groom.

To enter the combing mode select the groom and in the attribute editor press any of the tools in the Tools palette - from this point on you can click and drag across the surface of the mesh to comb the strands in various modes.

As you groom the node maintains the length of the strand and tries to relax the segments to give a more fluid feel to the workflow.

Using Grooms

Once a groom has been created you’ll want to use the result in your graph.

The first step is to attach the groom to your Yeti node, to do this select the Yeti node and open up the Graph/Input Grooms palette and Add Grooms(s). This will bring up a selection window that lists all the possible grooms in the scene.


_images/groom_05.png


Select the desired groom and Select Groom(s) which will attach the Groom to your Yeti node and you should now see it in the list of Input Grooms.

The next step is to return to the graph editor ( selected the Yeti Node and press GE in the Yeti shelf or Open Graph Editor). As with all data you will need to import the groom, use the Import node and in the attribute inspector set it too groom mode. In the name field specify all or some of the name of the groom ( you need to specify the groom shape node, in practice it’s safe to use myGroom* vs. having to explicitly set myGroomShape ).


_images/groom_06.png


It’s likely that the minimal use for the groom will be to adjust the fibers directions and to do this you will need to use the Comb node. Once created make sure the main fur flow ( output from Grow ) is connected to the first input of the Combnode, and connect the output from your groom Import node to the second input of the Comb node. When set as the root you should now see the fibers adhering to the groom you created.


_images/groom_07.png


If you adjusted the lengths of the strands in the groom node you can also connect the groom to the second input of the Grow node, this tell the grow node to use the length attribute of the strands as a multiplier. Lastly, if you painted a density attribute on the groom node you can also connect the groom to the Scatter node in a similar manner to control how the initial source points are generated.


_images/groom_08.png


Once the groom has been imported and used in the graph and changes to the groom will dynamically be updated in the graph and viewport. This is useful to see the final result of the graph though depending on the density and complexity of the graph it may slow down interactivity.


Tool Settings

When in the Groom context the Tool Settings window will present many of the tools you can use to comb, sculpt, trim and paint the strands as well as offering control over mirroring and update frequency.

_images/groom_tools.png

Brush Settings


_images/groom_tools_brush.png



Attribute

Description

Strength

Strength of the brush.

Radius

Radius of the brush.

Softness

How soft the brush is, this controls the falloff from the centre of the brush to the full radius.

Base/Tip Strength

Control the brush strength along the length of the strands.

U/V Tangent Weight

Used to control how the U and V tangents are mixed when using the Tangent brush.

Mirror

Choose an axis to turn mirroring on.

Sculpt Mirror Style

Use World to mirror the sculpt brush in world space, or Screen to do so in screen space.

Obey Surface Normal

Used to determine if strands facing away from the stroke will be affected.

Grooming Tools


_images/groom_tools_grooming.png


Populating

When populating you are adding or removing strands from the groom, depending on parameters selected you may be arbitrarily adding points to the surface or the new surface points can be constrained to the vertex positions.


AddUsed to add strands to the groom, only a single strand will be created within the radius of the brush.
DeleteUsed  to remove strands from the groom.
ScatterAdd strands by scattering them on the surface under the brush as if using a spray can.


Combing

Combing tools affect the strands based on their surface position with the effect generally based on their relationship to the underlying surface and surrounding strands.


CombThe most familiar mode where the stroke pulls the strands in the direction of the brush stroke.
DirectionThis will change the orientation of the strand but not it’s shape.
LiftLift the strands off of the surface of the mesh.
StraightenStraighten out the strands shape across the length using the base as a normalized direction.
SmoothSmooth out the strands to create a more even groom.
MoveMove strand around the surface of the input geometry.
ScaleUniformly scale the strands, this differs from length as you’re not altering the strands shape.
ClumpAs the brush moves the strands will clump towards a point on the surface at the beginning of the stroke.
TwistTwists the strands around the center axis of the brush.
TangentAligns the strands to the surface tangent.

 

Sculpting

Sculpting acts on the strands in world space. While sculpting the groom is less concerned about strand to strand relationship and focused on the over all shape/mass of the groom.


SculptSculpt the volume of strands.
TrimTrim away the ends of strands, as if you were using a plane/scissors to cut them

 

Workflow and Settings

The last few tools in the Tool palette are to help with Workflow as well as a general setting which controls how often graphs are evaluated when painting.

_images/groom_tools_workflowandsettings.png


Flood Fillflood fill using the currently selected tool
De-Selectdeselect strands previously selected with the ctrl-hot key
Invert Selectioninvert the current selection
Mirror Selectionmirror the current selection
Undoundo the last action ( CTRL + Z )
Redoredo the last action ( CTRL + SHIFT + Z )


Attribute Painting

Besides used to adjust the shape of strands Yeti Grooming allows any number of custom attributes to be painted.

Attribute Painting is used to control attributes that generally represent one value per strand where the interaction takes on a more painterly feel vs. adjusting the strands directly, this includes length ( which is always available ), density and width.


_images/groom_attributepaint.png

Except for Length any other attribute needs to be added before painting - using the four buttons at the bottom of the palette a user can Add, Duplicate, Rename and Remove attributes ( except Length ).

To start painting an attribute double-click on it’s name in the Attribute List, all the brush parameters will affect the attribute paint as expected.


Attribute

Description

Display

Turn attribute display on/off.

Display As Heat Map

Will draw the displayed paint values as a heat map vs. a greyscale representation of the values.

Display Size

Size of the attribute in the viewport.

Clipping Level

An attribute is treated as an HDR value which means it’s possible to paint above 1.0 - by adjusting the clipping level you can change.

Randomize Seed

The seed to use with the Random brush.


Hotkeys

KeyUse
CTRL+LMBSelect strands, CTRL-clicking in empty space will clear the current selection.
CTRL+RMBDeselect strands.
BAdjust the brush size.
MAdjust the brush strength.
CWill lock the end points of each strand (v4.0)
CTRL-ZUndo
CTRL-SHIFT-Z Redo


Add Layer Mask

When a groom is used as an input to a Deformation Layer a layer mask can be used to paint and isolate the effect of the groom like an alpha channel.


Tools

When in the groom context specific Attribute Paint tools can be used - the Attribute Paint Value is controlled via a monochromatic colour (only floating point attributes can be painted at this time).


_images/groom_tools_attributepaint.png

Paint - Paint the current value on the surface.

Increase - Increase the current attribute by the paint value.

Decrease - Decrease the current attribute by the paint value.

Smooth - smooth out the painted values modulated by the brush strength.

Random - randomize the painting effect.

Sample - used to sample the attribute value already painted.


Selection

While grooming it’s possible to select and de-select strands to limit the effect of the brush, to do this hold down the CTRL key and the first mouse button to select points and the CTRL key with the second mouse button to deselect points. You may find that while working on a groom you may want to only see strands you have selected, this is possible by toggling on the Isolate Selected attribute in the grooms Display palette.


Component Editing

Grooms fully support Maya's component editing allowing you to have finer control over individual strand shapes.


By default when you first enter the component editing mode all of the points on the strands will be visible, this can be toggled in the Groom's AE editor in the component editing tab by turning the Display Style from All to End Points.



The maintain length option will ensure that when editing the length of the strands will maintain their length, when off the same strands can be stretched and pulled accordingly.


Adjusting Length

While component editing holding the SHIFT key will put you in length editing mode, as the mouse moves the selected strands will get longer/shorter depending on what direction your move your input device.


Groom Node

Global groom parameters are used to control the behavior of the Groom.

Attribute

Description

Edit

Edit the groom with brush based toolset.

Radius Of Influence

By default a strand in a groom has the potential of affecting any fur element created in the graph, by adjust the radius of influence you can limit the radius at which the strands affect the data. It’s generally a good idea to use the Display Radius Of Influence display parameter to visualize this.

Strands

General settings to control the strand topology.

Attribute

Description

Conform New Strands

When off new strands will use defaults set above, when on new strands will use interpolated values from the surrounding strands to conform itself to the neighbourhood.

Initial Strand Length

The default length for new strands, this can also be 0 to paint points vs strands.

Strand Segment Length

Each strand is made up of a number of segments, each segment will be equal too or less than this specified value - depending on the Initial Strand Length parameter.

Populate At Mesh Points

When on new strands will be created on the vertices of the input object, when off you’re able to create new strands anywhere on the input object.

Minimum Strand Distance

When adding or moving strands Yeti will ensure that this minimum distance is kept between strands within the Groom.

Resampling

Controls to resample all or selected strands.

Attribute

Description

Resample Type

Choose whether to resample the strands by count or length.

Min Segments

The minimum number of segments for strands after resampling.

Max Segments

The maximum number of segments for strands after resampling.

Segment Count

The number of segments desired for resampled strands.

Segment Length

The segment strand length desired for resampled strands.

Resample

Resample all or selected strands.


Parting

Attribute

Description

Parting Randomness

Can be used to globally control how random the parting regions are.

Auto Parting

Toggle Automatic Parting on/off

Auto Parting Threshold

A threshold used to determine what angle should be considered for Automatic Parting

Auto Parting Reference Position

The a reference position along the strands to use to compute the angle threshold for Automatic Parting

Deformation Layers

Introduced in Yeti 3.0, Deformation Layers provide a way of layering in additional Grooms and Guides on top of the current groom to mix, blend and deform the strands in a flexible way.


Other than being created on the same mesh there are no additional requirements for the guide layers, they can vary in strand count, length, etc.


_images/groom_deformationlayers_01.png


Attribute

Description

Do Layer Deformation

Toggle layer deformation on/off.

Add Guise Set Layer(s)

Add a guide set as a new deformation layer.

Add Groom Layer(s)

Add a groom as a new deformation layer.

Once a layer has been added it’s weight can be controlled via the input or slider, or it can be re-ordered with in the stack.


Utilities

It is also possible to export the current attribute to a texture map ( using the current UV coordinates of the input mesh ) and import a texture to set the values of the current attribute.


Display Attributes

_images/groom_display.png


Attribute

Description

Display Strands

will turn off/on the display of the strands.

Display Strand Segments

will draw the strand segments in the viewport.

Isolate Selected Strands

will only draw the currently selected strands in the viewport.

Display Strand Length

provides feedback on the length of each strand, which is drawn at the tip.

Color

Color of the strands.

Parting Regions

Many hair styles are defined by a part where hair is combed in opposite directions to define a distinctive shape to the groom - although it’s possible to groom strands in opposite directions; by default Yeti tries to interpolate between the strands leading a fanning effect which may not be the desired result.

To support grooms where true parting is needed part regions can be created using a part_ tag as a prefix to a new attribute ( eg. part_left, part_right ). These attributes are masks that define the area of influence for the region and strands fully contained in one region will not interpolate with those fully contained in a different region, if a strand is contained in two ( or more ) regions then the effect is weighted based on the value of the masks.

A special attribute called part_randomness can also be painting which modulates how random the parts appear which is helpful to avoid uniform looking results.

Please see yeti_partingExample.ma for a reference.