fbx sdk 와 irrlicht 의 만남
DESCRIPTION
FBX sdk 와 irrlicht 의 만남. ㈜ 구름 펙토리 이석준. 목차 / 챕터 1 프롤로그. 바벨탑 - 소통에 대하여 …. 목차 / 챕터 2/ 일리히트의 이야기. 항상성 관련기능 - 항상성 .irr , IAttribute. 자체 포멧이 없음 ㅠ . ㅠ - 2% 부족함. 목차 / 챕터 3/fbx 이야기. 이거다 어디갔어 ? 30 대 중반이상 공감가능. 추억의 pcx 그땐 그랬지 … - 요즘 3 디 게임프로그램을 배우고 나서 마무리가 부족해 ? 엔진의 마무리는 항상 파일포멧이 …. - PowerPoint PPT PresentationTRANSCRIPT
FBX sdk 와 irrlicht 의 만남
㈜ 구름 펙토리이석준
목차 /챕터 1 프롤로그
바벨탑
- 소통에 대하여…
목차 /챕터 2/ 일리히트의 이야기
항상성 관련기능
- 항상성 .irr , IAttribute
자체 포멧이 없음ㅠ . ㅠ- 2% 부족함
목차 /챕터 3/fbx 이야기
이거다 어디갔어 ?30 대 중반이상 공감가능
추억의 pcx그땐 그랬지…- 요즘 3 디 게임프로그램을 배우고 나서 마무리가 부족해 ? 엔진의 마무리는 항상 파일포멧이…
Ase, X, md????
- 아무래도 이건 좀 너무 무식하다 .
그럼…
- fbx 를 써보자
얻기http://www.autodesk.com/fbx
easy to usec++ basedwindow,mac, linux
importer참고자료- ViewScene Sample
KFbxScene importer - KFbxNode* lNode = pScene->GetRootNode();
KFbxNode importer - transfrom 얻기
EvaluateLocalTranslationEvaluateLocalRotationEvaluateLocalScaling
일리히트엔진 씬노드로… importer
const KFbxVector4 fbx_trn = pchdNode->EvaluateLocalTranslation();irr::core::vector3df trn(fbx_trn[0], fbx_trn[1], fbx_trn[2]);…< 생략 >
pNode->setposition(trn); pNode->setrotation(rot);pNode->setscale(scl);
KFbxNodeAttribute importer - Mesh, Skeleton, Camera, Light..
KFbxMesh importer
lAttributeType = (pNode->GetNodeAttribute()->GetAttributeType());
if( KFbxNodeAttribute::eMESH == lAttributeType ){
KFbxMesh* pMesh = (KFbxMesh*) pNode->GetNodeAttribute ();
}
일리히트 메쉬 만들기 importer - meshbuffer
irr::scene::SMeshBuffer* pbuffer; pbuffer = new irr::scene::SMeshBuffer();
Vertex importer - control point
int lControlPointsCount = pMesh->GetControlPointsCount(); KFbxVector4* lControlPoints = pMesh->GetControlPoints();
GetElementNormal GetElementVertexColor GetElementUV
fbxcontrolpoint
element
element
…..
element
일리히트 정점 importer - irr::video::S3DVertex vert;
vert.Pos = irr::core::vector3df( lControlPoint[0], lControlPoint[1], lControlPoint[2]);
…
pbuffer->Vertices.push_back(vert);
인덱스 버퍼importer
for(i=0;i<pMesh->GetPolygonCount();i++)for(j=0;j<pMesh->GetPolygonSize(i);j++) {irr::u32 index = pMesh->GetPolygonVertex(i, j);pbuffer->Indices.push_back(index);}
exporter참고자료- ImportExport Sample
exportercreate control point
lMesh->InitControlPoints( 원하는 갯수 );KFbxVector4* lControlPoints = lMesh->GetControlPoints();
lControlPoints[index++] = KFbxVector4(x,y,z);
exporterUV
KFbxLayer* lLayer = lMesh->GetLayer(0);
KFbxLayerElementUV* lUVDiffuseLayer = KFbxLayerElementUV::Create(lMesh, "DiffuseUV");lLayer->SetUVs(lUVDiffuseLayer, KFbxLayerElement::eDIFFUSE_TEXTURES);
lUVDiffuseLayer->GetDirectArray().Add(UV_data);lUVDiffuseLayer->GetIndexArray().SetAt(i, i);
exporteranother UV?
KFbxLayer* lLayer = lMesh->GetLayer(1);
KFbxLayerElementUV* lUVDiffuseLayer = KFbxLayerElementUV::Create(lMesh, "DiffuseUV");lLayer->SetUVs(lUVDiffuseLayer, KFbxLayerElement::eDIFFUSE_TEXTURES);
lUVDiffuseLayer->GetDirectArray().Add(UV_data);lUVDiffuseLayer->GetIndexArray().SetAt(i, i);
Mobile device
- 로더 소스를 배포하지 않음 일리히트엔진 포럼에 몇 개 미완성 존재함
감사합니다 .Q&A