Skip to content

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

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Add spline animation proposal. #1

wants to merge 6 commits into from

Conversation

Pixneb
Copy link
Owner

@Pixneb Pixneb commented Jul 26, 2023

Description of Proposal

Add spline animation to USD.

Contributing

# Spline Animation in USD

This project aims to support spline animation on USD attributes. The project is
called **USD Anim** for short.

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

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 |

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.

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
Copy link

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
Copy link

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
Copy link

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?

Copy link

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
Copy link

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants