为什么LBS(Linear Blend Skinning)公式很难使用四元数?
Why is it difficult to use Quaternions for the LBS(Linear Blend Skinning) formula?
为什么四元数难以用于 LBS(线性混合蒙皮)公式?:
见图:
Linear Blend Skinning Formula
- P':点变换
- P: 点
- wi:权重矩阵
- wi(P): 第i个点P的权重
- Ti:在 i 处变换
我真的找不到答案,我想也许是因为变换矩阵可以存储 4x4 值而不是四元数,四元数只能表示 4 个值的旋转,所以我们无法同时表示使用四元数对任何骨骼进行平移和旋转,但我不太确定。
你完全正确。四元数只能表示旋转(和缩放)这一事实使它们无法用于此任务。四元数(对偶四元数)的扩展可以规避此限制。然后,线性混合效果很好。
此外,请记住如何使用四元数转换点 - 您有两次乘法而不是一次。因此,您通常会先混合四元数,然后再变换点。虽然也可以混合变换后的点,但这没有什么意义,因为它的计算量更大,并且与简单的 LBS 存在相同的问题。
这个问题是否针对更多的东西仍然悬而未决。
为什么四元数难以用于 LBS(线性混合蒙皮)公式?:
见图:
Linear Blend Skinning Formula
- P':点变换
- P: 点
- wi:权重矩阵
- wi(P): 第i个点P的权重
- Ti:在 i 处变换
我真的找不到答案,我想也许是因为变换矩阵可以存储 4x4 值而不是四元数,四元数只能表示 4 个值的旋转,所以我们无法同时表示使用四元数对任何骨骼进行平移和旋转,但我不太确定。
你完全正确。四元数只能表示旋转(和缩放)这一事实使它们无法用于此任务。四元数(对偶四元数)的扩展可以规避此限制。然后,线性混合效果很好。
此外,请记住如何使用四元数转换点 - 您有两次乘法而不是一次。因此,您通常会先混合四元数,然后再变换点。虽然也可以混合变换后的点,但这没有什么意义,因为它的计算量更大,并且与简单的 LBS 存在相同的问题。
这个问题是否针对更多的东西仍然悬而未决。