如何将骨架绑定到网格上?

How do I bind a skeleton to a mesh?

提问人:3DVein 提问时间:8/4/2023 最后编辑:LW0013DVein 更新时间:8/6/2023 访问量:56

问:

我需要使用已经作为原始数据(顶点、索引、纹理坐标、法线、骨骼、权重、位置等)存在的数据创建网格及其骨架。我有一个完整的设置,它与 WPF 中的 Helix Toolkit SharpDX 完美配合。它目前代表一个没有骨架/动画的角色。现在,我想给它附加一个骨架。我只是找不到任何文档可以这样做。我查看了这些示例,但我发现唯一有趣的事情是“BoneSkin”示例,但它正在加载 fbx 文件而不使用原始数据。MeshGeometryModel3D

我认为至少,我需要的东西不是,因为它缺少任何骨骼绑定,所以我找到了,但它似乎缺少“材料”等重要功能。MeshGeometryModel3DBoneSkinnedMeshGeometry3D

我试过了:

  • 设置一个完全工作,但似乎与骨骼不兼容MeshGeometryModel3D
  • 我尝试使用该类,但它似乎缺少材料等重要功能,我不确定如何使用该类,因为我找不到任何文档。BoneSkinnedMeshGeometry3D
C# WPF 网格 SharpDX Helix-3D-工具包

评论


答:

0赞 Lance H 8/5/2023 #1

您需要与 一起使用。BoneSkinMeshGeometryModel3DBoneSkinMeshGeometry3D

评论

0赞 3DVein 8/7/2023
你介意解释一下我,我如何使用这些类来实现我自己的骨架吗?或者更好的是:你能为我提供学习的主题,以便我自己理解吗?
0赞 Lance H 8/25/2023
基本上,你要定义一个变换矩阵数组,然后在每个顶点上分配骨索引,以与数组中的 1~4 个变换矩阵相关联。然后更新每一帧中的变换矩阵数组,以执行骨骼蒙皮动画。