缩放骨架和网格几何

问题描述

我目前正在从mixamo导入网格物体和动画。 问题是它们的认单位是厘米,所以我所有的几何形状和关节中都有x100因子。使用dual_quaternion可以很好地显示模型和动画,但太大了。

如果我错了,请纠正我:

  • 几何存储在 aimesh 结构的 mVertices
  • 关节的位置存储在 aiBone 结构
  • mOffsetMatrix
  • 如果动画转换不是 aiNode mTransformation 属性中的骨骼,或者已被中的T * R * S矩阵替换,则将存储动画转换 aiNodeAnim 结构
  • 的mPositionKeys,mRotationKeys

最终的转化链是:

glm::mat4 finalTransfo = bindInverseTransform * parentTransform * T * R * boneOffsets * vertexPos;

问题是我将所有动画转换烘焙到dual_quaternion内部,以将它们存储在GPU的纹理中。

glm::quat orientation = glm::quat_cast(finalTransform);
glm::vec3 translation = glm::vec3(finalTransform[3]);
glm::dualquat finalTransformDualQuat = glm::dualquat(orientation,translation);

这里出现问题是因为我认为它们不适用于非刚性转换,如果正确完成,它们应该能够存储比例,但是我插入比例矩阵的所有尝试都失败了。

因此,现在剩下的工作是在烘烤double_quaternion之前尝试出售骨骼和几何图形,但是我在Blender / Maya中进行的所有存储比例的尝试都会导致在根节点中生成矩阵,因此不会将其用于帐户。 (我的顶点位置保持不变)

  • 您发现我使用双四元数有什么问题吗?
  • 我该如何 在我的骨骼和顶点上应用比例矩阵?
  • 您知道一种可以直接缩放骨架和几何形状而不是根节点中矩阵的软件吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)