You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sometimes there is a need to blend and store animations in mesh space.
This is currently problematic because ACL expects a local space clip. If mesh space is provided instead, things will work but more precision will be retained than is otherwise necessary because the error won't be measured in the right place.
Support for this can be added in one of two ways.
In the compression settings, we can add an enum for local/mesh space. Then all joints are treated the same.
In the track description, the enum can be added.
Mesh space joints don't need to be computed relative to their parent which will skip some computation during compression. This can currently be achieved by forcing the parent index to the invalid index, making all mesh space joints as root joints.
One thing to consider is whether to store mesh space animations as local space for compression purposes. Mesh space animations compress poorly because if a joint is animated, all its children will also move in mesh space. If we store things in local space, the savings will be significant. However, during decompression, we will need to be able to reconstruct the mesh space pose which has an overhead, and it adds complexity. To be able to do so, we'll need the hierarchy information to find the parent joint. While this can be stored per clip, it will be redundant and cause bloat. The track writer will need to provide that information to reconstruct the desired pose or it will have to be left to the host runtime to reconstruct the mesh space pose from local space following decompression. If this is the case, ACL doesn't need to do anything as the mesh<->local transformations can be handled by the host runtime entirely.
The text was updated successfully, but these errors were encountered:
Sometimes there is a need to blend and store animations in mesh space.
This is currently problematic because ACL expects a local space clip. If mesh space is provided instead, things will work but more precision will be retained than is otherwise necessary because the error won't be measured in the right place.
Support for this can be added in one of two ways.
Mesh space joints don't need to be computed relative to their parent which will skip some computation during compression. This can currently be achieved by forcing the parent index to the invalid index, making all mesh space joints as root joints.
One thing to consider is whether to store mesh space animations as local space for compression purposes. Mesh space animations compress poorly because if a joint is animated, all its children will also move in mesh space. If we store things in local space, the savings will be significant. However, during decompression, we will need to be able to reconstruct the mesh space pose which has an overhead, and it adds complexity. To be able to do so, we'll need the hierarchy information to find the parent joint. While this can be stored per clip, it will be redundant and cause bloat. The track writer will need to provide that information to reconstruct the desired pose or it will have to be left to the host runtime to reconstruct the mesh space pose from local space following decompression. If this is the case, ACL doesn't need to do anything as the mesh<->local transformations can be handled by the host runtime entirely.
The text was updated successfully, but these errors were encountered: