最近在做自定义类型到fbx的转换

有关polygon的理解

vertex,normal,color等信息,是离散的放置的,对fbx里面的mesh加了控制点(vertex)信息之后,

需要再设置polygon信息,就像索引那样,由哪些数据组成一个多边形

过程是这样的

// Create the FBX SDK manager

FbxManager* lSdkManager = FbxManager::Create();

// Create the entity that will hold the scene

FbxScene*lScene = FbxScene::Create(pSdkManager,"scene");

// Build the node tree.
FbxNode* lRootNode = pScene->GetRootNode();
 
FbxNode* lNode = FbxNode::Create(pScene,"mynode");
lRootNode->AddChild(lNode);
 
FbxMesh* lMesh = FbxMesh::Create(pScene,pName);
lNode->SetNodeAttribute(lMesh);
 
// Create control points.
lMesh->InitControlPoints(numVertex);
FbxVector4* lControlPoints = lMesh->GetControlPoints();
 
for(..i<numVertex..)
lControlPoints [i] = ....initialize...
 
for(..i<numPolygon..)
lMesh->BeginPolygon(-1, -1, false);
 
for(..j<numverticesPoly..)//每个多边形包含的顶点数 这个polygon是为了把之前那么多的vertex索引起来
  lMesh->AddPolygon(lPolygonVertices[j] );//....initialize..by lPolygonVertices[i] seems like index buffer function spec to form a polygon
 
lMesh->EndPolygon ();
 -----------------------------------
对于一个node 可以添加多个material然后 到底里面的polygon要加哪个material呢,用这个
lMesh->BeginPolygon(materialindex);
 ...
我是在face 的循环里挨个加material的所以,materialIndex用的是 face 的迭代次数
 
因为这个materialindex需要写 node 中材质添加进来的那个索引
--------------------
这些问题 在官方文档中都可以找到答案,他的搜索功能非常好用,就是这个http://help.autodesk.com/view/FBX/2016/ENU/?guid=__files_GUID_3E0DCCD0_5F9A_44D0_8D5E_423237D49DB6_htm

我还有一个认识就是,接触新东西的时候一开始阻抗非常高,感觉很麻烦,应着头皮做就好了, 在最初的一周靠各种猜想,靠最笨的方法,做最简单的实现.

之后再回头看同样的文档,就有所见即所得那种畅快感了,觉得他说的真清楚,但是一开始看同样这种东西的时候,会觉得...这都是什么啊...

ps:在科学领域渐进真理也是这种模式..

pps:把复杂任务分解,是最基本最重要的技能之一, (另外一个技能是搜索

---------=============================------

我现在遇到一个问题,我希望很多节点上的 mesh共用一个vertex 数组  也就是一个controlpoint

//Now we have set the UVs as eIndexToDirect reference and in eByPolygonVertex mapping mode

//we must update the size of the index array.

lUVDiffuseElement->GetIndexArray().SetCount(24);

fbx 模型转换 export的更多相关文章

  1. 关于Unity中的几何体,材质和FBX模型

    一.创建几何体的类型 1: 创建平面 Plane;2: 创建立方体 Cube;3: 创建球体 Sphere;4: 创建胶囊体 Capsule;5: 创建圆柱体 Cylinder;6: 3D文字 3D ...

  2. fbx模型

    [fbx模型] 1.FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式(最早不是由Autodesk开发,但后来被其收购),目前被 众多的标准建模软件所支持,在游戏开发领域也常用来作为各种 ...

  3. 基于FBX SDK的FBX模型解析与加载 -(一)

    http://blog.csdn.net/bugrunner/article/details/7210511 1. 简介 FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式(最早不是由A ...

  4. [Unity菜鸟] FBX模型动画提取

    角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了,但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可 ...

  5. 前端MVVM框架avalon - 模型转换1

    轻量级前端MVVM框架avalon - 模型转换(一) 接上一章 ViewModel modelFactory工厂是如何加工用户定义的VM? 附源码 洋洋洒洒100多行内部是魔幻般的实现 1: fun ...

  6. 将List 中的ConvertAll的使用:List 中的元素转换,List模型转换, list模型转数组

    一,直接入代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...

  7. Verification of Model Transformations A Survey of the State-of-the-Art 模型转换的验证 对现状的调查

    模型驱动工程范式认为软件开发生命周期由工件(需求规范.分析和设计文档.测试套件.源代码)支持,这些工件是表示要构建的系统不同视图的模型.存在一个由模型转换驱动的(半)自动构造过程,从系统的抽象模型开始 ...

  8. fbx模型动画提取教程附带一个用代码提取的方法

    角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以 ...

  9. 基于FBX SDK的FBX模型解析与加载 -(四)

    8. 骨骼蒙皮动画 骨骼蒙皮动画是当前游戏引擎中最常用的一种动画方式,关于其基本原理网络上的资料较多,关于到涉及的其它较复杂操作,如插值.融合等在这里也就先不再讨论了,而且其实现方式也与具体引擎的动作 ...

随机推荐

  1. CDH 不能监控hadoop状态

    1 背景:公司集群整体搬迁 2 问题:hadoop重启后,发现一个非常坑爹的问题.用 hadoop dfsadmin -report 查看datanode状态完全正常,但是Cloudera Manag ...

  2. php使用swoole实现一个简单的多人在线聊天群发

    聊天逻辑的好多细节没有实现,只实现群发. php代码: $serv = new swoole_websocket_server("127.0.0.1",3999); //服务的基本 ...

  3. linuxok6410的I2C驱动分析---用户态驱动

    3  i2c-dev 3.1 概述 之前在介绍I2C子系统时,提到过使用i2c-dev.c文件在应用程序中实现我们的I2C从设备驱动.不过,它实现的是一个虚拟,临时的i2c_client,随着设备文件 ...

  4. python实现 _ 图书馆书籍到期之前_自动邮件提醒

    一共两个脚本: 第一个是[借书完毕以及借书信息有变更(续借等)]的时候需要执行的脚本:实现模拟登陆,同时最新的借书信息的下载到本地文本:之所以没有这样做,是因为如果每次爬取一遍的话,需要每次输入一遍验 ...

  5. Python开发【第一篇】Python基础之生成器和迭代器

    生成器和迭代器 1.生成器 一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator):如果函数中包含yield语法,那这个函数就会变成生成器: def func(): yield 1 ...

  6. WPF数据双向绑定

    设置双向绑定,首先控件要绑定的对象要先继承一个接口: INotifyPropertyChanged 然后对应被绑定的属性增加代码如下: 意思就是当Age这个属性变化时,要通知监听它变化的人. 即:Pr ...

  7. ListView用法及加载数据时的闪烁问题和加载数据过慢问题

    ListView介绍及添加数据时的闪烁问题 1.     ListView类 1.1 ListView常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示 ...

  8. Shell 内置操作符-字符串处理(汇总)

    一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-D ...

  9. eth0: error fetching interface information: Device not found

    转载,原文出处:http://zh888.blog.51cto.com/1684752/775447 亲测有效,感谢作者!!! ----------------------------分割线----- ...

  10. ORA-08189

    OS: [root@yoon ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 DB: Oracle Database 11g E ...