全局变换到局部变换?

3 math 3d graphics spaces

与此相关:将非分层变换应用于分层骨架?

如果一个对象附加到另一个对象,并且您需要在全局空间中设置其位置、旋转和缩放,那么在知道“父”对象的相同值的情况下,您如何获取这些值的本地版本?

(在另一个线程中,我可以执行 matrix.decompose() 从矩阵中获取这些值)

Max*_*Max 5

只需将对象的世界变换矩阵乘以父世界变换的逆矩阵:

M_loc = M_parent_inv * M
Run Code Online (Sandbox Code Playgroud)

  • 原理是一样的:你从世界位置减去父世界pos,如果旋转是矩阵,那么你将世界旋转矩阵乘以父旋转逆矩阵,如果四元数那么世界旋转四元数除以父旋转四元数共轭,然后世界尺度除以父母的世界尺度。 (3认同)