掌桥专利:专业的专利平台
掌桥专利
首页

一种空间模型数据的切片方法

文献发布时间:2023-06-19 18:37:28


一种空间模型数据的切片方法

技术领域

本发明涉及地理信息技术领域,具体的说可以将给定的空间模型数据进行切片,使用可伸缩网格对空间进行了分割,并通过自下而上的聚合方式生成了精细程度由繁到简的多层级切片数据,能够极大的提高复杂场景、海量空间模型数据的调度、渲染性能,降低空间模型数据在场景中的内存、显存、网络带宽的消耗的一种空间模型数据的切片方法。

背景技术

随着IT技术和产业的迅速发展,地理信息方法(GIS)以它显著的特点和日益强大的功能广泛地深入到各行各业,并在其中发挥着越来越重大的作用。与此同时,这些应用反过来又对GIS提出了更多、更高的要求。人们生活在一个真实的三维空间内,很多实际现象依靠现有的2D GIS得不到很好的解决,如城市规划中立交桥及建筑物的设计及景观模拟;地下铁路、商场、停车场及其它服务设施的数据管理及图形显示;电力、通讯设施的合理布局与规划;房产部门中楼房住宅的消防、供电、供水、供气、报警等设施的合理配置;城市地上、地下管网的合理分布、管理、查询及最佳路径的选择;航空飞行线路的规划与管理;地质、石油等领域的地层、断裂、地质构造体、油层、地下气、地下水等各种现象的描述及分析等等。这些都需要直观的真三维表示,传统的2D GIS已结不能满足人民的应用需求,它迫切需要向3D GIS转换。因此,3D GIS激起了研究人员的强烈兴趣。对3D GIS的研究已成为学术界关注的热点。

随着“数字地球”、“数字城市”等一系列概念的提出,有关三维城市模型的应用需求正迅速增加。地理信息的普遍服务如数字城市、虚拟地理环境等也对其三维表示提出了紧迫的要求,而对地观测技术和计算机技术特别是分辨率遥感技术和计算机图形图像处理技术的进步为此提供了多种显示途径。地理信息的三维表示具有以下显著的特征:

三维表示能够给与用户更加直观的空间高程信息,而传统的二维表示反映的都是空间物体的平面位置,其高程信息只是作为一个属性值而存在,并不能被直观地反映出来。

以更加直观和逼真的方式指出空间目标种类及数量和质量特征以及对象的空间位置和现象的时空分布,所以三维表示具有完整的时空定位特征。

与之对应,数码城市是关于城市的一种逼真的三维数字表示,使人们可以探察汇集关于城市的自然和人文信息,并与之互动。在摄影测量界,数码城市大多数情况下指三维城市模型,它不仅呈现三维城市模型,而且还提供具有相片直观的表面描述如逼真的材质和纹理特征以及相关的属性信息,满足数码城市需要的GIS被称为“数码城市GIS”。与三维可视化和虚拟显示技术相比,实用化的真三维GIS的研究进展则缓慢很多,其理论与技术都还不成熟。因此,不像一般意义的真三维GIS,数码城市GIS现阶段还只是真三维GIS一种特殊的原型方法,根据大多数的应用需求在许多方面进行了简化,比如采用外包围表面模型代替实体几何模型和淡化了复杂的空间拓扑关系等,不论现实世界如何映射到空间数据库,更强调GIS以一种稳健有效的方式提供三维能力。

但是目前的三维GIS方法存在若干关键技术问题需要解决,如何有效地将给定的空间模型数据进行切片,使用可伸缩网格对空间进行了分割,并通过自下而上的聚合方式生成了精细程度由繁到简的多层级切片数据,能够极大的提高复杂场景、海量空间模型数据的调度、渲染性能,降低空间模型数据在场景中的内存、显存、网络带宽的消耗。

发明内容

为了克服现有技术方案的弊端,实现可以将给定的空间模型数据进行切片,使用可伸缩网格对空间进行了分割,并通过自下而上的聚合方式生成了精细程度由繁到简的多层级切片数据,能够极大的提高复杂场景、海量空间模型数据的调度、渲染性能,降低空间模型数据在场景中的内存、显存、网络带宽的消耗。

一种空间模型数据的切片方法,其中该方法包括如下步骤:空间模型数据读取:读取多源异构空间模型数据,提取模型几何信息、纹理信息;统一模型几何信息、纹理信息的组织形式,统一空间模型的空间参考,将模型信息保存到数据池中,并建立空间索引;模型数据动态分配:读取数据池中的空间模型数据,生成基础网格,从数据池中读取各个基础网格数据块,运算模型承载量,对网格模型承载量超出网格承载量阈值的网格单元进行空间调整,使所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格;赋予模型单体信息重构的唯一标识、绑定标识至模型信息中,将空间模型数据分配到其对应的网格单元中;模型空间匹配:从数据块中读取模型的几何信息,将模型原点归零,对模型顶点坐标进行更新;将数据块中模型的顶点坐标信息统一到地理空间坐标下,进一步将数据块中的模型坐标转为切片使用场景对应的空间参考的坐标,将模型顶点位置转换到三维渲染坐标系下的实际位置,更新模型场景坐标;生成切片脉络结构:对数据块中的各个模型进行循环拆解直至模型数据量满足切片阈值,将拆解后的模型体块进行多次聚合操作,获得多个模型聚合体,将各个模型聚合体保存为切片脉络叶子节点;计算自适应简化参数,对切片叶子节点模型进行多层次简化,重新分配纹理坐标,对各个纹理图片进行多尺度的简化、合并,更新切片内部模型的纹理信息;进行多次聚合操作,直至所有叶子级别切片聚合完成获得多个切片聚合体,根据切片脉络叶子节点和聚合获得的切片脉络中间节点的相关对应关系,将切片脉络叶子节点绑定到其父切片脉络中间节点上,使每个切片脉络中间节点均与子节点呈相互对应的逻辑关系;对模型三角点进行聚合简化;将数据块中所有切片脉络中间节点聚合为整体,生成切片脉络根节点,将切片脉络中间节点绑定到其父切片脉络根节点上,使每个切片脉络根节点均与子节点呈相互对应的逻辑关系;输出切片文件及索引文件:对切片中模型的顶点坐标、切片文件进行压缩,将切片信息保存至系统文件中,生成对应的切片数据文件。根据各网格中切片的父子对应关系形成切片父子节点关系树,合并各个网格的切片父子节点关系树,生成切片索引树,将切片索引树保存至系统文件中。

一种空间模型数据的切片方法,其中所述空间模型数据读取的具体步骤为:

多源数据读取:使用与模型数据类型对应的数据接口对多源异构空间模型数据进行读取,提取模型几何信息、纹理信息;

模型信息标准化:统一模型几何信息、纹理信息的组织形式,统一空间模型的空间参考,将所有模型的顶点坐标转换到统一的坐标系下,将模型的几何信息、纹理信息保存到数据池中,并在整个数据池的坐标范围内建立空间索引。

一种空间模型数据的切片方法,其中所述模型数据动态分配的具体步骤为:

划分空间可伸缩网格:读取数据池中的空间模型数据,计算基础网格分块边长和各个数据块地理坐标范围,将数据池中模型的空间范围进行网格划分,生成基础网格;从数据池中读取各个基础网格数据块,对各个网格的模型承载量进行运算;将各个数据块的模型承载量与指定的网格承载量阈值进行比对,对网格模型承载量超出网格承载量阈值上限的网格单元进行空间上的细化,对网格模型承载量超出网格承载量阈值下限的网格单元进行空间上的合并,直到所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格;

对模型拆解、重新分配:赋予模型单体信息重构的唯一标识、绑定标识至模型信息中;将空间模型数据分配到其对应的网格单元中。

一种空间模型数据的切片方法,其中所述划分空间可伸缩网格的步骤为:

生成基础网格:读取数据池中的空间模型数据,根据模型空间坐标范围计算基础网格分块边长,根据网格分块边长计算各个数据块地理坐标范围,依据数据块地理坐标范围将数据池中的模型的空间范围进行网格划分,生成基础网格;其中数据块地理坐标范围公式为:

XMIN

XMAX

YMIN

YMAX

式中:

XMIN

XMAX

YMIN

YMAX

XMIN

YMIN

统计网格模型承载量:从数据池中读取各个基础网格中的数据块,读取数据块中空间模型信息的几何信息和纹理信息,对各个网格的模型承载量进行运算,其中模型承载量的运算公式为:

式中:

capacity

k代表网格内的模型数量;

length

Length

Size

length

n

width

height

Size

生成伸缩网格:将各个数据块的模型承载量与指定的网格承载量阈值进行比对,对网格模型承载量超出网格承载量阈值上限的网格单元进行空间上的细化,计算细化后网格单元的模型承载量,当判定网格单元的模型承载量超出指定的网格承载量阈值上限,则进行进一步细化;对网格模型承载量超出网格承载量阈值下限的网格单元进行空间上的合并,计算合并后网格单元的模型承载量,当判定网格单元的模型承载量超出指定的网格承载量阈值下限,则进行进一步合并,直到所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格。

一种空间模型数据的切片方法,其中所述对模型拆解、重新分配的具体步骤为:

生成重构信息:为每个模型生成可用于模型单体信息重构的唯一标识,将标识绑定至模型信息中;

数据检索分配:在数据池中对网格单元坐标范围内的空间模型进行检索,将空间模型数据分配到其对应的网格单元中。

一种空间模型数据的切片方法,其中所述模型空间匹配的具体步骤为:

模型原点归零:从各个数据块中读取模型的几何信息,将模型原点置零,根据模型原点信息运算模型变换矩阵,使用模型变换矩阵运算新的模型顶点坐标,对模型顶点坐标进行更新;

统一模型地理空间坐标:将数据块中模型的顶点坐标信息统一到地理空间坐标下,形成统一的模型地理空间坐标;

渲染场景空间坐标:将数据块中的模型坐标转为切片使用场景对应的空间参考的坐标,更新模型姿态;将模型顶点位置转换到三维渲染坐标系下的实际位置,更新模型场景坐标。

一种空间模型数据的切片方法,其中所述模型原点归零的具体步骤为;

读取模型几何信息:从各个数据块中读取模型的几何信息,获取模型顶点坐标信息和模型原点信息;

重设模型原点:将模型原点置零,根据模型原点置零前的模型原点信息运算模型变换矩阵;其中模型变换矩阵的运算公式为:

式中:

Mat代表模型变换矩阵;

x代表原点归零前模型原点x坐标;

y代表原点归零前模型原点y坐标;

z代表原点归零前模型原点z坐标;

更新模型空间坐标:使用模型变换矩阵运算新的模型顶点坐标,使用新的模型顶点坐标替换模型原始顶点坐标;新的模型顶点坐标运算公式为:

式中:

Mat代表模型变换矩阵;

x

x

一种空间模型数据的切片方法,其中所述渲染场景空间坐标的具体步骤为:

更新模型姿态:将数据块中的模型坐标转为切片使用场景对应的空间参考的坐标,更新模型的位置和旋转角度;

更新模型场景坐标:将模型顶点位置转换到三维渲染坐标系下的实际位置,获得在三维渲染坐标系下模型的场景坐标,使用场景坐标值替换原模型顶点坐标。

一种空间模型数据的切片方法,其中所述生成切片脉络结构的具体步骤为:

生成切片脉络叶子节点:提取数据块中各个模型信息,通过运算公式获得模型数据量与切片阈值的比对结果对模型进行循环拆解直至模型数据量满足切片阈值,将拆解后的模型体块进行多次聚合操作,直至所有模型体块聚合生长完成获得多个模型聚合体,将各个模型聚合体保存为切片脉络叶子节点;

其中获得模型数据量的运算公式为:

式中:

Size

length

Length

Size

length

n

width

height

Size

生成切片脉络中间节点:根据定量可视距离和模型特点计算自适应简化参数,对切片叶子节点模型进行多层次简化,对纹理坐标进行重新分配;对各个纹理图片进行多尺度的简化,对切片叶子节点内部模型纹理图片进行合并,并对切片内部模型的纹理信息进行更新;选定切片叶子节点聚合初始点与各个叶子级别切片进行多次聚合操作,直至所有叶子级别切片聚合完成获得多个切片聚合体,根据切片脉络叶子节点和聚合获得的切片脉络中间节点的相关对应关系,将切片脉络叶子节点绑定到其父切片脉络中间节点上,使每个切片脉络中间节点均与子节点呈相互对应的逻辑关系;

生成切片脉络根节点:根据指定的简化程度运算获得切片深层简化系数对模型三角点进行聚合简化;将数据块中所有切片脉络中间节点聚合为整体,生成切片脉络根节点,并依据相关对应关系,将切片脉络中间节点绑定到其父切片脉络根节点上,使每个切片脉络根节点均与子节点呈相互对应的逻辑关系。

其深层简化系数运算公式为:

式中:

n代表切片深层简化系数;

Size

Size

一种空间模型数据的切片方法,其中所述输出切片文件及索引文件的具体步骤为:

模型顶点坐标压缩:通过压缩算法对切片中模型的顶点坐标进行压缩,将浮点型顶点坐标数组压缩成消耗存储空间更低类型的坐标数组;

文件压缩:通过压缩算法对整个切片文件进行压缩,重新组合文件数据结构;

输出切片数据:将切片中模型的几何信息、纹理信息、模型单体信息重构标识保存至IO流中,将IO流保存至系统文件中,根据切片对应的网格中心点经纬度和级数对文件进行命名,生成对应的切片数据文件;

输出索引文件:读取各个网格中切片的父子对应关系,形成各网格切片父子节点关系树,合并各个网格的切片父子节点关系树,生成切片索引树,规范整个数据池的切片索引树的内容、组织形式,将切片索引树保存至系统文件中。

一种空间模型数据的切片方法,其中所述输出索引文件的具体步骤为:

读取切片父子节点关系:读取各个网格中切片的父子对应关系,形成各个网格对应的切片父子节点关系树;

生成切片索引树:遍历各个网格的切片父子节点关系树,将各个切片父子节点关系树合并,结合各个切片文件存储的路径,生成切片索引树;

输出索引树:规范整个数据池的切片索引树的内容、组织形式,将切片索引树保存至系统文件中。

一种空间模型数据的切片方法,其中多源数据包括:人工制作精细模型数据、倾斜摄影测量数据、BIM数据、地质模型数据、点云数据。

由此可见:

本发明实施例中的方法可以将给定的空间模型数据进行切片,使用可伸缩网格对空间进行了分割,并通过自下而上的聚合方式生成了精细程度由繁到简的多层级切片数据,能够极大的提高复杂场景、海量空间模型数据的调度、渲染性能,降低空间模型数据在场景中的内存、显存、网络带宽的消耗。本方法使用的可伸缩网格可以均衡各个网格数据块中的模型承载量,使切片调用过程中资源消耗稳定,避免了某个切片包含大数据量导致的渲染极大耗时,也可以避免产生多个包含极少数据量的切片对系统磁盘资源的消耗、减少不必要的网络请求次数;对模型顶点坐标进行压缩,降低了模型顶点坐标数据所占空间,对切片文件进行压缩增加了内存复用率,使数据排列更为紧凑,降低文件所占空间;索引树文件描述了整个切片文件的组织,可以提升客户端对切片文件的检索效率;切片文件包含模型单体信息重构标识,使模型在切片过程中被打散后仍可在客户端使用场景中进行模型单体化的拾取。

附图说明

图1为本发明的实施例中提供的空间模型数据的切片方法的整体流程示意图;

图2为本发明实施例中的空间模型数据读取步骤流程示意图;

图3为本发明实施例中的模型数据动态分配步骤流程示意图;

图4为本发明实施例中的划分空间可伸缩网格步骤流程示意图;

图5为本发明实施例中的对模型拆解、重新分配步骤流程示意图;

图6为本发明实施例中的模型空间匹配步骤流程示意图;

图7为本发明实施例中的模型原点归零步骤流程示意图;

图8为本发明实施例中的渲染场景空间坐标步骤流程示意图;

图9为本发明实施例中的生成切片脉络结构步骤流程示意图;

图10为本发明实施例中的切片文件及索引文件步骤流程示意图;

图11为本发明实施例中的输出索引文件步骤流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用于解释本发明,但并不作为对本发明的限定。

实施例1:

图1为本实施例提供的空间模型数据的切片方法的流程示意图,如图1所示,一种空间模型数据的切片方法,该方法包括如下步骤:空间模型数据读取:读取多源异构空间模型数据,提取模型几何信息、纹理信息;统一模型几何信息、纹理信息的组织形式,统一空间模型的空间参考,将模型信息保存到数据池中,并建立空间索引;模型数据动态分配:读取数据池中的空间模型数据,生成基础网格,从数据池中读取各个基础网格数据块,运算模型承载量,对网格模型承载量超出网格承载量阈值的网格单元进行空间调整,使所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格;赋予模型单体信息重构的唯一标识、绑定标识至模型信息中,将空间模型数据分配到其对应的网格单元中;模型空间匹配:从数据块中读取模型的几何信息,将模型原点归零,对模型顶点坐标进行更新;将数据块中模型的顶点坐标信息统一到地理空间坐标下,进一步将数据块中的模型坐标转为切片使用场景对应的空间参考的坐标,将模型顶点位置转换到三维渲染坐标系下的实际位置,更新模型场景坐标;生成切片脉络结构:对数据块中的各个模型进行循环拆解直至模型数据量满足切片阈值,将拆解后的模型体块进行多次聚合操作,获得多个模型聚合体,将各个模型聚合体保存为切片脉络叶子节点;计算自适应简化参数,对切片叶子节点模型进行多层次简化,重新分配纹理坐标,对各个纹理图片进行多尺度的简化、合并,更新切片内部模型的纹理信息;进行多次聚合操作,直至所有叶子级别切片聚合完成获得多个切片聚合体,根据切片脉络叶子节点和聚合获得的切片脉络中间节点的相关对应关系,将切片脉络叶子节点绑定到其父切片脉络中间节点上,使每个切片脉络中间节点均与子节点呈相互对应的逻辑关系;对模型三角点进行聚合简化;将数据块中所有切片脉络中间节点聚合为整体,生成切片脉络根节点,将切片脉络中间节点绑定到其父切片脉络根节点上,使每个切片脉络根节点均与子节点呈相互对应的逻辑关系;输出切片文件及索引文件:对切片中模型的顶点坐标、切片文件进行压缩,将切片信息保存至系统文件中,生成对应的切片数据文件。根据各网格中切片的父子对应关系形成切片父子节点关系树,合并各个网格的切片父子节点关系树,生成切片索引树,将切片索引树保存至系统文件中。

如图2所示,一种空间模型数据的切片方法,所述空间模型数据读取的具体步骤为:

多源数据读取:使用与模型数据类型对应的数据接口对多源异构空间模型数据进行读取,提取模型几何信息、纹理信息;

模型信息标准化:统一模型几何信息、纹理信息的组织形式,统一空间模型的空间参考,将所有模型的顶点坐标转换到统一的坐标系下,将模型的几何信息、纹理信息保存到数据池中,并在整个数据池的坐标范围内建立空间索引。

如图3所示,一种空间模型数据的切片方法,所述模型数据动态分配的具体步骤为:

划分空间可伸缩网格:读取数据池中的空间模型数据,计算基础网格分块边长和各个数据块地理坐标范围,将数据池中模型的空间范围进行网格划分,生成基础网格;从数据池中读取各个基础网格数据块,对各个网格的模型承载量进行运算;将各个数据块的模型承载量与指定的网格承载量阈值进行比对,对网格模型承载量超出网格承载量阈值上限的网格单元进行空间上的细化,对网格模型承载量超出网格承载量阈值下限的网格单元进行空间上的合并,直到所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格;

对模型拆解、重新分配:赋予模型单体信息重构的唯一标识、绑定标识至模型信息中;将空间模型数据分配到其对应的网格单元中。

如图4所示,一种空间模型数据的切片方法,所述划分空间可伸缩网格的步骤为:

生成基础网格:读取数据池中的空间模型数据,根据模型空间坐标范围计算基础网格分块边长,根据网格分块边长计算各个数据块地理坐标范围,依据数据块地理坐标范围将数据池中的模型的空间范围进行网格划分,生成基础网格;其中数据块地理坐标范围公式为:

XMIN

XMAX

YMIN

YMAX

式中:

XMIN

XMAX

YMIN

YMAX

XMIN

YMIN

统计网格模型承载量:从数据池中读取各个基础网格中的数据块,读取数据块中空间模型信息的几何信息和纹理信息,对各个网格的模型承载量进行运算,其中模型承载量的运算公式为:

式中:

capacity

k代表网格内的模型数量;

length

Length

Size

length

n

width

height

Size

生成伸缩网格:将各个数据块的模型承载量与指定的网格承载量阈值进行比对,对网格模型承载量超出网格承载量阈值上限的网格单元进行空间上的细化,计算细化后网格单元的模型承载量,当判定网格单元的模型承载量超出指定的网格承载量阈值上限,则进行进一步细化;对网格模型承载量超出网格承载量阈值下限的网格单元进行空间上的合并,计算合并后网格单元的模型承载量,当判定网格单元的模型承载量超出指定的网格承载量阈值下限,则进行进一步合并,直到所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格。

如图5所示,一种空间模型数据的切片方法,所述对模型拆解、重新分配的具体步骤为:

生成重构信息:为每个模型生成可用于模型单体信息重构的唯一标识,将标识绑定至模型信息中;

数据检索分配:在数据池中对网格单元坐标范围内的空间模型进行检索,将空间模型数据分配到其对应的网格单元中。

如图6所示,一种空间模型数据的切片方法,所述模型空间匹配的具体步骤为:

模型原点归零:从各个数据块中读取模型的几何信息,将模型原点置零,根据模型原点信息运算模型变换矩阵,使用模型变换矩阵运算新的模型顶点坐标,对模型顶点坐标进行更新;

统一模型地理空间坐标:将数据块中模型的顶点坐标信息统一到地理空间坐标下,形成统一的模型地理空间坐标;

渲染场景空间坐标:将数据块中的模型坐标转为切片使用场景对应的空间参考的坐标,更新模型姿态;将模型顶点位置转换到三维渲染坐标系下的实际位置,更新模型场景坐标。

如图7所示,一种空间模型数据的切片方法,所述模型原点归零的具体步骤为;

读取模型几何信息:从各个数据块中读取模型的几何信息,获取模型顶点坐标信息和模型原点信息;

重设模型原点:将模型原点置零,根据模型原点置零前的模型原点信息运算模型变换矩阵;其中模型变换矩阵的运算公式为:

式中:

Mat代表模型变换矩阵;

x代表原点归零前模型原点x坐标;

y代表原点归零前模型原点y坐标;

z代表原点归零前模型原点z坐标;

更新模型空间坐标:使用模型变换矩阵运算新的模型顶点坐标,使用新的模型顶点坐标替换模型原始顶点坐标;新的模型顶点坐标运算公式为:

式中:

Mat代表模型变换矩阵;

x

x

如图8所示,一种空间模型数据的切片方法,所述渲染场景空间坐标的具体步骤为:

更新模型姿态:将数据块中的模型坐标转为切片使用场景对应的空间参考的坐标,更新模型的位置和旋转角度;

更新模型场景坐标:将模型顶点位置转换到三维渲染坐标系下的实际位置,获得在三维渲染坐标系下模型的场景坐标,使用场景坐标值替换原模型顶点坐标。

如图9所示,一种空间模型数据的切片方法,所述生成切片脉络结构的具体步骤为:

生成切片脉络叶子节点:提取数据块中各个模型信息,通过运算公式获得模型数据量与切片阈值的比对结果对模型进行循环拆解直至模型数据量满足切片阈值,将拆解后的模型体块进行多次聚合操作,直至所有模型体块聚合生长完成获得多个模型聚合体,将各个模型聚合体保存为切片脉络叶子节点;

其中获得模型数据量的运算公式为:

式中:

Size

length

length

Size

length

n

width

height

Size

生成切片脉络中间节点:根据定量可视距离和模型特点计算自适应简化参数,对切片叶子节点模型进行多层次简化,对纹理坐标进行重新分配;对各个纹理图片进行多尺度的简化,对切片叶子节点内部模型纹理图片进行合并,并对切片内部模型的纹理信息进行更新;选定切片叶子节点聚合初始点与各个叶子级别切片进行多次聚合操作,直至所有叶子级别切片聚合完成获得多个切片聚合体,根据切片脉络叶子节点和聚合获得的切片脉络中间节点的相关对应关系,将切片脉络叶子节点绑定到其父切片脉络中间节点上,使每个切片脉络中间节点均与子节点呈相互对应的逻辑关系;

生成切片脉络根节点:根据指定的简化程度运算获得切片深层简化系数对模型三角点进行聚合简化;将数据块中所有切片脉络中间节点聚合为整体,生成切片脉络根节点,并依据相关对应关系,将切片脉络中间节点绑定到其父切片脉络根节点上,使每个切片脉络根节点均与子节点呈相互对应的逻辑关系。

其深层简化系数运算公式为:

式中:

n代表切片深层简化系数;

Size

Size

如图10所示,一种空间模型数据的切片方法,所述输出切片文件及索引文件的具体步骤为:

模型顶点坐标压缩:通过压缩算法对切片中模型的顶点坐标进行压缩,将浮点型顶点坐标数组压缩成消耗存储空间更低类型的坐标数组;

文件压缩:通过压缩算法对整个切片文件进行压缩,重新组合文件数据结构;

输出切片数据:将切片中模型的几何信息、纹理信息、模型单体信息重构标识保存至IO流中,将IO流保存至系统文件中,根据切片对应的网格中心点经纬度和级数对文件进行命名,生成对应的切片数据文件;

输出索引文件:读取各个网格中切片的父子对应关系,形成各网格切片父子节点关系树,合并各个网格的切片父子节点关系树,生成切片索引树,规范整个数据池的切片索引树的内容、组织形式,将切片索引树保存至系统文件中。

如图11所示,一种空间模型数据的切片方法,所述输出索引文件的具体步骤为:

读取切片父子节点关系:读取各个网格中切片的父子对应关系,形成各个网格对应的切片父子节点关系树;

生成切片索引树:遍历各个网格的切片父子节点关系树,将各个切片父子节点关系树合并,结合各个切片文件存储的路径,生成切片索引树;

输出索引树:规范整个数据池的切片索引树的内容、组织形式,将切片索引树保存至系统文件中。

具体实施案例中多源数据包括:人工制作精细模型数据、倾斜摄影测量数据、BIM数据、地质模型数据、点云数据。

下面以一个具体实施案例来详细阐述。

本方法对多源空间模型数据进行切片处理。采用本空间模型数据的切片方法可以对给定的人工制作精细模型数据、地质模型数据进行切片处理,生成一系列精细程度由繁到简的多层级切片数据,提升人工制作精细模型数据、地质模型数据在场景中的调度、渲染性能。

首先,进行空间模型数据读取。读取人工制作精细模型数据、地质模型数据,提取人工制作精细模型、地质模型顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息;统一人工制作精细模型、地质模型顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息的组织形式,统一人工制作精细模型、地质模型的空间参考,将人工制作精细模型、地质模型信息保存到数据池中,并建立空间索引。

其次,进行模型数据动态分配。读取数据池中的人工制作精细模型、地质模型数据,生成基础网格,从数据池中读取各个基础网格数据块,运算模型承载量,对网格模型承载量超出网格承载量阈值的网格单元进行空间调整,使所有网格的模型承载量满足网格承载量阈值空间,获得伸缩后的网格;赋予人工制作精细模型、地质模型单体信息重构的唯一标识、绑定标识至人工制作精细模型、地质模型信息中,将人工制作精细模型、地质模型数据分配到其对应的网格单元中。

再次,进行模型空间匹配。从数据块中读取人工制作精细模型、地质模型的几何信息,将人工制作精细模型、地质模型原点归零,对人工制作精细模型、地质模型顶点坐标进行更新;将数据块中人工制作精细模型、地质模型的顶点坐标信息、法线坐标信息统一到TJ90地理空间坐标下,进一步将数据块中的人工制作精细模型、地质模型坐标转为切片使用场景对应的CGCS2000空间参考的坐标,将人工制作精细模型、地质模型顶点位置转换到三维渲染坐标系下的实际位置,更新人工制作精细模型、地质模型场景坐标。

进而,生成切片脉络结构。对数据块中的各个人工制作精细模型、地质模型进行循环拆解直至人工制作精细模型、地质模型数据量满足2M切片阈值,将拆解后的人工制作精细模型、地质模型体块进行多次聚合操作,获得多个人工制作精细模型、地质模型聚合体,将各个人工制作精细模型、地质模型聚合体保存为切片脉络叶子节点;计算自适应简化参数,对切片叶子节点人工制作精细模型、地质模型进行多层次简化,重新分配纹理坐标,对各个纹理图片进行多尺度的简化、合并,更新切片内部人工制作精细模型、地质模型的纹理信息;进行多次聚合操作,直至所有叶子级别切片聚合完成获得多个切片聚合体,根据切片脉络叶子节点和聚合获得的切片脉络中间节点的相关对应关系,将切片脉络叶子节点绑定到其父切片脉络中间节点上,使每个切片脉络中间节点均与子节点呈相互对应的逻辑关系;对人工制作精细模型、地质模型三角点进行聚合简化;将数据块中所有切片脉络中间节点聚合为整体,生成切片脉络根节点,将切片脉络中间节点绑定到其父切片脉络根节点上,使每个切片脉络根节点均与子节点呈相互对应的逻辑关系。

最后,输出切片文件及索引文件。对切片中人工制作精细模型、地质模型的顶点坐标、切片文件进行压缩,将切片信息保存至系统文件中,生成对应的切片数据文件。根据各网格中切片的父子对应关系形成切片父子节点关系树,合并各个网格的切片父子节点关系树,生成切片索引树,将切片索引树保存至系统文件中。

在具体实施案例中所述空间模型数据读取的步骤具体可为:

多源数据读取:使用人工制作精细模型、地质模型的数据接口对人工制作精细模型、地质模型数据进行读取,提取人工制作精细模型、地质模型顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息;

模型信息标准化:统一人工制作精细模型、地质模型顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息的组织形式,统一人工制作精细模型、地质模型的空间参考,将所有人工制作精细模型、地质模型的顶点坐标转换到统一的TJ90坐标系下,将人工制作精细模型、地质模型的顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息保存到数据池中,并在整个数据池的坐标范围内建立空间索引。

在具体实施案例中所述模型数据动态分配的步骤具体可为:

划分空间可伸缩网格:读取数据池中的人工制作精细模型、地质模型数据,计算基础网格分块边长和各个数据块地理坐标范围,将数据池中人工制作精细模型、地质模型的空间范围进行网格划分,生成基础网格;从数据池中读取各个基础网格数据块,对各个网格的模型承载量进行运算;将各个数据块的模型承载量与15M-30M网格承载量阈值进行比对,对模型承载量超出30M网格承载量阈值上限的网格单元进行空间上的细化,对模型承载量超出15M网格承载量阈值下限的网格单元进行空间上的合并,直到所有网格的模型承载量满足网格承载量15M-30M阈值空间,获得伸缩后的网格;

对模型拆解、重新分配:赋予人工制作精细模型、地质模型单体信息重构的唯一标识、绑定标识至人工制作精细模型、地质模型信息中;将人工制作精细模型、地质模型数据分配到其对应的网格单元中。

在具体实施案例中所述划分空间可伸缩网格的步骤具体可为:

生成基础网格:读取数据池中的空间人工制作精细模型、地质模型数据,根据人工制作精细模型、地质模型空间坐标范围计算基础网格分块边长,根据网格分块边长计算各个数据块TJ90坐标范围,依据数据块TJ90坐标范围将数据池中的人工制作精细模型、地质模型的空间范围进行网格划分,生成基础网格;其中数据块TJ90坐标范围公式为:

XMIN

XMAX

YMIN

YMAX

式中:

XMIN

XMAX

YMIN

YMAX

XMIN

YMIN

统计网格模型承载量:从数据池中读取各个基础网格中的数据块,读取数据块中人工制作精细模型、地质模型信息的顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息,对各个网格的模型承载量进行运算,其中模型承载量的运算公式为:

式中:

capacity

k代表网格内的人工制作精细模型、地质模型数量;

length

length

Size

length

n

width

height

Size

生成伸缩网格:将各个数据块的模型承载量与15M-30M网格承载量阈值进行比对,对网格模型承载量超出30M网格承载量阈值上限的网格单元进行空间上的细化,计算细化后网格单元的模型承载量,当判定网格单元的模型承载量超出30M网格承载量阈值上限,则进行进一步细化;对网格模型承载量超出15M网格承载量阈值下限的网格单元进行空间上的合并,计算合并后网格单元的模型承载量,当判定网格单元的模型承载量超出15M网格承载量阈值下限,则进行进一步合并,直到所有网格的模型承载量满足15M-30M网格承载量阈值空间,获得伸缩后的网格。

在具体实施案例中所述对模型拆解、重新分配的步骤具体可为:

生成重构信息:为每个人工制作精细模型、地质模型生成可用于模型单体信息重构的唯一标识,将标识绑定至人工制作精细模型、地质模型信息中;

数据检索分配:在数据池中对网格单元坐标范围内的人工制作精细模型、地质模型进行检索,将人工制作精细模型、地质模型数据分配到其对应的网格单元中。

在具体实施案例中所述模型空间匹配的步骤具体可为:

模型原点归零:从各个数据块中读取人工制作精细模型、地质模型的几何信息,将人工制作精细模型、地质模型原点置零,根据人工制作精细模型、地质模型原点信息运算模型变换矩阵,使用模型变换矩阵运算新的人工制作精细模型、地质模型顶点坐标,对人工制作精细模型、地质模型顶点坐标进行更新;

统一模型地理空间坐标:将数据块中人工制作精细模型、地质模型的顶点坐标信息统一到TJ90地理空间坐标下,形成统一的TJ90模型地理空间坐标;

渲染场景空间坐标:将数据块中的人工制作精细模型、地质模型坐标转为切片使用场景对应的CGCS2000空间参考的坐标,更新人工制作精细模型、地质模型姿态;将人工制作精细模型、地质模型顶点位置转换到三维渲染坐标系下的实际位置,更新人工制作精细模型、地质模型场景坐标。

在具体实施案例中所述模型原点归零的步骤具体可为:

读取模型几何信息:从各个数据块中读取人工制作精细模型、地质模型的几何信息,获取人工制作精细模型、地质模型顶点坐标信息和人工制作精细模型、地质模型原点信息;

重设模型原点:将人工制作精细模型、地质模型原点置零,根据人工制作精细模型、地质模型原点置零前的模型原点信息运算模型变换矩阵;其中模型变换矩阵的运算公式为:

式中:

Mat代表模型变换矩阵;

x代表原点归零前人工制作精细模型、地质模型原点x坐标;

y代表原点归零前人工制作精细模型、地质模型原点y坐标;

z代表原点归零前人工制作精细模型、地质模型原点z坐标;

更新模型空间坐标:使用模型变换矩阵运算新的人工制作精细模型、地质模型顶点坐标,使用新的人工制作精细模型、地质模型顶点坐标替换人工制作精细模型、地质模型原始顶点坐标;新的人工制作精细模型、地质模型顶点坐标运算公式为:

式中:

Mat代表模型变换矩阵;

x

x

在具体实施案例中所述渲染场景空间坐标的步骤具体可为:

更新模型姿态:将数据块中的人工制作精细模型、地质模型坐标转为切片使用场景对应的CGCS2000空间参考坐标,更新人工制作精细模型、地质模型的位置和旋转角度;

更新模型场景坐标:将人工制作精细模型、地质模型顶点位置转换到三维渲染坐标系下的实际位置,获得在三维渲染坐标系下人工制作精细模型、地质模型的场景坐标,使用场景坐标值替换原模型顶点坐标。

在具体实施案例中所述生成切片脉络结构的步骤具体可为:

生成切片脉络叶子节点:提取数据块中各个人工制作精细模型、地质模型信息,通过运算公式获得人工制作精细模型、地质模型数据量与2M切片阈值的比对结果对人工制作精细模型、地质模型进行循环拆解直至人工制作精细模型、地质模型数据量满足2M切片阈值,将拆解后的模型体块进行多次聚合操作,直至所有模型体块聚合生长完成获得多个模型聚合体,将各个模型聚合体保存为切片脉络叶子节点;

其中获得人工制作精细模型、地质模型数据量的运算公式为:

式中:

Size

length

length

Size

length

n

width

height

Size

生成切片脉络中间节点:根据500m可视距离和人工制作精细模型、地质模型特点计算自适应简化参数,对切片叶子节点人工制作精细模型、地质模型进行多层次简化,对纹理坐标进行重新分配;对各个纹理图片进行多尺度的简化,对切片叶子节点内部人工制作精细模型、地质模型纹理图片进行合并,并对切片内部人工制作精细模型、地质模型的纹理信息进行更新;选定切片叶子节点聚合初始点与各个叶子级别切片进行多次聚合操作,直至所有叶子级别切片聚合完成获得多个切片聚合体,根据切片脉络叶子节点和聚合获得的切片脉络中间节点的相关对应关系,将切片脉络叶子节点绑定到其父切片脉络中间节点上,使每个切片脉络中间节点均与子节点呈相互对应的逻辑关系;

生成切片脉络根节点:根据30%简化程度运算获得切片深层简化系数对人工制作精细模型、地质模型三角点进行聚合简化;将数据块中所有切片脉络中间节点聚合为整体,生成切片脉络根节点,并依据相关对应关系,将切片脉络中间节点绑定到其父切片脉络根节点上,使每个切片脉络根节点均与子节点呈相互对应的逻辑关系。

其深层简化系数运算公式为:

式中:

n代表切片深层简化系数;

Size

Size

在具体实施案例中所述输出切片文件及索引文件的步骤具体可为:

模型顶点坐标压缩:通过压缩算法对切片中人工制作精细模型、地质模型的顶点坐标进行压缩,将浮点型顶点坐标数组压缩成消耗存储空间更低类型的坐标数组;

文件压缩:通过zip压缩算法对整个切片文件进行压缩,重新组合文件数据结构;

输出切片数据:将切片中人工制作精细模型、地质模型的顶点坐标信息、法线坐标信息、纹理坐标信息和纹理图片信息、模型单体信息重构标识保存至IO流中,将IO流保存至Windows系统文件中,根据切片对应的网格中心点经纬度和级数对文件进行命名,生成对应的切片数据文件;

输出索引文件:读取各个网格中切片的父子对应关系,形成各网格切片父子节点关系树,合并各个网格的切片父子节点关系树,生成切片索引树,规范整个数据池的切片索引树的内容、组织形式,将切片索引树保存至Windows系统文件中。

在具体实施案例中所述输出索引文件的步骤具体可为:

读取切片父子节点关系:读取各个网格中切片的父子对应关系,形成各个网格对应的切片父子节点关系树;

生成切片索引树:遍历各个网格的切片父子节点关系树,将各个切片父子节点关系树合并,结合各个切片文件存储的路径,生成切片索引树;

输出索引树:规范整个数据池的切片索引树的内容、组织形式,将切片索引树保存至Windows系统文件中。

前述的方法描述和流程示意图仅被提供作为示例性的示例且其不意在需要或隐含必须以所给出的顺序执行上述操作或各个方面的步骤。如本领域的技术人员将明白的,可以以任何顺序来执行在前述方面中的框的顺序。诸如“其后”、“然后”、“接下来”等之类的词并不意在限制操作或步骤的顺序;这些词仅用于引导读者遍历对方法的描述。此外,任何对权利要求元素的单数引用,例如,使用冠词“一”、“一个”或“该”不被解释为将该元素限制为单数。

结合本文中公开的方面描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地表示硬件和软件之间的可交换性,上文对各种说明性的组件、框、模块、电路和步骤均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个方法所施加的设计约束。熟练的技术人员可以针对每个特定的应用,以变通的方式来实现所描述的功能,但是,这种实现决策不应被解释为引起脱离本发明的保护范围。

本发明实施例中的方法可以将给定的空间模型数据进行切片,使用可伸缩网格对空间进行了分割,并通过自下而上的聚合方式生成了精细程度由繁到简的多层级切片数据,能够极大的提高复杂场景、海量空间模型数据的调度、渲染性能,降低空间模型数据在场景中的内存、显存、网络带宽的消耗。本方法使用的可伸缩网格可以均衡各个网格数据块中的模型承载量,使切片调用过程中资源消耗稳定,避免了某个切片包含大数据量导致的渲染极大耗时,也可以避免产生多个包含极少数据量的切片对系统磁盘资源的消耗、减少不必要的网络请求次数;对模型顶点坐标进行压缩,降低了模型顶点坐标数据所占空间,对切片文件进行压缩增加了内存复用率,使数据排列更为紧凑,降低文件所占空间;索引树文件描述了整个切片文件的组织,可以提升客户端对切片文件的检索效率;切片文件包含模型单体信息重构标识,使模型在切片过程中被打散后仍可在客户端使用场景中进行模型单体化的拾取。

提供所公开的方面的前述描述,以使本领域的任何技术人员能够实现或使用本发明。对于本领域技术人员来说,对这些方面的各种修改将是显而易见的,并且本文定义的总体原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它实施例。因此,本发明不旨在受限于本文给出的方面,而是与符合与本文公开的原理和新颖特征相一致的最宽的范围。

技术分类

06120115636546