Ornatrix Alembic Hair Export 



Exporting 3ds Max Ornatrix hair and guides into Alembic format is now supported. Hairs are exported as Alembic curves into an *.abc file which can then be imported into various other applications and renderers supporting the Alembic format.

Various information such as hair positions and widths is exported. It is possible to export a single strand object or a group of them, for example, all hair objects present within the scene. You may also export a single frame or an animation range for the hair.

Options for the export process are specified in a special dialog. Alternatively, you may use MaxScript to export hair without any UI.


Exporting hair to Alembic: 

  1. Select the hair objects which you would like to export inside the scene. Alternatively, you may leave scene selection empty and just export all Ornatrix hair and guide objects within the scene. If there are no such objects inside the scene you will be notified.
  2. Click on the "Export" option within 3ds Max's main menu
  3. In the file format drop down select "Ornatrix Alembic Hair"
  4. Browse to the destination directory and type in your target file name
  5. Select your preferred export settings.
  6. Press "Export" button to write the Alembic file

Settings Dialog 

The settings dialog presents you with some configurable options for writing the Alembic file:

  • Format
    Specifies the Alembic archive format to use. Ogawa is a more popular and a more efficient format.
  • Selected Hair Objects
    When this option is used, only currently selected hair and guide objects within the scene will be exported. This option will be greyed out of the selection is empty.
  • All Hair Objects in the Scene
    When this option is used, all hair and guide objects within the scene will be exported.
  • No Animation
    Allows exporting just a single frame within the scene. As a result all exported hair will be static and the Alembic ABC file will be smaller in size. This is analogous to setting the start and end time for the export to the same frame.
  • Current Animation Range
    Allows exporting all frame within 3ds Max's current animation range. This range is defined by 3ds Max's time line.
  • Custom Range
    Allows you to specify custom start and end frames for which to export hair and guide animations manually. The end frame must be equal or bigger than the start frame.
  • Use World Coordinates
    When on all coordinates will be exported in world coordinates, otherwise they will be exported in local object coordinates. Turn this option off when exporting hair animation to be used with Animation Cache modifier.

Exported Components 

These are different aspects of hair which can be selectively exported or ignored:

  • Export Velocities
    When on, a velocity vector will be written for each hair vertex. This is needed if you're exporting per-frame .abc files and want to have motion blur working when rendering it out.
    • Velocity Interval Center
      When velocity export is used specifies the offset from current frame which will be the center of the interval used to compute the velocity vectors
    • Velocity Interval Length
  • Export Strand Data
    When on, any per-strand and per-vertex data which exists in hair will be written to the Alembic file. This data can be created with Edit Guides modifier or Generate Guide Data modifier, for example.
  • Export Texture Coordinates
    When on, all texture coordinates channels present in hair will be written to the Alembic file
  • Export Widths
    When on, the strand width/thickness information will be preserved into the Alembic file
  • Export Strand Ids
    When on, unique strand ids will be written to the Alembic file. This is useful if you want to ensure that applying operators after importing the hair back will provide consistent results since strand ids are often used to set random values by some operators.

MaxScript Access 

You may use OxAlembicExport global MaxScript function to export hair into an Alembic file. This function has the following signature:

OxAlembicExport [string filePath] [bool exportSelectedHairs] [int startFrame] [int endFrame] [bool exportRenderVersion] [int upDirection] [int format] [bool useWorldCoordinates] [bool exportVelocities] [bool velocityIntervalCenter] [bool velocityIntervalLength]
  • filePath: Specifies an absolute path where to save the Alembic file.
  • exportSelectedHairs: When true currently selected scene hair and guide objects are exported. All scene hair and guide objects are exported otherwise.
  • startFrame: First frame of hair animation to export.
  • endFrame: Last frame of hair animation to export. If this is the same as startFrame a single/static hair frame will be exported.
  • exportRenderVersion: If true render count and settings for hair will be exported. Otherwise hair will be exported as it is seen in the viewport.
  • upDirection: Specifies the "up" direction of the exported hair scene. Accepted values are 0: X-axis, 1: Y-axis, 2: Z-axis. For example, exporting hair to Maya requires Y to be the "up coordinate".
  • format: Specifies Alembic format to use. Accepted values are 0: Ogawa, 1: HDF5.
  • useWorldCoordinates: Set to true or false to control in which coordinates hair will be exported.
  • exportVelocities: Set to true or false to export per-vertex velocities or not.
  • velocityIntervalCenter: Set to frames to offset velocity interval.
  • velocityIntervalLength: Set to frames to set length of velocity interval.


You can find examples on usage of Alembic exporter by examining the unit tests in Test_AlembicExporter.ms.