2024年6月6日发(作者:)
如何将Fbx格式转换成VVO格式
一、 Fbx文件格式简介
1.1 KFbxSdkManage和KFbxScene
Fbx文件是Autodesk开发的文件格式,其开发目的就是为了实现
Autodesk旗下软件之间的数据交换。Fbx文件格式本身是不公开的,而是通过
FBX SDK实现对Fbx文件的读取以及写入。
使用FBX SDK时,最先遇到的两个对象就是KFbxSdkManage和
KFbxScene。
KFbxSdkManage是sdk中的中心类,负责了整个sdk内部状态的管理,
很多其他对象创建也依赖于KFbxSdkManage,程序中只需要有一个
KFbxSdkManage类的实例即可。
KFbxScene如其名所示,代表了一个场景,而这里的场景就是fbx文件中
包含的所有信息,fbx文件导入以后,在程序中就是一个KFbxScene对象,所
以一个fbx文件只需要一个KFbxScene类的实例。
1.2 Fbx的数据组织方式
Fbx的数据组织方式是scene tree,即场景树。由KFbxScene所声明的
对象可以得到该场景树的根节点,根节点包含了一系列子节点KFbxNode,每
个KFbxNode又有其自己的子节点,以此往下类推。这样通过递归循环就可以
遍历到每一个节点,然后获取该节点的信息。
RootNode是该Fbx文件所对应的根节点,由以下语句得到:
KFbxNode* pNode = pScene->GetRootNode();//获得根节点
图1是一个圆柱体的例子。该圆柱体总共有四个节点,Patch、SkeletonRoot、
SkeletonLimbNode1、SkeletonLimbNode2是这四个节点的名称。其中
Patch、SkeletonRoot是RootNode的孩子,SkeletonLimbNode1是
SkeletonRoot的孩子,SkeletonLimbNode2是SkeletonLimbNode1的孩
子。
RootNode
Patch
KFbxNode
SkeletonRoot
KFbxNode
SkeletonLimbNode1
KFbxNode
SkeletonLimbNode2
KFbxNode
图 1
kFbxObject
KFbxCollectionKFbxNode
KFbxNodeAttribute
KFbxDocument
KFbxSkeleton
KFbxLightKFbxLayerContainer
KFbxScene
KFbxGeometryBase
KFbxGeometry
KFbxMesh
KFbxNurb
KFbxPatch
发布评论