2016-08-22 8 views
1

Недавно я только что прочитал Введение в программирование 3D-игр с Directx 11, и я пытаюсь использовать пример в главе 25 для загрузки моей собственной модели. Поэтому после того, как я обманул модель и экспортировал данные в формате .fbx, я пытаюсь загрузить данные о костях и анимации и получить неправильные результаты. Так,с использованием обрезки для загрузки данных анимации fbx

1. Я просто скопирую матрицу смещения в свою собственную структуру и перенесу ее, это нормально?

for (auto & s: names) 
{ 
    auto index = maps[s]; 
    auto m = matrixmaps[s]; 
    memcpy(offset.float1d, m, sizeof(float)* 16); 
    TransposeMatrix(offset); 
    Offsets[index] = offset; 
} 

2.I обнаружил, что корень кости (Bip001) имеет нулевой ключевой кадр, так что проверить иерархию узла в assimp данных загружен, и я заметил, что иерархия кость так же, как показано ниже:

|_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 

Как я должен иметь дело с родителем узла Bip001, следует ли копировать ключевые слова, ключи вращения и масштабирующие клавиши с этого узла на Bip001? Пожалуйста, помогите мне понять это. Большое вам спасибо.

ответ

0

Для второй проблемы установка AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS в false работает для меня.