Skip to content
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

Simplify graph architecture #11

Merged
merged 3 commits into from
Dec 14, 2023
Merged

Simplify graph architecture #11

merged 3 commits into from
Dec 14, 2023

Conversation

mbrea-c
Copy link
Owner

@mbrea-c mbrea-c commented Dec 14, 2023

Objective

The generality of the current graph architecture causes complications during processing, especially when it comes to cache output. Most other animation graph implementations (as far as I'm aware of) restrict pose outputs to one per node and only allow pose outputs to be connected to one other pin. This ensures that each pose output will be queried once per frame, simplifying caching and computation.

This should also enable performance improvements, as it will be easier to replace string IDs with integers and hashmap lookups with integer indexing.

Solution

Refactored the code to enforce the following graph invariant:

  • Each node can only have a single pose output
  • Each pose output can only be connected to a single input

Breaking changes

As part of the refactoring, the animation graph format was changed slightly. Refer to the updated examples for instructions on how to use the updated format.

@mbrea-c mbrea-c added the enhancement New feature or request label Dec 14, 2023
@mbrea-c mbrea-c merged commit 0540950 into master Dec 14, 2023
4 checks passed
@mbrea-c mbrea-c deleted the simplified_time_queries branch December 14, 2023 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant