Hair Shells Modifier 


Guides before and after shelling. Shells force guides to conform to the new surfaces length-wise. Hair is to be smoothed afterwards

The main goal of any hair plugin is to allow the user to intuitively describe the hair volume. Hair shells is one of Ornatrix' approaches to this problem. The main idea is to direct the flow of hair using shell cages. Whenever hairs are generated in Ox they are 'glued' to a part of the surface that is distributing them (if there is any). As the mesh deforms hair stay glued to their initially assigned spot. Therefore if the mesh was to be duplicated and its topology stayed in tact it is possible to calculate the new point of every hair based on its initial root position on the new mesh.

By modifying the shells you directly manipulate the shape of the whole hair volume. The more shells you use the more detail you can put into the hair but it also becomes harder to control.

Use the Shell Objects box to Add, Remove and change the order of the Shells.

Tip: Use a Strand Detail modifier on top of hair shells to smoothen out the rough result. This way you can see right away the final smoothed hair shape as you're modifying the shell volumes.

 

Parameters 

  • Cut penetrating strands
    When two inter-penetrating surfaces are used as shells, it is usually undesired for hairs to cut through the original distribution surface. If this option is on, once such penetration is detected the strands are automatically cut.
 

C++ SDK Access 

This object is accessible via Ornatrix C++ SDK. You need to get an instance of HairShellsModifierFPInterface which exposes numerous methods:

#include "HairShellsModifierFPInterface.h" 

// Get Surface Comb interface
auto bakedHair = HairShellsModifierFPInterface::GetInterface( myObject );

 

MaxScript Access 

Control hair shells modifier:

/* Add Shell to the list.
node Shell object
returns true if success */
wasAdded = hairShellsMod.AddShell node

/* Remove Shell from the list.
index of the object from the list
returns true if success */
wasRemoved = hairShellsMod.RemoveShell index
Missing Something? Let us know if this page needs more information about the topic.