一种真三维模型数据格式的制作方法

文档序号:18464488发布日期:2019-08-17 02:19阅读:323来源:国知局
一种真三维模型数据格式的制作方法

本发明涉及三维模型技术领域,具体为一种真三维模型数据格式。



背景技术:

三维模型是物体的多边形表示,通常用计算机或者其它视频设备进行显示,显示的物体可以是现实世界的实体,也可以是虚构的物体。任何物理自然界存在的东西都可以用三维模型表示,其中在三维模型中其数据格式十分的重要。

目前所知的三维模型格式大都是假三维格式,意即三维模型显示主要包含网格信息,纹理、蒙皮和动画等三维信息,并不包含模型内部的属性信息(比如地质模型中某一块体的土壤性质、颜色等),做三维展示和动画可以胜任,但若对自然界的复杂三维模型进行分析则相形见绌。



技术实现要素:

本发明的目的在于提供一种真三维模型数据格式,以解决上述背景技术中提出的目前所知的三维模型格式大都是假三维格式,意即三维模型显示主要包含网格信息,纹理、蒙皮和动画等三维信息,并不包含模型内部的属性信息(比如地质模型中某一块体的土壤性质、颜色等),做三维展示和动画可以胜任,但若对自然界的复杂三维模型进行分析则相形见绌。

为实现上述目的,本发明提供如下技术方案:一种真三维模型数据格式,包括ascii码格式存储模块和属性名定义模块,所述ascii码格式存储模块与二进制压缩模块之间为电性连接,且二进制压缩模块与tag标记模块之间为电性连接,所述tag标记模块与tag选择判定模块之间为电性连接,且tag选择判定模块与x/y/z坐标排列模块和坐标读取模块之间均为电性连接,所述属性名定义模块与二进制压缩模块之间为电性连接,且属性名定义模块与备注块存储模块之间为电性连接,所述属性名定义模块与网络和节点数据模块、网络和单元数据模块、unif网格和节点数据模块、struct网格和节点数据模块、网络/节点数据/单元数据模块、节点数据定义模块和单元组数据定义模块之间均为电性连接,且节点数据定义模块与数据单位模块、数据名称模块和节点数据类型编号模块之间均为电性连接,所述单元组数据定义模块与单元类型模块、组内单元数量记录单元和单元组数据编号单元之间均为电性连接。

优选的,所述ascii码格式存储模块、二进制压缩模块、tag标记模块和tag选择判定模块之间为依次串联连接,且二进制压缩模块、tag标记模块和tag选择判定模块依次两两之间的信号传递方式为双向传递。

优选的,所述属性名定义模块和备注块存储模块之间的信号传递方式为双向传递。

优选的,所述节点数据定义模块与单元组数据定义模块并联接入属性名定义模块的一端子,且数据单位模块、数据名称模块和节点数据类型编号模块并联接入节点数据定义模块的一端子,而且单元类型模块、组内单元数量记录单元和单元组数据编号单元并联接入单元组数据定义模块的一端子。

优选的,所述网络和节点数据模块、网络和单元数据模块、unif网格和节点数据模块、struct网格和节点数据模块与网络/节点数据/单元数据模块之间构成并联结构。

与现有技术相比,本发明的有益效果如下:

1、本发明创造的有益效果是在三维物体中加入了属性,在对三维物体渲染的同时可以对三维体每个基本元进行属性提取,并把这些属性通过颜色或者图标的形式展示出来,对复杂三维物体的分析提供了依据。

2、本发明通过ascii码格式存储模块、二进制压缩模块、tag标记模块和tag选择判定模块之间的配合使用,即可将数据信息采用ascii码格式进行存储,并且经过二进制压缩模块即可进行数据的进一步的处理,并且经过tag标记模块方便来对数据信息进行进一步的标识处理,同时可通过tag选择判定模块来进行判定处理。

3、本发明通过节点数据定义模块可将数据信息分类定义,可通过数据单位模块、数据名称模块和节点数据类型编号模块分别来进行数据单位、数据名称、编号定义,同时可通过单元组数据定义模块来对单元组信息进行定义,具体可经过单元类型模块、组内单元数量记录单元和单元组数据编号单元分别来进行单元组的类型、数量、编号进行定义。

附图说明

图1为本发明一种真三维模型数据格式的流程示意图;

图2为本发明一种真三维模型数据格式的tag选择判定模块系统流程示意图;

图3为本发明一种真三维模型数据格式的节点数据定义模块和单元组数据定义模块流程示意图。

图中:1、ascii码格式存储模块;2、二进制压缩模块;3、tag标记模块;4、tag选择判定模块;5、x/y/z坐标排列模块;6、坐标读取模块;7、属性名定义模块;8、备注块存储模块;9、节点数据定义模块;10、单元组数据定义模块;11、单元类型模块;12、组内单元数量记录单元;13、单元组数据编号单元;14、数据单位模块;15、数据名称模块;16、节点数据类型编号模块;17、网络和节点数据模块;18、网络和单元数据模块;19、unif网格和节点数据模块;20、struct网格和节点数据模块;21、网络/节点数据/单元数据模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

请参阅图1-3,本发明提供一种技术方案:一种真三维模型数据格式,包括ascii码格式存储模块1、二进制压缩模块2、tag标记模块3、tag选择判定模块4、x/y/z坐标排列模块5、坐标读取模块6、属性名定义模块7、备注块存储模块8、节点数据定义模块9、单元组数据定义模块10、单元类型模块11、组内单元数量记录单元12、单元组数据编号单元13、数据单位模块14、数据名称模块15、节点数据类型编号模块16、网络和节点数据模块17、网络和单元数据模块18、unif网格和节点数据模块19、struct网格和节点数据模块20和网络/节点数据/单元数据模块21,ascii码格式存储模块1与二进制压缩模块2之间为电性连接,且二进制压缩模块2与tag标记模块3之间为电性连接,tag标记模块3与tag选择判定模块4之间为电性连接,且tag选择判定模块4与x/y/z坐标排列模块5和坐标读取模块6之间均为电性连接,属性名定义模块7与二进制压缩模块2之间为电性连接,且属性名定义模块7与备注块存储模块8之间为电性连接,属性名定义模块7与网络和节点数据模块17、网络和单元数据模块18、unif网格和节点数据模块19、struct网格和节点数据模块20、网络/节点数据/单元数据模块21、节点数据定义模块9和单元组数据定义模块10之间均为电性连接,且节点数据定义模块9与数据单位模块14、数据名称模块15和节点数据类型编号模块16之间均为电性连接,单元组数据定义模块10与单元类型模块11、组内单元数量记录单元12和单元组数据编号单元13之间均为电性连接;

ascii码格式存储模块1、二进制压缩模块2、tag标记模块3和tag选择判定模块4之间为依次串联连接,且二进制压缩模块2、tag标记模块3和tag选择判定模块4依次两两之间的信号传递方式为双向传递,通过ascii码格式存储模块1、二进制压缩模块2、tag标记模块3和tag选择判定模块4之间的配合使用,即可将数据信息采用ascii码格式进行存储,并且经过二进制压缩模块2即可进行数据的进一步的处理,并且经过tag标记模块3方便来对数据信息进行进一步的标识处理,同时可通过tag选择判定模块4来进行判定处理;

属性名定义模块7和备注块存储模块8之间的信号传递方式为双向传递,通过属性名定义模块7可来对数据信息进行分类定义,而其定义后的数据信息可经过备注块存储模块8来进行存储;

节点数据定义模块9与单元组数据定义模块10并联接入属性名定义模块7的一端子,且数据单位模块14、数据名称模块15和节点数据类型编号模块16并联接入节点数据定义模块9的一端子,而且单元类型模块11、组内单元数量记录单元12和单元组数据编号单元13并联接入单元组数据定义模块10的一端子,通过节点数据定义模块9可将数据信息分类定义,可通过数据单位模块14、数据名称模块15和节点数据类型编号模块16分别来进行数据单位、数据名称、编号定义,同时可通过单元组数据定义模块10来对单元组信息进行定义,具体可经过单元类型模块11、组内单元数量记录单元12和单元组数据编号单元13分别来进行单元组的类型、数量、编号进行定义;

网络和节点数据模块17、网络和单元数据模块18、unif网格和节点数据模块19、struct网格和节点数据模块20与网络/节点数据/单元数据模块21之间构成并联结构,通过网络和节点数据模块17、网络和单元数据模块18、unif网格和节点数据模块19、struct网格和节点数据模块20与网络/节点数据/单元数据模块21即可方便来对各个数据模块进行分类,便于数据进行更好的传输使用。

实例一:

文件备注

1、kls_field_file_notes_end:用来放置文件备注的块,如果需要文件备注则必须用开始tag和结束tag来标记整个块;

2、格式中用属性名definition定义三维模型的网格数据类型:

mesh+node_data:网格和节点数据;

mesh+cell_data:网格和单元数据;

mesh+node_data+cell_data:网格和节点数据和单元数据;

mesh_struct+node_data(geology):struct网格和节点数据岩性;

mesh_unif+node_data(uniformfield):unif网格和节点数据均匀场;

nnodes66355节点数量,不适用于mesh_struct和mesh_unif

ndim2

mesh_struct和mesh_unif的维度

dims4141

mesh_struct和uniformfiled的尺寸

points11061.52899912692.304504-44.04999911611.33099413098.10546911.500000

uniformfiled仅适用于mesh_unif的左下角和右上角的坐标

coord_units"ft"

坐标单位

num_node_data7

节点数据的种类

num_cell_data1

单元数据的种类

ncell_sets5

单元组的种类

nodesfile"test_split.xyz"row1x1y2z3

标记下面的内容是节点的坐标。如果这个tag是“nodesin_file”,那么接下来就会以x/y/z的方式排列各个节点的坐标,如果这个tag是“file”那么后面就会紧跟"filename"row1x1y2z3,其中file那么就是坐标点的文件名,row1表示从第一行开始读取数据,x1y2z3表示xyz坐标分别在哪列

node_data_def0"tothc""log_ppm"minmax-34.592file"test_split.nd"row1cols1

定义了节点数据的具体类型或名称,第一个参数是节点数据类型的编号,第二个是数据的名称,第三个是数据的单位。其他一些参数选项如下:

minmax–后跟两个数字,一个是数据最小值,一个是数据最大值;

file–后跟存放改数据的文件的文件名,从第几行开始读取数据以及读取第几列数据;

veclen3–对于矢量数据会有这个tag,而且cols后需要指定3个数字,分别为矢量各分量的数据列;

in_file–数据在当前文件中:

node_data_start–后跟详细节点数据,节点数据按编号排列在每一列,对应相应的点;

cell_set_def08120hex"fill"minmax114file"test_split.conn"row1;

定义了单元组的类型和名称。第一个参数是单元组的编号,第二个参数是该组中单元的数量,第三个参数是单元的类型,第四个是单元组的名称。其他一些参数选项如下:

minmax–后跟两个数字,一个是数据最小值,一个是数据最大值;

file–后跟存放改数据的文件的文件名,从第几行开始读取数据;

in_file–数据在当前文件中;

cell_start–后跟详细单元组数据;

cell_data_def0"indicator""discreetunit"file"test_split.cd"row1cols1;

定义了单元数据的具体类型或名称,和node_data_def基本相同。

cell_data_start

后跟详细单元数据

layer_names"top""fill""silt""clay""gravel""sand"

用于指定每个地层的名称,和相应存储在celldata中的layer编号一一对应。

material_mapping"1|silt""2|fill""3|clay""4|sand""5|gravel"

用于指定材料的编号和名称。

end

用于标记数据内容的全部结束。

综上,该真三维模型数据格式,通过ascii码格式存储模块1、二进制压缩模块2、tag标记模块3和tag选择判定模块4之间的配合使用,即可将数据信息采用ascii码格式进行存储,并且经过二进制压缩模块2即可进行数据的进一步的处理,并且经过tag标记模块3方便来对数据信息进行进一步的标识处理,同时可通过tag选择判定模块4来进行判定处理,通过属性名定义模块7可来对数据信息进行分类定义,而其定义后的数据信息可经过备注块存储模块8来进行存储,通过节点数据定义模块9可将数据信息分类定义,可通过数据单位模块14、数据名称模块15和节点数据类型编号模块16分别来进行数据单位、数据名称、编号定义,同时可通过单元组数据定义模块10来对单元组信息进行定义,具体可经过单元类型模块11、组内单元数量记录单元12和单元组数据编号单元13分别来进行单元组的类型、数量、编号进行定义,通过网络和节点数据模块17、网络和单元数据模块18、unif网格和节点数据模块19、struct网格和节点数据模块20与网络/节点数据/单元数据模块21即可方便来对各个数据模块进行分类,便于数据进行更好的传输使用。

以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

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