FBX文件简述
来源:互联网 发布:ai for mac dmg格式 编辑:程序博客网 时间:2024/05/16 14:46
1. 关于FBX
Autodesk FBX是Autodesk公司出品的一款用于跨平台的免费三维创作与交换格式的软件,通过FBX用户能访问大多数三维供应商的三维文件。FBX 文件格式支持所有主要的三维数据元素以及二维、音频和视频媒体元素。
FBX由Kaydara开发并于2006年被AUTODESK收购。
参考 https://en.wikipedia.org/wiki/FBX
2. 关于FBX SDK
Autodesk为FBX文件提供了一套C++ SDK,可以使用户拥有读取、写入FBX文件的能力。SDK下载地址:http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=24535361
SDK文档地址: http://help.autodesk.com/view/FBX/2016/ENU/
FBX SDK论坛地址:http://forums.autodesk.com/t5/fbx/ct-p/area-c7
3. FBX文件格式简介:
FBX数据以树状结构存储在文件中,每个FBX文件中有一个“场景”,其子节点有一些全局设置数据,以及使用最为频繁的模型节点,模型节点以及树状结构存放于场景的“根节点”中。
4. FBX模型节点:
FBX模型节点(FBXNode)可以视作几何模型的一个包装(Wrapper),节点本身并不包含太多的几何信息,其几何信息主要保存在其所持有的节点属性(FBXNodeAttribute)中。
模型节点最主要的作用是在模型树上维护树状结构,除此之外,FbxNode还保存了一些矩阵变换信息以及材质信息。
5. FBX模型属性:
FBX模型属性(FbxNodeAttribute)作为FbxNode中的成员,它定义了该节点所表示的元素,如光源、相机或几何元素等。
6. FBX网格:
FBX网格(FbxMexh)继承于FbxNodeAttribute,用来表示FBX节点中的网格图元,其基本信息有:
a. 控制点列表control Points/ vertices;
b. 多边形列表polygons;
c. 一系列的层(FbxLayer),用来保存网格的法向、贴图以及材质信息。
7. FBX矩阵变换:
FBX文件中的矩阵变换比较复杂,每个FbxNode中有3个转换矩阵,分别是
a. LocalTransform 本地转换矩阵,这个转换矩阵是指节点相对于父节点的变换,局部变换可以通过FbxNode::EvaluateLocalTransform()函数获得;
b. GlobalTransform 全局变换,这个转换矩阵是指节点相对于世界坐标的变换,全局变换可以通过FbxNode::EvaluateGlobalTransform()函数获得,也可以由节点本身开始,获得上层所有节点的转换进行叠加获得。
c. GeometricTransform 物理变换,这个变换矩阵与其他节点无关,可以视作节点的几何数据相对于节点自身的坐标系的一个转换,获得物理变换的方法是
FbxAMatrix matrixGeo;
matrixGeo.SetIdentity();
if (node->GetNodeAttribute())
{
const FbxVector4 lT = node->GetGeometricTranslation(FbxNode::eSourcePivot);
const FbxVector4 lR =node->GetGeometricRotation(FbxNode::eSourcePivot);
const FbxVector4 lS =node->GetGeometricScaling(FbxNode::eSourcePivot);
matrixGeo.SetT(lT);
matrixGeo.SetR(lR);
matrixGeo.SetS(lS);
}
终上所述,要获得一个网格数据相对于全局的变换可以使用GlobalTranform * GeometricTransform获得。另外需要注意的是FBX的矩阵是基于列的,转为Hidas矩阵时需要做转置。
- FBX文件简述
- Unity与FBX--为什么使用FBX文件
- Unity与FBX--为什么使用FBX文件
- fbx文件学习(一)
- FBX文件解析参考资料
- 动态加载FBX文件
- fbx文件导入
- Unity3D动态加载FBX文件
- Unity3D动态加载FBX文件
- Unity 导入 fbx 模型文件
- Maya2017无法导出fbx文件
- Unity3d 动态加载fbx模型文件
- Unity3d 动态加载fbx模型文件
- Unity3D修改FBX文件动画名
- Unity3d 动态加载fbx模型文件
- 将FBX文件导入Unity3d中
- Unity运行时读取FBX文件插件
- Unity3D如何使用fbx动画文件
- APP 检测网络的状态 是wifi 还是蜂窝连接
- zabbix特性
- mysql 数据库表内容插入新表
- android 中 EditText加入图标 更改边框颜色 设置透明 代码
- java GridLayout布局 网格布局演示
- FBX文件简述
- [leetcode] 142. Linked List Cycle II 解题报告
- mac下,redis的安装与配置
- OpenGL FAQ
- java中多种布局管理器的混合使用
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- [IMX6Q]u-boot环境变量原理分析
- MyBatis的foreach语句详解
- Git与TortoiseGit基本操作