1. 简介
FBX是Autodesk的一个用于跨平台的3D数据交换的格式,目前fbx最大的用途是用在诸如在max、maya、softimage等软件间进行模型、材质、动作和摄影机信息的互导,这样就可以发挥max和maya等软件的优势。可以说,fbx方案是最好的互导方案。目前在游戏开发领域也常用FBX来作为各种建模工具的标准导出格式。Autodesk提供了基于C++(还有Python)的SDK来实现对FBX格式的各种读写、修改以及转换等操作。(以上文字来自网络)
FBX for DX插件是为了方便模型从FBX格式直接将模型导入微软Dx SDK的一个中间插件,目前版本主要是使用FBX文件取代Dx9中的.x文件。对于目前Dx11的 .sdkmesh文件还没有接口(欢迎大家补充)。有了这个插件,学习D3DX的同学就可以直接从各种版本的Max或者Maya里直接导出fbx模型,拓展了很多的美术资源,甚至是公司为大型引擎制作的模型,也不必寻找.x文件的导出插件。可以大大扩充dx学习者的资源面,解决目前资源短缺的问题。
此项目纯属于实验性项目,没有完整的商业目的。如果在个人或者商业项目中使用到了此项目插件或者源代码而不必支付任何费用。不过希望使用者能够遵守开源精神,使用后通知开发团队,并在项目中保留对使用本插件或者源代码的使用说明。
欢迎加入开发群组
fbxforDX插件小组
2. FBX SDK的配置首先,在使用前需要下载安装FBX的SDK,可以从Autodesk的网站上进行获得最新的版。 下载地址: http://forum.exceedu.com/forum/f ... hread&tid=22520
下载相应的版本安装即可。(如果不做特别说明,本案例全部以【FBX SDK 2013.2 VS 2005】这个版本为蓝本开发)最新的SDK版本是2013.2版。想找2012.2版本没找到。
安装需要花费点时间,安装完毕以后配置方法和DX完全一致。在VC++目录中配置
包含文件 路径例如“C:\Program Files\Autodesk\FBX\FBX SDKVs2005\2013.2\include”
库文件 路径例如“C:\Program Files\Autodesk\FBX\FBX SDKVs2005\2013.2\lib\vs2005\x86”
安装完毕运行2013.2\samples 中例题能够正常编译即可。
3. FBX for DX 框架
FBX for DX插件开发主要框架在MangoGUI框架下完成,如果对这个框架不熟悉的话,请参考本论坛 MangoGUI 主题。
插件的初级教程部分将采用简洁的模式,分割其中的难点,不采用MangoGUI 。
3. FBX模型的组织结构
FBX是以scene graph的结构来存储模型的所有信息(也可以认为是一个多叉树),类似于OSG中的组织方式,这一点可以从SDK所带的Sample里边很清楚的看出来。一个较为典型的模型的组织结构与下图所示:
整个Scene是从一个空属性的根结点开始,其中每个结点均是一个KFbxNode的对象,所有对象之间的关联均是双向的,比如从子结点可以索引到父结点,从父结点也可以索引到子结点;从单个结点可以索引到整个Scene,从Scene也可以索引到该结点。每个结点都会有一个标记属性的Enum值,比如eMesh、eLight、eCamera或eSkeleton等,分别用来标记当前结点是Mesh、Light、Camera或Skeleton。在整个结构的遍历过程中可以通过判断不同的结点属性而进行不同的处理操作。(来自网络)
|