Grooms in Ornatrix are hair stack presets. A groom contains a predefined list of operators and their parameters to generate specific hair style, effect, or anything else which can be procedurally done in Ornatrix. For example, the default "Hairball" set up in Ornatrix is a groom which adds guide generation, editing, hair generation, and render settings modifiers. Grooms can create new objects inside a scene or be applied to existing objects by growing hair on them.

Grooms are stored in self-containing XML files with .oxgroom extension. These files can be saved and shared.


Creating hair using a groom 

By default there is a set of grooms which comes with Ornatrix. To create hair using an existing groom click the top-most button on the Ornatrix toolbar. This will bring up a grooms dialog. If you have selected an object in the scene the grooms appropriate for this object will be displayed. For example, if you have a polygon mesh selected only grooms which can create hair on a surface will be displayed. If you have a spline shape selected only grooms utilizing curves will be displayed.

Select the groom you want to use and click the "Create" button.


Creating new grooms 

Besides "consuming" grooms you can also create new custom grooms to reuse later or share with friends. To create a groom first select the hair object from which you would like to save the style and then use the "Generate Groom" button on Ornatrix toolbar to bring up the Generate Groom dialog.

Specify the name of the groom and directory where you would like to save it. You may also specify a 64x64 pixel PNG file to use as a thumbnail for the groom. The bitmap will be embedded in the resulting .oxgroom file.

Check the Base Object Is Optional button if you think your groom can be applied on other meshes, not just the one you have selected. If this option is off then your whole hair object will be re-created when creating the groom, including the distribution mesh. This is typically useful when Edit Guides modifier was used to add custom styling to your hair shape.

Once everything is set up click the Generate button to save the groom.


Renaming and deleting grooms 

The default location of grooms is in the C:\ProgramData\Ephere\Ornatrix\Grooms directory. You can manage and rename grooms by using Windows Explorer to edit the .oxgrooms file there directly.


Editing groom XML files 

A groom is just an XML file which contains a list of operators and their parameters. You can manually create and edit groom files using an XML editor and knowledge of Ornatrix supported operator names and parameters.


Grooms directory 

The grooms are loaded from a pre-defined directory by default. By using the Browse... button you can change the directory from which grooms are loaded. The changed directory will be used next time you attempt to load a groom. You can use the Default Directory button to go back to the default directory. The default grooms directory is C:\ProgramData\Ephere\Ornatrix\Grooms.

The purpose of choosing this directory was to allow both read and write access to grooms for all users on a computer. This way grooms can be loaded and saved into a central directory by any user on a workstation.


Changing default grooms directory 

It may become necessary to change the location of the directory from where grooms are loaded. For example, you may want to have one central directory on your network accessible to all workstations containing the grooms.

There are two ways to change the default grooms directory:
  1. Set the DefaultGroomsDir key in Ornatrix.ini file, typically located in C:\Users\USERNAME\AppData\Local\Autodesk\3dsMax\20XX - 64bit\ENU\en-US\plugcfg
  2. Add an environment variable ORNATRIX_GROOMS_DIR containing the default grooms path

Units setup 

All values representing distances in grooms are represented in centimeters. The values are automatically adopted to the scene scale which you are using. If, when creating a groom, the hairs are too short, for example, please check that your object scale isn't too big. An object many meters across will likely have very short hairs if they are several centimeters long.


MaxScript access 

-- Creates a groom from specified file path or XML string and applies it to specified objects. 
-- If file path is undefined "Create Groom" dialog will be presented. objectList can also be undefined.
-- Scaling allows to apply additional scaling to world-space parameters of the groom
-- Detail allows to increase or decrease granularity parameters within the groom
OxCreateGroom filePathOrXmlString objectList scaling detail

-- Example:
OxCreateGroom "C:/MyGroom.oxgroom" #($MyBaseMesh) 1.0 1.0

-- Generates a new groom from specified scene node and assigns it specified node name.
OxGenerateGroom sceneNode groomName

-- Generates a new groom and returns its XML content as the result
OxGenerateGroomXml sceneNode
Missing Something? Let us know if this page needs more information about the topic.