三维模型文件格式系统及读取方法与流程

文档序号:13983526阅读:1751来源:国知局
三维模型文件格式系统及读取方法与流程

本发明涉及三维模型信息处理领域,具体涉及一种三维模型文件格式及读取方法。



背景技术:

三维模型文件格式是记录和储存三维模型信息的格式,对三维模型进行储存、处理、传播,必须采用一定的图像格式,也就是把三维模型按照一定的方式进行组织和储存,把三维模型数据储存成文件,就得到了三维模型文件。三维模型文件格式决定了应该在文件中存放何种类型的信息,这些信息以何种形式储存,文件如何与各种应用软件兼容,文件如何与其他文件交换数据。

目前,市场上的三维模型文件格式多种多样,通用的模型格式有obj、stl、fbx等,除此之外,还有许多专有的格式,如discreet公司的三维编辑软件3dstudiomax的.max格式、autodesk公司的三维动画编辑软件maya的.ma格式等。但由于三维模型文件的特殊性,全部的三维模型文件格式均具有以下的问题:1)占用存储空间大;2)打开耗费内存多;3)必须使用专门的软件才能打开;4)无法跨平台展示,尤其是无法在移动端及web浏览器中展示。



技术实现要素:

本发明的目的是提供一种三维模型文件格式系统及读取方法,可大幅度降低格式文件的占用空间。

本发明的目的是通过以下技术方案来实现:

一种三维模型文件格式系统,包括用于储存文件标志、版本号及自定义信息模块基本信息的文件头模块、用于储存格式文件的有序树结构、结点名、结点层及结点之间连接关系的node信息模块、用于储存模型结构信息、材质信息、动画效果信息、贴图信息、光源信息、视角信息的自定义信息模块。

在优选的实施方案中,所述自定义信息模块中包含模型结构信息单元、材质信息单元、动画效果信息单元、贴图信息单元、光源信息单元、视角信息单元中的之一或组合。

在优选的实施方案中,所述node信息模块为有序树结构,其结点的层次从上到下依次为用于储存模型结构信息的结点、用于储存材质信息块的结点、用于储存动画效果信息块的结点、用于储存贴图信息块的结点、用于储存光源信息块的结点、用于储存视角信息块的结点。

在优选的实施方案中,所述自定义信息模块中设有压缩模块,所述文件头模块中设有用于储存压缩标志的压缩标志库,所述压缩标志用于记录压缩模块的触发信息。

一种读取三维模型文件格式的方法,包括如下步骤:

a、对当前三维模型文件进行分析,读取文件头模块,进行解析,得到文件标志、版本号、压缩标志。

b、根据所述文件标志判断该三维模型文件格式是否为需求文件,根据所述版本号判断与该版本号相对应的文件读取方法,根据压缩标志判断需要启动压缩模块的自定义信息模块。

c、读取node信息模块,进行解析,得到自定义信息模块位于有序树中的结点位置及结点之间的层次排列关系。

d、按照结点层次关系依次解析自定义信息模块,读取当前自定义信息模块中的压缩模块,若压缩标志库内能够检索到开启压缩模块的压缩标志,则对所述自定义信息模块的进行解压处理。

e、移动到下一结点层次关系的自定义信息模块,重复步骤d,直到文件读取处理完毕。

在优选的实施方案中,所述按照有序树结构的结点层次排列顺序依次解析自定义信息模块,其解析顺序为:模型结构信息模块、材质信息模块、动画效果信息模块、贴图信息模块、光源信息模块、视角信息模块。

本发明三维模型文件格式系统及读取方法,相较于现有技术,具有如下有益效果:

1)本发明的文件格式系统通过对三维模型文件中相同数据先进行分类处理,再将每一类数据分别进行压缩处理,得到压缩的信息块,这些信息块基于有序树结构排列,可防止数据混乱的情况,并且大幅度降低文件的占用空间,其压缩效果相对比现有的obj格式,提高将近10倍。

2)本发明通过算法,可将各种格式的模型文件进行压缩及加密处理,在不失真的情况下将模型占用的存储空间压缩至原先的1/20,并支持对模型的渲染,同时,本发明的文件格式系统可支持包括pc、web浏览器和移动设备在内的多平台展示,无需使用专门的三维播放软件,且由于模型文件小,加载速度较快,耗费流量低,模型加载及渲染时所需要占用的内存空间也较少。

附图说明

下面根据附图对本发明作进一步详细说明。

图1a、1b、1c是本发明实施例所述的三维模型文件格式的信息块结构图;

图2是本发明实施例所述的三维模型文件格式的逻辑流程图;

图3是对比效果模型的效果图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面将参照附图和具体实施例对本发明作进一步的说明。

如图1a所示,本发明实施例的三维模型文件格式系统,其生成的三维模型文件格式的后缀名为“.m3dtf”。所述三维模型文件格式系统,主要包括文件头模块、node信息模块、自定义信息模块,生成的三维模型文件格式中所有信息和数据都按照一定的结构组合在一个文件内,文件为二进制文件。其中:

所述文件头模块,用于储存有关整个三维模型文件的基础信息,包含文件标志(2字节)、版本号(1字节)、各类自定义信息模块的总数量(4字节)及压缩标志(4字节),其中压缩标志储存在压缩标志库内。

文件标志为字母“m3dtf”的ascii码,用于表示本文件为三维模型文件格式文件;版本号为文件格式的版本,用ascii码的数字来表示,用于通过文件表示和版本号,可以确定针对不同版本文件读取的方法。各类自定义信息模块的总数量用于分别记录模型结构信息、材质信息、动画效果信息、贴图信息、光源信息、视角信息的总数量,上述信息均用ascii码的数字来表示。压缩标志用于记录压缩模块的触发信息,触发信息可自定义,其具体为自定义信息模块的结点位置代码、自定义信息模块的名称代码或其他具有唯一意思的代码,压缩标志根据自定义信息模块的结点读取顺序进行排列,所述压缩标志在建立自定义信息模块时设置。

node信息模块,用于储存有关整个格式文件的有序树结构、结点名、结点层、结点之间的连接关系,其结点的层次从上到下依次为用于储存模型结构信息的结点、用于储存材质信息块的结点、用于储存动画效果信息块的结点、用于储存贴图信息块的结点、用于储存光源信息块的结点、用于储存视角信息块的结点,实现三维模型的信息解压顺序按照由内到外、从骨架到血肉的过程。若三维模型结构复杂,将三维模型分割成多个独立结构,即多个有序树结构,则所有有序树结构的根节点之间的连接关系储存在node信息块中。如将人体三维模型分割成头部、身体、左手、右手等,头部、左手、右手分别与身体连接并存在不同的连接关系。

所述自定义信息模块中至少包含如下信息之一或组合:模型结构信息单元、材质信息单元、动画效果信息单元、贴图信息单元、光源信息单元、视角信息单元。其中模型结构信息单元(mesh)用于储存维护数据之间的交互关系信息,建立整个三维模型的具体框架,并与其他自定义信息模块建立数据连接关系,缓存具体的模型数据,用于描述模型的物理位置信息、点、线、面等关键数据。如头部三维图像,储存头部图像的顶点数量、头部图像的三角形面数、各顶点位置(空间位置)、颜色数据、贴图数据、uv数量、三角形面数据、骨骼数据、材质数量。

如图1b所示,所述材质信息模块(material)用于储存物体在虚拟世界中还原出不同特性所需要材质的相关属性信息,以便于渲染时进行展示。如属性名、语义、索引、数据长度、数据等信息等材质属性信息。

动画效果信息模块(animation)用于储存三维模型的动画效果信息,动画在游戏和创建交互式的三维模型时必不可少,描述模型的不同构件在空间中发生位移,缩放,或者旋转而产生的动画效果。如动画名、动画时长、帧率、通道数据、mesh通道数据等动画效果属性信息。

贴图信息模块(texture)用于储存三维模型的贴图信息,同样形状和材质的物体,贴上不同的图片,将得到更加丰富的表现力。如贴图宽度、贴图高度、贴图格式、贴图数据等贴图属性信息。

如图1c所示,光源信息模块(light)用于储存三维模型的光源信息,不同的光源照射在同样的物体表面上,会产生不同光照效果。如生活中的阳光、射灯、彩光、白炽灯等等,储存该光源名称、光源类型、光源坐标、光源方向、光源顶点、光源固定衰减、线性衰减、二次衰减、慢反射颜色、镜面反射颜色、环境光颜色等光源属性信息。

视角信息模块(camera)用于储存三维模型的视角信息,包括视角名称、视角坐标、顶点、观察点、相机水平视场、远景、近景、宽高比等视角属性信息。当分别从物体的旁边、上方、远处、观看同一个物体时,会显出不同的结构。

所述自定义信息模块中设有压缩模块,压缩模块位于自定义信息模块中的首位读取模块,若压缩模块的开启代码与压缩标志相同,则触发该压缩模块,即对与所述压缩模块相对应的自定义信息模块进行解压缩处理,待全部模块读取完成后,可得到三维模型。

如图2所示,一种读取三维模型文件格式的方法,用于对上述三维模型文件格式进行读取,包括如下步骤:

a、对当前三维模型文件进行分析,读取长度为128字节的文件头模块,进行解析,得到文件标志。

b、判断是否为“m3dtf”,如果不是,则代表当前的文件不是三维模型文件,退出文件读取程序,反之,读取文件头模块,解析得到文件格式的版本号,确定针对该版本文件读取的方法,读取文件头模块,解析得到全部自定义信息模块的基本信息,解析出自定义信息模块的总数量、结点位置代码、名称代码或其他唯一代码,读取压缩标志库,解析得到压缩标志。

c、读取node信息块进行解析,得到全部自定义信息模块位于有序树的结点及结点之间的层次排列关系,包括多个有序树之间的连接关系,即有序树的根之间的连接关系。

d、按照结点层次关系依次解析自定义信息模块,其解析顺序为:模型结构信息块、材质信息块、动画效果信息块、贴图信息块、光源信息块、视角信息块。自定义信息模块内设有压缩模块,压缩模块由建立该自定义信息模块时设立,读取当前自定义信息模块的压缩模块,若压缩模块的触发代码与压缩标志相同或相对应,则触发所述压缩模块,对当前自定义信息模块的进行解压处理。

e、移动到下一结点层次关系的自定义信息模块,重复步骤d,直到文件读取处理完毕。

本发明格式与其他格式的对比效果:

如图3所示,预览图转换为obj格式的模型文件,在文件系统中占用空间为125161字节,而将该预览图转换为本发明的m3dtf格式后只需要13205字节的空间,可见压缩效果比较明显。

最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1