2013-02-15 2 views
0

FBX SDK 2013.3 및 DirectX 프로젝트에서 작업하고 있습니다. 나는 몇 가지 기본적인 지식이 필요FBX SDK를 DirectX에 통합

,

는 애니메이션을 가지고 있지만 문제는 지금은 아니다, 내가 .fbx 확장자 마야에서 내 보낸 큐브를 가지고 있다고 생각합니다.

이제이 .fbx 파일을 DirectX에로드해야하므로 인덱스, 정점 위치가 처리되어야합니다.

필자는 FBX SDK 문서, 샘플 (주로 ViewScene 샘플)을 살펴본 결과 일부 정보를 얻었습니다.

const char* lFilename = ".\..\..\..\DuzZemin.fbx"; 

/* Memory Management */ 
FbxManager* myManager = FbxManager::Create(); 

FbxIOSettings* ioSettings = FbxIOSettings::Create(myManager,IOSROOT); 
myManager->SetIOSettings(ioSettings); 

// Importer 
FbxImporter* myImporter = FbxImporter::Create(myManager,""); 

if(!myImporter->Initialize(lFilename,-1,ioSettings)) 
{ 
    /* Error Handling */ 
} 

/* Scene for Imported File */ 

FbxScene* myScene = FbxScene::Create(myManager,"My Scene"); 


myImporter->Import(myScene); 

    // Memory DeAllocation 
myImporter->Destroy(); 


FbxNode* rootNode = myScene->GetRootNode(); 

FbxMesh* myMesh = FbxMesh::Create(myScene,""); 

int indexCount = myMesh->GetControlPointsCount(); 

이 코드 스 니펫을 작성할 때 오류가 발생하지 않습니다. 하지만 런타임에

indexCount는 0 값으로 반환됩니다.

잘못되었거나 누락 된 요구 사항이 있습니까?

감사합니다.

답변

1

메쉬를 만들었지 만 장면의 메쉬를 가리 키지는 않습니다. .fbx 파일을로드 할 때 메쉬 포인터를 만든 다음 내 장면으로 이동하여 메쉬를 잡습니다. 이 코드를 고려하십시오.

이제 메쉬에서 올바른 버텍스 수를 가져올 수 있어야하고 정점을 추출 할 수 있어야합니다. 참고 : .fbx 파일이 둘 이상의 메쉬로 구성된 경우 원하는 메쉬를 찾을 때까지 장면을 반복해야합니다.

희망이 내가, 내가 5 ~ 6 일 동안 게시물을 볼 수없는이 길에 내 문제를 해결,

+0

덕분에 많은 도움이됩니다. 그러나이 답변은 정확하게 해결책입니다. – HamitEnes

0
FbxMesh* mesh; 

FbxNode* node = myScene->GetRootNode()->GetChild(0); 

//I want my mesh to be formed by triangles so i convert the mesh into triangles 
FbxGeometryConverter lConverter(node->GetFbxManager()); 
lConverter.TriangulateInPlace(node); 

mesh = node->GetMesh(); 
관련 문제