首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >glm四元数旋转合并

glm四元数旋转合并
EN

Stack Overflow用户
提问于 2016-04-19 14:06:59
回答 1查看 1.8K关注 0票数 2

我目前正在试图弄清楚四元数在glm中是如何相乘和连接的,但是我发现的每一个线程都只提到一个四元数的旋转.基本上,我如何组合四元数,使所有的旋转连接在一起?例如:

代码语言:javascript
复制
glm::quat quaternions[4]; // how to merge all 4 quaternions?

到目前为止,我已经尝试了两种方法:

代码语言:javascript
复制
// approach 1:
glm::quat quaternions[4];
glm::quat q = glm::quat(glm::vec3(0));
q *= quaternions[0];
q *= quaternions[1];
q *= quaternions[2];
q *= quaternions[2];
glm::mat4 matrix = glm::toMat4(q);

// approach 2:
glm::quat quaternions[4];
glm::mat4 matrix = glm::mat4(1.0f);
matrix = matrix * glm::toMat4(quaternions[0]);
matrix = matrix * glm::toMat4(quaternions[1]);
matrix = matrix * glm::toMat4(quaternions[2]);
matrix = matrix * glm::toMat4(quaternions[2]);

这些方法似乎都没有给我带来我期待的结果。

编辑:我应该补充一下,我试图用assimp和glm来剥掉一个collada模型。方法1和方法2给出了我正在寻找的确切解决方案,因此两者都应该有效。

EN

回答 1

Stack Overflow用户

发布于 2016-04-23 01:54:04

经过3天的反复试验,我终于明白了到底是怎么回事。结果发现我的一些骨头在搅拌机里“滚”了一下,把事情搞砸了。倒立的骨头在我的网眼里也是个问题。因此,对于任何对assimp加载的动画有问题的人:

  • 先检查你的绑定姿势
  • 确保你没有倒过来的骨头,这可能会引起一些问题。
  • 检查所有的骨骼信息(在我的例子中是“滚动”造成问题)

所以我的四元数密码没什么问题..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36720821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档