Guides from Surface Object 

In most cases guides from surface modifier can be used to generate Ornatrix guides. However sometimes it is simpler to create a separate object that generates guides without having to be positioned in the pipeline as a modifier. Using an object instead of the modifier might also resolve an issue of randomly generated hair flickering when underlying mesh deforms.

 

When to use a guide object instead of a modifier? 

  • When base object can cache at multiple frames
    Ornatrix generates roots either through computing UV area of each face, or using its world area. When using the UV area there will be no deforming mesh issues. However when you use world area and your mesh is deforming, the areas of each triangle changes through time. Dense hair is cached before render begins and if you are rendering the whole time range in one go, there will be no problems. If you are rendering in separate pieces, hair will be cached multiple times -once per every render. If the face areas change during that interval you will get flickering once you compose these pieces together.
    If you use guide object instead of modifier, you have an option to distribute guides and dense hair on distribution surface only at a specific frame. This implies that the world face areas will stay constant and thus hair will always be generated the same way.
  • When MaxScript Guides Interface is required
    Because guides object is derived from core Ornatrix guide class, it provides the MaxScript interface which can be used to tweak cached guides through code.
 

Parameters 

Most parameters are identical to those found inside a guides from surface modifier.

  • Distribution Surface
    Surface from which the guides are generated
  • Convert Time
    Reference time when guides cache the underlying surface
 

MaxScript Access 

Retrieve MaxScript Guides Interface to be able to manipulate the guides:

myGuides = guidesObjectInstance.GetGuides()
myHair = myGuides.AsHair()

 

Examples 

You can find examples on usage of this object by examining the unit tests in Test_GuidesFromMeshObject.ms.