2016-08-22 6 views
1

최근에 나는 DirectX 11을 사용한 3D 게임 프로그래밍 소개를 읽었으며 25 장의 예제를 사용하여 내 모델을로드하려고합니다. 모델을 스킨하고 데이터를 내 보낸 후 .fbx 형식으로 뼈와 애니메이션 데이터를로드하고 잘못된 결과를 얻으려고합니다.assimp를 사용하여 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로 설정하면 효과가 있습니다.

관련 문제