转自:http://blog.csdn.net/mink365/article/details/6328033
FBX是Autodesk提供的一个三维模型格式,由于AutoDesk已经收购了Maya,3D max等流行三维建模软件,FBX可以说是一个完美通用的格式了。
FBX主要用途是三维场景的交流,所以它单个文件就描述了整个三维工程,包括摄像机设置,灯光参数,texture图片,音乐,动画,骨骼,关键帧数据等。
FBX是一个闭源的格式,我们并不清楚FBX文件内部的存储方式,但是AutoDesk给出了一个很好的SDK,可以通过调用SDK内部的DLL等库文件建立/导出FBX数据。FBX的SDK现在提供C++和Python两种语言支持,支持windows,Linux,MAC OS三大平台。
SDK提供的场景(Scene)接口十一个节点(node)结构:
摄像机,灯光,骨骼(skeleton),网格(Mesh)等都是一个节点,节点还可以有子节点。
- if lAttributeType == KFbxNodeAttribute.eMARKER:
- DisplayMarker(pNode)
- elif lAttributeType == KFbxNodeAttribute.eSKELETON:
- DisplaySkeleton(pNode)
- elif lAttributeType == KFbxNodeAttribute.eMESH:
- DisplayMesh(pNode)
- elif lAttributeType == KFbxNodeAttribute.eNURB:
- DisplayNurb(pNode)
- elif lAttributeType == KFbxNodeAttribute.ePATCH:
- DisplayPatch(pNode)
- elif lAttributeType == KFbxNodeAttribute.eCAMERA:
- DisplayCamera(pNode)
- elif lAttributeType == KFbxNodeAttribute.eLIGHT:
- DisplayLight(pNode)
Patch,Nurb??
NURBS:Non-uniform rational B-Spline,具有比重控制点和曲线次序和节点集合向量的集。典型例子是贝塞尔曲线,在PS,GIMP,AUTOCAD等中可以见到,通过节点和角度控制整个曲线。也可以用于描述曲面,与Mesh对应,代表两类不同的实现方法。详见WIKI
重要节点结构:Mesh,Skeleton
网格(Mesh)存储了模型结构的重要数据,包括顶点坐标,颜色,UV(纹理坐标),法线(Normal)等。
重要概念:Layer, Control Point, Vertex, eBY_CONTROL_POINT, eBY_POLYGON_VERTEX, :
Layer,层次:法线,纹理坐标等是存储在Layer中的,每个模型可以有多个层次,每个层次有一套纹理,法线等。但是,通常我们只会用到一个层次,很多建模软件也只支持一个层次。
法线,纹理,颜色与顶点数据有两个重要的对应关系,BY_CONTROL_POINT就是每个控制点对应一个法线,纹理数据,而BY_POLYGON_VERTEX是指每个顶点对应一个法线,纹理等数据。就是说,由于一个点可以包含在多个多边形中,而在不同的多边形中,其可以有不同的法线,颜色等。
KFbxLayerElement.eDIRECT, KFbxLayerElement.eINDEX_TO_DIRECT引用方式:???
Material,Texture材质和纹理:只有纹理坐标并不能解决纹理问题,由于FBX把纹理贴图直接存储在FBX文件中,而且一个模型可以用多个纹理贴图文件,具体的对应和管理就是个很重要的问题了。
骨骼系统(Skeleton):骨骼系统是高级模型动画的重要方面,就是采用模拟真实事物的方法,提供了骨骼(Bone),关节(Joint),权重(weight)等概念。骨骼和关节是运动的控制点,移动骨骼,并通过权重数据计算出各个顶点的运动向量,最终把这个运动向量赋予模型,完成运动行为。
骨骼:http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System
FBX:http://www.cnblogs.com/clayman/archive/2010/12/10/1901779.html
欢迎关注微信公众号——计算机视觉:
相关推荐
opengl实现fbx模型导入,有UV贴图
看别人的代码 Demo去学习,...我想这应该是最简单的一个3D骨骼动画模型的读取和显示的Demo。其中注释了几个比较关键的地方。包含了几个简单的md5模型,blender模型,blender MD5导出插件。VB.net + OpenTK + Assimp.net
仅供学习 请勿商用 自己购买的资源 不要 商用不要删公用 没错了
fbx转bip骨骼插件
恐龙战队大兽神/Megazord/麦克佐德fbx模型带骨骼
assimp-master,是从3dmax导出FBX文件然后再导入到OpenGL的强大工具
FBX-加载器-OpenGL-C- 使用 glut lib 和 fbx SDK 加载带有动画 (opengl c++) 的 3D 模型 FBX 文件..
基于Qt开发的C++程序。利用assimp读取gltf/fbx等文件,并显示。用vs2013编译
FbxParser:*。fbx解析器,它使用FBX SDK解析FBX文件并在OpenGL上重建FBX模型
osgfbx+fbx源码与SDK文件
osg3.0中使用FBX插件加载FBX骨骼模型
卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型FBX格式数据卫星模型...
fbx:用于读取和写入FBX文件的C ++库
●该程序能将fbx动画导出md5骨骼动画,封装的exe程序(非max脚本,非插件). ●输入的fbx和输出的md5坐标系都是采用Z朝上的max坐标(标准Md5坐标系). ●输入的fbx路径和文件名只能是英文,输出路径可为中文. ●数据算法...
当下大部分人物动画都是针对unity开发的,所以导出的fbx格式,该插件可将FBX文件转换成biped文件适用于3dsmax biped系统
这个压缩包里面包含three.js在微信小程序端加载3D动画fbx模型的代码。 得到了fbx模型的http链接,使其加载在小程序端,都是适配小程序版本的代码 其中three_new.js是小程序版的3D加载库文件 FBXLoader_new是小...
AutoDesk官网FBX SDK 2015 VS 2012,用来提取fbx文件中模型、变形及动画信息。
现在只完成加载圆柱体的动画、模型,还无法加载材质纹理、灯光 环境:assimp 3.3.1、Qt 5.6.1、Mingw4.9.2,系统Win0中测试可以使用
FBX2glTF (Facebook) Three.js FBX2glTF windows程序使用方法如下。 新建一个文件夹,将exe文件和fbx都放入该文件夹,将fbx拖到exe上,会弹出一个控制台窗口,然后该文件夹下就会有输出的新文件夹了
Unity资源导出FBX格式模型插件,超级方便好用!!使用说明:导入插件后在Assets下有一个FBX Exporter选项,选择模型即可导出模型和贴图材质