Change Tracking 

 

Instability problem 

Procedural nature of some operators in Ornatrix can introduce instability which accumulates over evaluation of the whole operator stack. For example, the Frizz operator can be slightly sensitive to the shape of the input hair and introduce minor rotations as the input hair shape evolves over time. Having many Frizz operators on top of each other can amplify this sensitivity and cause jittering or unwanted movement of strands. Long hair stacks with tens of operators on animated hair are especially prone to this issue.

Additionally, there may be floating point precision errors where hair (and/or its base character) are located far away from scene's origin which produce similar jittering problems.

 

Object-space solution 

To resolve the aforementioned jittering problem we can cache the object-space offsets to strand generated by an operator and re-apply them in subsequent frames instead of re-evaluating the operator. Additionally, this could be much faster than evaluating the procedural operator.

In Ornatrix this is done using a feature called Change Tracking. Select operators provide this option (off by default) which can be used to make Ornatrix cache the operator's effect and re-apply it in object-space coordinates in subsequent frames.

 

Parameters 

To use Change Tracking, go to Attribute Editor and find the Change Tracking group. Change the option to desired value. The following options are available:
  • Off: Operator is evaluated completely every time
  • Stored: Operator is never evaluated, changes are stored with it
  • Precomputed: Operator is evaluated once after being loaded and change-cached thereafter
 

Supported Operators 

The following operators support change tracking functionality:
Missing Something? Let us know if this page needs more information about the topic.