使用assimp加载fbx动画数据

时间:2016-08-22 23:40:02

标签: fbx assimp

最近我刚读了使用Directx 11进行3D游戏编程的介绍,我尝试使用第25章中的示例来加载我自己的模型。所以在我模拟模型并导出数据之后。 fbx格式,我尝试加载骨骼和动画数据并得到错误的结果。所以,

1.我只是将偏移矩阵复制到我自己的结构并转置它,这可以吗?

   |_RootNode
      |_Bip001_$AssimpFbx$_Translation
        |_Bip001_$AssimpFbx$_PreRotation
          |_Bip001_$AssimpFbx$_Rotation
            |_Bip001_$AssimpFbx$_Scaling
              |_Bip001
                |_Bip001 Footsteps
                |_Bip001 Pelvis
                  |_Bip001 Spine
                    |_Bip001 Spine1
                    | |_Bip001 Spine2
                    |   |_Bip001 Spine3
                    |     |_Bip001 Neck
                    |       |_Bip001 L Clavicle
                    |       | |_Bip001 L UpperArm
                    |       |   |_Bip001 L Forearm
                    |       |     |_Bip001 L Hand
                    |       |       |_Bip001 L Finger0
                    |       |         |_Bip001 L Finger0Nub
                    |       |_Bip001 R Clavicle
                    |       | |_Bip001 R UpperArm
                    |       |   |_Bip001 R Forearm
                    |       |     |_Bip001 R Hand
                    |       |       |_Bip001 R Finger0
                    |       |         |_Bip001 R Finger0Nub
                    |       |_Bip001 Head
                    |         |_Bip001 HeadNub
                    |_Bip001 L Thigh
                    | |_Bip001 L Calf
                    |   |_Bip001 L Foot
                    |     |_Bip001 L Toe0
                    |       |_Bip001 L Toe01
                    |         |_Bip001 L Toe02
                    |           |_Bip001 L Toe0Nub
                    |_Bip001 R Thigh
                      |_Bip001 R Calf
                        |_Bip001 R Foot
                          |_Bip001 R Toe0
                            |_Bip001 R Toe01
                              |_Bip001 R Toe02
                                |_Bip001 R Toe0Nub

2.我发现根骨(Bip001)的关键帧为零,所以我检查加载的数据assimp的节点层次结构,我注意到骨骼层次结构如下:

function custom_body_classes( $classes ) {
// Adds a class of nosidebar to sites without active sidebar.
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
$classes[] = 'nosidebar';
}
return $classes;
}
add_filter( 'body_class', 'custom_body_classes' );

我应该如何处理节点Bip001的父节点,我应该将positionkeys,rotationkeys和scalingkeys从这些节点复制到Bip001吗? 请帮我搞清楚。非常感谢你。

1 个答案:

答案 0 :(得分:0)

对于第二个问题,将AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS设置为false对我有效。