【发布时间】:2011-12-21 17:50:08
【问题描述】:
我的部分代码通过存储 xyz 位置、xyz 比例和四元数来存储相当于 4x3 矩阵的内容。代码如下:sn-p:
class tTransform
{
// data
tVector4f m_Position;
tQuaternion m_Rotation;
tVector4f m_Scale;
};
我想将这些对象中的 2 个相乘,(就好像它是矩阵相乘一样),我想知道是否有比将每个对象转换为矩阵更快/更好的方法,以这种方式进行相乘,然后再次提取结果位置、旋转和缩小?
【问题讨论】:
-
感谢您的回复 :) 我不禁想到做矩阵到四元、四元到矩阵,以及获取新尺度的结果矩阵的 XYZ 轴的长度不是最好的方法。我想我可以通过几次检查来跳过比例部分。
-
如果您知道更好的解决方案,您可以重载矩阵四元数上的乘法运算符
-
我认为缺乏答案表明我一开始就以完全错误的方式解决我的问题......我想回到绘图板! :)
-
@CharlesBeattie 有趣...我已经重新设计了我的实现,不再需要解决方案,但我仍然很想听到解决方案?
-
你去。我不太相信比例尺,因为我只用过骨骼动画。
标签: c++ vector matrix quaternions