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

Store compressed data relative to the bind pose translation #100

Open
nfrechette opened this issue Dec 21, 2021 · 0 comments
Open

Store compressed data relative to the bind pose translation #100

nfrechette opened this issue Dec 21, 2021 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@nfrechette
Copy link
Owner

In the spirit of bind pose stripping, we can leverage the fact that the output pose buffer contains the bind pose to store our compressed data relative to it. See here for the general idea.

Storing the compressed pose to be a full additive on top of the bind pose is expensive to reconstruct at runtime as it requires quaternion multiplication. Instead, we could store relative to the bind translation only by removing it from our raw data and adding it back after decompression. This is much faster and can be accomplished with 2 uOps: a vector addition and a memory load.

This would reduce the range of translation values to be centered around 0.0 which should help improve precision and reduce the memory footprint.

However, much like bind pose stripping, this cannot be supported for bones that are individually decompressed. In fact, if any bone is individually decompressed, we cannot support this. We could exclude the root but not arbitrary bones as easily.

@nfrechette nfrechette added the enhancement New feature or request label Dec 21, 2021
@nfrechette nfrechette added this to the Backlog milestone Dec 21, 2021
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

No branches or pull requests

1 participant