animation - Why is it difficult to use Quaternions for the LBS(Linear Blend Skinning) formula?
问题描述
Why would be difficult to use quaternions for the LBS(Linear Blend Skinning) formula?:
See picture:
- P': Point transformed
- P: Point
- wi: matrix of weights
- wi(P): weight of point P in entry i
- Ti: Transform at i
I couldn't really find an answer, I thought that maybe because a transform matrix can store 4x4 values rather than quaternions which can only represent a rotation in 4 values then we wouldn't have a way to represent both a translation and rotation for any bone using a quaternion but I'm not too sure.
解决方案
你是绝对正确的。四元数只能表示旋转(和缩放)这一事实使它们无法用于此任务。四元数(双四元数)有一些扩展来规避这个限制。然后,线性混合效果很好。
另外,请记住如何用四元数转换一个点——你有两个乘法而不是一个。因此,您通常会先混合四元数,然后再变换点。虽然也可以混合变换后的点,但这没什么意义,因为它的计算量更大,并且与简单的 LBS 有相同的问题。
这个问题是否针对更多的东西仍然是开放的。
推荐阅读
- sql - 按日期按组对列值求和
- arrays - 如何使用索引从数组中删除元素?
- r - R:dccfit 错误:“dimnames”[2] 的长度不等于数组范围
- java - 操作系统环境变量不会在java中按主机更新
- c - 我不能无限使用 fscanf() 吗?
- indexing - DAE 上使用的 lsqcurvefit 函数给出的错误 Index 超过了数组元素的数量 (1)
- angular - 如何从“Http-Native”插件 Ionic(3 或 4)读取“Set-Cookie”标头?
- docker - 开发和生产中的 Vue 子域
- sql-server - min(count(*)) over... 行为?
- parsing - 从他的 LALR(1) 解析表中获取语法