【问题标题】:Getting transformation matrix for bone animation in Assimp在 Assimp 中获取骨骼动画的变换矩阵
【发布时间】:2020-09-27 04:03:32
【问题描述】:

我正在学习在 Visual Studio Express 2019Assimp 中操作模型。所以我加载了一个模型,它有 0 个动画。我想对它的骨头应用一些变换,也许是手,并以我导出的 obj 格式查看它的效果。现在要查看 obj 格式的效果,我必须对其顶点应用更改,因此我必须在骨骼中分层应用变换。但我不明白如何实现这一切。 我看过 oglDev 教程 38 但看不懂。因此,我们将不胜感激。

以下是我需要帮助的想法->

1. 如何对骨骼及其所有孩子应用一些变换(考虑一个简单的人体模型)。

2. 如何获取受特定骨骼影响的顶点的最终位置,对于骨骼,我们只有变换矩阵,那么如何将它们转换为 X、Y、Z 坐标来告诉顶点位置。

我没有使用 OpenGL。

我想在 Assimp 中使用简单的 C++ 代码来完成这一切。

请参阅此处了解更多进度和困难详情: Wrong Bone Rotation in Assimp

【问题讨论】:

    标签: visual-c++ mesh skinning assimp skeletal-animation


    【解决方案1】:

    .obj 格式不支持骨骼动画(或任何形式的动画)。您不能旋转不存在的骨骼。您需要使用支持骨骼动画的模型格式并使用包含该数据的模型。示例格式包括 .fbx、.gltf、.dae (COLLADA)。

    【讨论】:

    • 我使用 obj 格式只是为了打印顶点位置。我知道看不到骨骼动画,但我想要的是对骨骼应用一些变换(可能是任何旋转 90 度的手臂),然后将相对于新骨骼位置的变换应用到顶点,然后检查 obj 格式的新顶点位置.
    • 我已经学会了展示模型,现在我想应用任何转换。为此,我在许多地方读到他们将旋转矩阵应用于 mesh 的父节点。父节点是什么意思?他们的意思是 node->mRootNode 吗?并且不对该节点应用旋转将整个模型转换 90 度或任何旋转,而我只想要从肩部到手腕的旋转?
    猜你喜欢
    • 2015-07-21
    • 2017-01-30
    • 2017-04-10
    • 2015-05-25
    • 2017-05-05
    • 2014-09-23
    • 2017-07-22
    • 2020-08-11
    • 2019-06-30
    相关资源
    最近更新 更多