gpt4 book ai didi

c - 如何获得每个骨骼的绝对矩阵?

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:33 26 4
gpt4 key购买 nike

我正在使用 C 和 OpenGL。我正在尝试加载带有骨骼动画的 3D 模型,但我似乎无法为动画的每一帧计算每个骨骼的绝对矩阵。

我有:对于每个骨骼,我有一个矩阵和一个逆矩阵,对于动画的每一帧,我有一个旋转(欧拉)和平移。

Blender 导入/导出脚本:

http://pastebin.com/xMJ2fG26

http://pastebin.com/9D42RKRf

编辑:如果有人知道如何使用 blender 获取骨骼的绝对矩阵并将其导出,那也很好(我是 blender 的新手)

for each frame f
for each bone i
glLoadIdentity();
glMultMatrixd(bones[i].matrix);
for each parent bone ii(starting from the top)
glTranslated(bones[ii].translation[f].x, bones[ii].translation[f].y, bones[ii].translation[f].z);
glRotated(bones[ii].degrees[f].z, 0.0, 0.0, 1.0);
glRotated(bones[ii].degrees[f].x, 1.0, 0.0, 0.0);
glRotated(bones[ii].degrees[f].y, 0.0, 1.0, 0.0);
glMultMatrixd(bones[i].inversematrix);
glGetDoublev(GL_PROJECTION_MATRIX, bones[i].absmatrix[f]);

最佳答案

这些脚本看起来像是为过时的 2.4*x* 版本的 Blender 编写的。对于 2.5*x*/2.6*x*,您有一个大大改进的 Python API,其中包括 Bone具有“matrix”和“matrix_local”属性的对象。

我建议您尝试使用当前版本的 Blender 做您想做的事。以这种方式将头撞到砖墙上的可能性要小得多。

关于c - 如何获得每个骨骼的绝对矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com