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