0
\$\begingroup\$

I have worked with hierarchical blended animation systems for a number of years, but I have never been quite sure how to handle scale correctly. The introduction of non-uniform scale is additionally puzzling. Does anyone have any insight into the right way of doing it? What I am trying to determine is when in the hierarchical concatenation that scale is included. My components are stored as a follows:

vector3 position;
vector3 scale;
quaternion rotation;
quaternion stretch_rotation;

What I am finding is if I include scale into the matrix during concatenation, I run the risk of grossly amplifying the accumulated errors down the hierarchy. Does anyone have any insight or articles here? To be clear - I know how to do hierarchical animation just not the right way to handle scale.

\$\endgroup\$

1 Answer 1

0
\$\begingroup\$

Maybe, in running through the hierarchy, you could multiply scalar scales for each separate axis, to get the distinct world-space scale for each separate axis. Unity's Transform calls this(?) lossyScale, and presumably because it is generated by multiplying the individual axes' scale all the way up the hierarchy, as I recommend, it is a readonly member. One can change the local scale at each level up the tree, individually. The brief doc for their implementation may be informative.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .