-
Notifications
You must be signed in to change notification settings - Fork 0
Add spline animation proposal. #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
# Spline Animation in USD | ||
|
||
This project aims to support spline animation on USD attributes. The project is | ||
called **USD Anim** for short. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
USD Anim
seems to be a confusing name for the project? Why not USD Time Series if it lands in the ts
implementation?
scene description. Since many 3D applications represent varying values with | ||
splines, it is a natural step to add splines to USD's vocabulary. | ||
|
||
**Gaming pipelines.** Game engines can work with spline data, and many are |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: this might be a generalized assumption.
| | Splines | Time Samples | | ||
| ----------------- | --------------------------- | --------------------- | | ||
| **Data format** | Curves defined by knots | Lookup tables | | ||
| **Data density** | Sparse | Dense | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this might apply to complex animations but a liner 0->100 time sample animation can be sparse as well
Hermite curves are non-parametric, and can be evaluated in constant time | ||
via a simple cubic polynomial. | ||
|
||
- **General USD standards:** a contextually appropriate implementation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why's this listed here?
|
||
# Spline Animation in USD | ||
|
||
This project aims to support spline animation on USD attributes. The project is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be worth mentioning that Splines are also called Animation curves in the prelude. A lot of people coming from Maya might be more familiar with that term, whereas "spline" is often used to refer to a non-stepped curve in Maya parlance. I think a brief mention that they're the same thing might be beneficial for some folks.
comes to mind, and they are not interpolated using spline math, but we still | ||
call them splines. | ||
|
||
We refer to the points where curve segments join as _knots_. In a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be useful to have a labelled diagram here for clarities sake. I think your description is well written but may be a bit abstract to visualize.
|
||
- _Inner loops_ come from Presto. These specify a _prototype region_, which is | ||
repeated a finite number of times before and/or after the prototype region. | ||
The repeated portions are called the _echo region_. Inner loops use a mode |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I fully understand the difference between a prototype region and an echo region, since both seem to get repeated? Or is the echo region the part of the time line that includes the animation repetition, while the prototype region is the area that is being repeated? so an echo region is fed by a prototype region?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also would source region
perhaps be a more accessible term than prototype region?
after the knots. Extrapolating loops support modes called _Repeat_, _Reset_, | ||
and _Oscillate_, described below. | ||
|
||
It will be possible to use both systems in the same series. In that case, inner |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the inner loop concept might be (to my knowledge) unique to Presto, it may be worth recommending/havng a baking system within USD to bake out either system into a non-looped series (ie the loops are still maintained, but loose their reference to the specific source region)
Thanks to Doug Epps at Apple for the suggestions.
Description of Proposal
Add spline animation to USD.
Contributing