带有骨骼的 Assimp + COLLADA 模型 = 不正确的顶点位置
Posted
技术标签:
【中文标题】带有骨骼的 Assimp + COLLADA 模型 = 不正确的顶点位置【英文标题】:Assimp + COLLADA models with bones = incorrect vertex positions 【发布时间】:2014-07-25 10:24:36 【问题描述】:我正在使用 Assimp 加载使用 Blender v2.7 创建和导出的 COLLADA 模型,但我注意到一个有趣的问题。每当我在“对象模式”而不是“编辑模式”中将(在 Blender 中)转换应用于网格时,生成的转换不会应用于我从 Assimp 导入器数据中读取的顶点,而是应用于 @987654322 的 mParent
矩阵@ 包含网格。
这不是真正的问题,因为我可以读取网格的顶点,然后将它们乘以 aiNode
的 mParent
矩阵以获得正确位置的网格顶点。
每当我尝试对有骨骼的网格做同样的事情时,问题就会出现。我不知道为什么,但在这种情况下,我在“对象模式”中应用的转换既没有应用于我直接从网格中读取的顶点,也没有应用于aiNode
的mParent
矩阵。
有人可以向我解释如何使用 Assimp 和 COLLADA 模型获得具有骨骼的网格的顶点的正确位置吗?
【问题讨论】:
我认为这以某种方式涉及 OpenGL / GLSL?您谈到矩阵相乘和不正确的顶点位置,但没有给出相关的实现细节。在一遍又一遍地看到这个问题之后,我的预感是你没有正确处理整数顶点属性。 不是这样的。问题是我找不到 Assimp 的导入器在加载具有骨骼的网格时应该加载的对象转换。 【参考方案1】:也许更新 collada importer/exporter 可以解决这个问题。
【讨论】:
以上是关于带有骨骼的 Assimp + COLLADA 模型 = 不正确的顶点位置的主要内容,如果未能解决你的问题,请参考以下文章
带有 Assimp 的 OpenGL (GLSL) 中的骨骼动画