CN103353866A - 一种支持xna技术的三维模型文件格式转换方法 - Google Patents
一种支持xna技术的三维模型文件格式转换方法 Download PDFInfo
- Publication number
- CN103353866A CN103353866A CN2013101745657A CN201310174565A CN103353866A CN 103353866 A CN103353866 A CN 103353866A CN 2013101745657 A CN2013101745657 A CN 2013101745657A CN 201310174565 A CN201310174565 A CN 201310174565A CN 103353866 A CN103353866 A CN 103353866A
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- model file
- converted
- file
- xna
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种支持XNA技术的三维模型文件格式转换方法,依次包括以下步骤:A:对待转换三维模型文件进行预处理,删除重复点、重复线和重复面;B:判断待转换三维模型文件类型,若属于.x和.fbx文件格式,则进入步骤D;若属于.3ds、.skp或.dae文件格式,则进入步骤C;如不属于上述文件格式,则进入步骤E;C:对.3ds、.skp或.dae文件格式进行数据解析,并将解析得到的数据按照通用存储结构.fbx格式进行储存;D:结束转换过程,提示使用者此待转换三维模型文件无需转换或无法转换。本发明能够提高XNA技术的通用性,同时具有提高模型文件处理速度、保证数据模型稳定的优点。
Description
技术领域
本发明涉及一种文件格式转换方法,尤其涉及一种支持XNA技术的三维模型文件格式转换方法。
背景技术
XNA技术是以DirectX为原型,并对其进一步封装,对显卡的硬件功能重新包装,提供比DirectX更为简单,而且专用于C#编程的API。在个人电脑、游戏机、移动设备三种平台上,通过XNA技术能够很快实现复杂的游戏或应用程序。现有的XNA 4.0版已经整合了计算机、微软的Xbox游戏机系列的游戏开发环境以及Windows Phone7移动设备开发环境,使用用C#语言和XNA架构开发的游戏或应用程序,只要稍作修改,即可同时在这三种平台上运行。
目前,XNA技术仅支持.x和.fbx两种三维模型文件格式,使得XNA技术在开发三维模型展示系统时对模型文件格式的依赖性过强,降低了XNA技术的通用性。
发明内容
本发明的目的是提供一种支持XNA技术的三维模型文件格式转换方法,能够将3ds、skp或dae格式的三维模型文件转换为通用存取结构.fbx格式,支持XNA技术使用,从而降低XNA技术在开发三维模型展示系统时对模型文件格式的依赖性,提高XNA技术的通用性。
本发明采用下述技术方案:
一种支持XNA技术的三维模型文件格式转换方法,依次包括以下步骤:
A:对待转换三维模型文件进行预处理,删除重复点、重复线和重复面;
B:判断待转换三维模型文件类型,若属于.x和.fbx文件格式,则进入步骤D;若属于.3ds、.skp或.dae文件格式,则进入步骤C;如不属于上述文件格式,则进入步骤E;
C:对.3ds、.skp或.dae文件格式进行数据解析,并将解析得到的数据按照通用存储结构.fbx格式进行储存;
D:结束转换过程,提示使用者此待转换三维模型文件无需转换;
E:结束转换过程,提示使用者此待转换三维模型文件无法转换。
所述的C步骤还包括以下步骤:
C1:读取待转换三维模型文件主块信息及主块信息下的两个一级字块,两个一级字块分别为主编辑块和关键帧块,若读取到关键帧块则跳过,继续读取主编辑块;若读取到主编辑块,则进入步骤C2;
C2:依次读取主编辑块子块信息,并依次将每块主编辑块子块信息中的TriList、TriFbx和Vertex数组中包含的信息分别存入新创建的通用存储结构.fbx格式文件中的faceList、vertexList和vertex数组中,将主编辑块子块中材质信息存入新创建的通用存储结构.fbx格式文件中的colorList数组中,将待转换三维模型文件转换为新创建的通用存储结构.fbx格式。
A步骤中所述的重复点是指完全重合的点,或两点距离小于最大两点距离的1/1000的点。
A步骤中所述的重复线是指长度为零的边,或长度小于最大两点距离的1/1000的线段。
A步骤中所述的重复面是指面积为零的面,或面积小于最大面面积1/1000000的面。
本发明依次将3ds、skp或dae格式的三维模型文件每块主编辑块子块信息中的TriList、TriFbx和Vertex数组中包含的信息,分别存入新创建的通用存储结构.fbx格式文件中的faceList、vertexList和vertex数组中,将主编辑块子块中材质信息存入新创建的通用存储结构.fbx格式文件中的colorList数组中,能够将待转换三维模型文件转换为新创建的通用存储结构.fbx格式,降低XNA技术在开发三维模型展示系统时对模型文件格式的依赖性,提高XNA技术的通用性,同时具有提高模型文件处理速度、保证数据模型稳定的优点。
附图说明
图1为本发明的流程图。
具体实施方式
如图1所示,本发明所述的一种支持XNA技术的三维模型文件格式转换方法,依次包括以下步骤:
A:对待转换三维模型文件进行预处理,删除重复点、重复线和重复面;
B:判断待转换三维模型文件类型,若属于.x和.fbx文件格式,则进入步骤D;若属于.3ds、.skp或.dae文件格式,则进入步骤C;如不属于上述文件格式,则进入步骤E;
C1:对.3ds、.skp或.dae文件格式进行数据解析,读取待转换三维模型文件主块信息及主块信息下的两个一级字块,两个一级字块分别为主编辑块和关键帧块,若读取到关键帧块则跳过,继续读取主编辑块;若读取到主编辑块,则进入步骤C2;
C2:依次读取主编辑块子块信息,并依次将每块主编辑块子块信息中的TriList、TriFbx和Vertex数组中包含的信息分别存入新创建的通用存储结构.fbx格式文件中的faceList、vertexList和vertex数组中,将主编辑块子块中材质信息存入新创建的通用存储结构.fbx格式文件中的colorList数组中,将待转换三维模型文件转换为新创建的通用存储结构.fbx格式;
D:结束转换过程,提示使用者此待转换三维模型文件无需转换;
E:结束转换过程,提示使用者此待转换三维模型文件无法转换。
对待转换三维模型文件进行预处理是三维数据转换及集成的重要一步,三维数据在编辑和获取的过程中往往会产生冗余信息,如重复点、重复线、重复面等,如果将这些冗余信息带入后续的转换中,不仅不利于三维信息的表达,同时也会增加大量不必要的工作量,影响文件转换的速度。
本发明所述方法的A步骤中,重复点是指完全重合的点,或两点距离小于最大两点距离的1/1000的点。重复点的产生原因主要是在建模过程中边界点信息和拓扑信息的重复计算,重复点属于冗余信息,可以删除。
重复线是指长度为零的边,或长度小于最大两点距离的1/1000的线段。重复线的产生原因主要是点的重复,以及模型自身的形状结构原因。重复线不仅占据大量的数据信息,而且在输出时极易于产生错误。重复线同样属于冗余信息,可以删除。
重复面是指面积为零的面,或面积小于最大面面积1/1000000的面。面可以由三个以上的点组成,属于三维立体渲染的基本元素,面的数量直接关系到渲染的速度。大量冗余的重复面不仅占据大量存储空间,而且无法有效的表示宏观拓扑结构,可以删除。
由于开发者利用XNA技术开发三维模型展示系统对模型文件处理实时性要求很高,所以本发明所述的方法直接操作原始数据文件,在数据转换过程中具有较高的精确性及转换效率。
为了能将.3ds、.skp或.dae文件格式转换为通用存取结构.FBX格式,必须先对.3ds、.skp或.dae文件格式的存储结构有一定的了解。研究发现,无论待转换文件属于.3ds、.skp或.dae文件格式中的哪一种,在其内部数据存储结构中总是有点、面、法向量、材质等公共属性,而其他的属性只是为了维护这些属性,使他们容易读取与存储。因此,本发明所述的转换方法为依次读取.3ds、.skp或.dae文件格式中的主编辑块子块信息,子块信息中的TriList为TriFbx组成的序列,TriFbx为Vertex组成的序列,这与通用存储结构中的faceList(面的集合),vertexList(点的集合),vertex(顶点)相对应,只要依次将每块主编辑块子块信息中的TriList、TriFbx和Vertex数组中包含的信息,分别存入新创建的通用存储结构.fbx格式文件中的faceList、vertexList和vertex数组中;并将主编辑块子块中材质信息存入新创建的通用存储结构.fbx格式文件中的colorList数组中,即可将待转换三维模型文件转换为新创建的通用存储结构.fbx格式。
通用存储结构应该具有点的定义、面的定义、材质的定义及三维结构的定义。通用存储结构的伪代码描述如下:
//点定义
Struct Vertex{
GLfloat x,y,z;
GLfloat nx,ny,nz;//法向量
}Vertex;
//面的定义
Typedef struct Face{
Vertex vertexList[LINE_MAX];
Int vertexCount;
}Face;
//材质的定义
Struct MaterialColor{
Char name[100];//材质名称
GLfloat ra,ga,ba;
GLfloat rd,gd,bd,ad;
GLfloat rs,gs,bs;
} MaterialColor;
//三维结构的定义
Struct 3DFbx{
Char name[100];//对象名称
Bool havenormal;//是否有向量
Vertex vertexList[LINE_MAX];//存储点
Int vertexCount;//点数目
Face faceList[FACE_MAX];//存储面
Int faceCount;//面数目
MaterialColor colorList[COLOR_MAX];//存储材质
int colorCount;//材质数目
}3DFbx;
本发明在格式转换过程中,主要定义了两个接口来完成,分别是FBXTranslatorManager和FBXTranslator两个接口,表1-1和表1-2分别为这两个接口的功能和所提供的方法。
Claims (5)
1.一种支持XNA技术的三维模型文件格式转换方法,其特征在于,依次包括以下步骤:
A:对待转换三维模型文件进行预处理,删除重复点、重复线和重复面;
B:判断待转换三维模型文件类型,若属于.x和.fbx文件格式,则进入步骤D;若属于.3ds、.skp或.dae文件格式,则进入步骤C;如不属于上述文件格式,则进入步骤E;
C:对.3ds、.skp或.dae文件格式进行数据解析,并将解析得到的数据按照通用存储结构.fbx格式进行储存;
D:结束转换过程,提示使用者此待转换三维模型文件无需转换;
E:结束转换过程,提示使用者此待转换三维模型文件无法转换。
2.根据权利要求1所述的支持XNA技术的三维模型文件格式转换方法,其特征在于,所述的C步骤还包括以下步骤:
C1:读取待转换三维模型文件主块信息及主块信息下的两个一级字块,两个一级字块分别为主编辑块和关键帧块,若读取到关键帧块则跳过,继续读取主编辑块;若读取到主编辑块,则进入步骤C2;
C2:依次读取主编辑块子块信息,并依次将每块主编辑块子块信息中的TriList、TriFbx和Vertex数组中包含的信息分别存入新创建的通用存储结构.fbx格式文件中的faceList、vertexList和vertex数组中,将主编辑块子块中材质信息存入新创建的通用存储结构.fbx格式文件中的colorList数组中,将待转换三维模型文件转换为新创建的通用存储结构.fbx格式。
3.根据权利要求2述的支持XNA技术的三维模型文件格式转换方法,其特征在于:A步骤中所述的重复点是指完全重合的点,或两点距离小于最大两点距离的1/1000的点。
4.根据权利要求3述的支持XNA技术的三维模型文件格式转换方法,其特征在于:A步骤中所述的重复线是指长度为零的边,或长度小于最大两点距离的1/1000的线段。
5.根据权利要求4述的支持XNA技术的三维模型文件格式转换方法,其特征在于:A步骤中所述的重复面是指面积为零的面,或面积小于最大面面积1/1000000的面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101745657A CN103353866A (zh) | 2013-05-13 | 2013-05-13 | 一种支持xna技术的三维模型文件格式转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101745657A CN103353866A (zh) | 2013-05-13 | 2013-05-13 | 一种支持xna技术的三维模型文件格式转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103353866A true CN103353866A (zh) | 2013-10-16 |
Family
ID=49310240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101745657A Pending CN103353866A (zh) | 2013-05-13 | 2013-05-13 | 一种支持xna技术的三维模型文件格式转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103353866A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537715A (zh) * | 2015-01-09 | 2015-04-22 | 中国电建集团昆明勘测设计研究院有限公司 | 一种实现fbx三维模型自动转换为obj三维模型的方法 |
CN104537710A (zh) * | 2014-12-26 | 2015-04-22 | 北京像素软件科技股份有限公司 | 一种图像处理的方法 |
CN106294606A (zh) * | 2016-07-29 | 2017-01-04 | 北京蓝威技术有限公司 | 一种基于通用读写框架的cae文件转换方法及装置 |
CN107818594A (zh) * | 2017-09-06 | 2018-03-20 | 北京矩阵空间科技有限公司 | 三维模型文件格式系统及读取方法 |
CN109635450A (zh) * | 2018-12-14 | 2019-04-16 | 苏州梦想人软件科技有限公司 | 三维模型检测方法及装置 |
CN110021070A (zh) * | 2018-01-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
CN113536739A (zh) * | 2021-09-16 | 2021-10-22 | 深圳须弥云图空间科技有限公司 | 将多种图模文件格式转换为统一格式的方法、装置及设备 |
CN115033546A (zh) * | 2022-06-27 | 2022-09-09 | 深圳市万维云数字科技有限公司 | 数字模型通用格式、转换方法、系统、终端及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063478A (zh) * | 2010-12-22 | 2011-05-18 | 张丛喆 | 适用于互联网搜索的三维文件格式转换方法及搜索引擎 |
-
2013
- 2013-05-13 CN CN2013101745657A patent/CN103353866A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063478A (zh) * | 2010-12-22 | 2011-05-18 | 张丛喆 | 适用于互联网搜索的三维文件格式转换方法及搜索引擎 |
Non-Patent Citations (2)
Title |
---|
江水: "三维模型转换引擎及其应用研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
罗东: "三维模型表现形式转换技术及存储格式定义的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537710A (zh) * | 2014-12-26 | 2015-04-22 | 北京像素软件科技股份有限公司 | 一种图像处理的方法 |
CN104537715A (zh) * | 2015-01-09 | 2015-04-22 | 中国电建集团昆明勘测设计研究院有限公司 | 一种实现fbx三维模型自动转换为obj三维模型的方法 |
CN104537715B (zh) * | 2015-01-09 | 2018-12-04 | 中国电建集团昆明勘测设计研究院有限公司 | 一种实现fbx三维模型自动转换为obj三维模型的方法 |
CN106294606A (zh) * | 2016-07-29 | 2017-01-04 | 北京蓝威技术有限公司 | 一种基于通用读写框架的cae文件转换方法及装置 |
CN106294606B (zh) * | 2016-07-29 | 2019-10-11 | 北京蓝威技术有限公司 | 一种基于通用读写框架的cae文件转换方法及装置 |
CN107818594A (zh) * | 2017-09-06 | 2018-03-20 | 北京矩阵空间科技有限公司 | 三维模型文件格式系统及读取方法 |
CN110021070A (zh) * | 2018-01-10 | 2019-07-16 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
CN110021070B (zh) * | 2018-01-10 | 2023-03-31 | 阿里巴巴集团控股有限公司 | FBX三维模型转换为glTF三维模型的方法、设备以及系统 |
CN109635450A (zh) * | 2018-12-14 | 2019-04-16 | 苏州梦想人软件科技有限公司 | 三维模型检测方法及装置 |
CN113536739A (zh) * | 2021-09-16 | 2021-10-22 | 深圳须弥云图空间科技有限公司 | 将多种图模文件格式转换为统一格式的方法、装置及设备 |
CN115033546A (zh) * | 2022-06-27 | 2022-09-09 | 深圳市万维云数字科技有限公司 | 数字模型通用格式、转换方法、系统、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103353866A (zh) | 一种支持xna技术的三维模型文件格式转换方法 | |
CN102568038B (zh) | 将二维工程图上的尺寸转移到三维cad模型上的方法 | |
CN102298795B (zh) | 一种快速成型工艺中零件的stl三角网格模型的三维分段方法 | |
CN108665248A (zh) | 基于bim的建筑信息集成管理系统及构建方法 | |
CN101853162B (zh) | 一种可编辑的网页三维几何造型渲染方法 | |
CN106023297B (zh) | 一种精细三维模型的纹理动态组织方法 | |
CN107273543B (zh) | 一种dgn数据格式的转换方法 | |
CN111339599B (zh) | 一种bim模型到gis模型的转换方法 | |
CN104679954A (zh) | 将bim模型轻量化的方法和系统 | |
CN106600700B (zh) | 一种三维模型数据处理系统 | |
CN105389850A (zh) | 一种大规模三维场景的新型可见性生成方法 | |
CN102622476A (zh) | 用于建筑算量领域的cad图纸整合系统 | |
CN112365598B (zh) | 倾斜摄影数据转换三维数据的方法、装置及终端 | |
CN102262758A (zh) | 基于cime文件的时空多维电网模型统一建模和管理方法 | |
CN102129718A (zh) | 一种无失真的异构cad模型转换方法 | |
CN107480380A (zh) | 一种基于模板的工程图纸生成方法 | |
CN110990467A (zh) | 一种bim模型格式转换方法及转换系统 | |
CN101976468A (zh) | 一种多分辨率动态地形可视化方法及系统 | |
Zhou et al. | A streaming framework for seamless building reconstruction from large-scale aerial lidar data | |
CN104537715A (zh) | 一种实现fbx三维模型自动转换为obj三维模型的方法 | |
CN116502303B (zh) | 一种基于场景层级实例信息增强的bim模型可视化方法 | |
US9007370B2 (en) | Computing device and method for processing curved surface | |
CN110096484B (zh) | 一种基于Revit的3D模型批量导出方法 | |
CN114139471B (zh) | 适用于cfd的城市街区三维模型构建和网格划分方法及系统 | |
CN102136154B (zh) | 一种动漫制作方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131016 |