CN105718480A - 一种基于地理信息的海量三维数据调度的方法 - Google Patents
一种基于地理信息的海量三维数据调度的方法 Download PDFInfo
- Publication number
- CN105718480A CN105718480A CN201410731278.6A CN201410731278A CN105718480A CN 105718480 A CN105718480 A CN 105718480A CN 201410731278 A CN201410731278 A CN 201410731278A CN 105718480 A CN105718480 A CN 105718480A
- Authority
- CN
- China
- Prior art keywords
- resource
- solid object
- data
- texture
- model
- 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.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种基于地理信息的海量三维数据调度的方法,涉及地理信息处理和应用技术领域,其特征在于该方法包括如下步骤:数据分类、创建索引并存储、处理三维实体对象并存储、数据裁剪、资源请求、处理资源请求、卸载数据。本发明实施例中的方法对海量三维数据进行了有效的组织和管理,便于数据的更新维护;能够对海量三维数据快速地裁剪过滤;减少了磁盘空间的使用,提高了数据资源访问的效率;最大限度地提升了硬件资源的使用效率,使海量三维数据的调度更加快速,使三维场景的渲染更加流畅;解决了过期节点无效加载和释放缓慢的问题。
Description
技术领域
本发明涉及地理信息处理和应用技术领域,特别涉及一种基于地理信息三维数据的调度与管理,实现模型和纹理共享,使硬件资源的使用更加有效,减少存储空间,简化模型,保证模型能够快速地展现的一种基于地理信息的海量三维数据调度的方法。
背景技术
在1992年时美国首先从生态环境和全球气候变化的角度提出了数字地球的概念。最初构想的数字地球是在现有基于图形用户界面(GUI)基础之上,结合最新的图形和图像技术,将虚拟现实及交互技术引入到虚拟环境构建中,建成更为自然、沉浸式的环境,在此系统中,用户能以自然的方式交互地存取自然、历史、文化等信息。
随着数字地球概念,数字中国,数字流域以及数字城市的概念相继出现,海量数据概念应运而生,它们都是大型GIS的一种表现形式。海量空间数据的调度与管理成为GIS发展中较为关键的技术。随着GIS应用领域的拓宽,它所面临的数据量越来越大,大范围的三维数据已经达到TB数量级。如何对这些海量三维数据进行有效的调度与管理,成为大型GIS系统要研究的重点。
目前计算机无法一次性加载海量数据,必须采用动态调度技术实现大范围三维场景的漫游与应用,随着视点的移动,动态加载一定范围内的三维模型。一些学者已就动态调度技术进行探讨,并取得了诸多成果。但该项技术如何在海量级的三维数字城市构建与管理中深入应用,在当前计算机硬件条件下实现快速高效的数据加载、渲染与动态浏览,仍是一个难点,也是一个热点,需要不断地研究。
经过反复实验与分析发现,现有的三维海量数据模型调度时会存在诸多缺陷:
1)、当数据预编译时,视点移动速度较快时内存释放会出现部分过期预编译节点没有及时释放,导致系统内存急剧上升而最终崩溃。
2)、当暂停线程处理后,模型仍然随视点变化而切换,且重新开启线程后调度处现内存不能释放。
3)、当视点在两帧之间发生突变时,过期的节点没有直接进入删除链表以迅速释放内存,而是先加载到场景,再从场景中过期后删除,从而导致内存释放缓慢。
4)、线程在进行数据加载时,遇到异常数据时会直接退出线程而无法再次启动,导致数据调度不能继续进行。
目前,还没有一个完善的方法可以同时解决基于地理信息数据调度与管理,使硬件资源的使用更加有效,减少存储空间,简化模型,保证模型能够快速地展现。
发明内容
为了解决现有技术中存在的技术难题,高效流畅地展示海量三维地理信息数据并在诸多领域中进行具有实际意义的海量三维数据发布、分析、共享与应用。
本发明实施例提供一种基于地理信息的海量三维数据调度的方法,包括如下步骤:
数据分类:将属性特征相同的三维实体对象进行分类处理;
创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
处理资源请求:对不同类型资源请求进行多线程处理;
卸载数据:从内存中清除一定时间内不再使用的资源数据。
一种基于地理信息的海量三维数据调度的方法,所述该方法还包括三维数据渲染步骤,其中:三维数据渲染:对经过裁剪调度后的海量三维地理信息数据进行渲染、展示。
一种基于地理信息的海量三维数据调度的方法,其中,所述数据分类:将属性特征相同的三维实体对象进行分类处理;
其中,数据分类的步骤具体可为:
按照地物特征、地貌特征将三维实体对象进行分类;
将划分后的实体对象按照不同属性进行划分。
一种基于地理信息的海量三维数据调度的方法,其中,所述创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
所述创建索引并存储的具体步骤为:
将数据分类后的三维实体对象区域进行网格划分,并将网格进行编码;
根据三维实体对象的空间范围,把三维实体对象划分到唯一的网格中,记录每个三维实体对象的索引信息;
根据网格内三维实体对象的索引信息更新各级网格的索引信息;
对网格索引信息、三维实体对象索引信息进行存储。
一种基于地理信息的海量三维数据调度的方法,所述网格大小可进行指定,网格级数也可指定;所述存储的格式可为文件格式、数据库格式。
一种基于地理信息的海量三维数据调度的方法,其中,所述处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
所述处理三维实体对象并存储的具体步骤为:
提取每个三维实体对象的模型资源和属性数据;
将模型资源转换为渲染平台支持的资源格式;
将纹理资源从模型资源中分离;
对模型资源及其纹理资源进行简化处理;
对原始模型及其纹理和简化模型及其纹理进行压缩处理;
分别存储原始模型及其纹理和简化模型及其纹理,相同的模型、纹理只存储一次;
存储三维实体对象的属性数据。
一种基于地理信息的海量三维数据调度的方法,其中,所述数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
所述数据裁剪、资源请求的具体步骤为:
根据视点范围、网格索引信息进行网格逐级裁剪;
对在可显示范围内而没有加载的网格索引进行加载请求;
裁剪到最后一级网格索引后,判断网格索引内的三维实体对象索引是否已加载;
将没有加载的三维实体对象索引进行加载请求;
根据视点范围、已加载的三维实体对象索引进行三维实体对象裁剪;
判断三维实体对象是否需要加载,将需要加载的三维实体对象的模型资源进行加载请求;
将加载的三维实体对象进行遮挡查询,将不被遮挡的三维实体对象的模型资源进行渲染处理,并更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数;
在渲染处理过程中如果纹理资源未被加载,将需要加载的纹理资源进行加载请求。
一种基于地理信息的海量三维数据调度的方法,其中,所述处理资源请求:对不同类型资源请求进行多线程处理;
所述处理资源请求的具体步骤为:
清空处理资源请求的队列;
将接收资源请求的队列与处理资源请求的队列进行交换;
将处理资源请求的队列根据资源信息与视点的距离进行排序;
对处理资源请求队列中的资源请求进行加载处理;
加载的网格索引存入优先访问队列,并记录当前帧数;
加载的三维实体对象索引存入优先访问队列,并记录当前帧数。
一种基于地理信息的海量三维数据调度的方法,其中,所述资源请求可包括:纹理资源、模型资源、网格索引、三维实体对象索引;在对资源请求进行处理时可采取不同种类的资源请求使用不同的线程进行处理;所述资源信息与视点距离的排序可为从近及远进行排序。
一种基于地理信息的海量三维数据调度的方法,其中,所述卸载数据:从内存中清除一定时间内不再使用的资源数据;
所述卸载数据的具体步骤为:
利用卸载处理线程,在一定的时间间隔检查网格索引和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间没有使用;
对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用;
当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用;
当纹理资源不再使用时,对纹理资源进行卸载。
由此可见:本发明实施例中的方法对海量三维数据进行了有效的组织和管理,便于数据的更新维护;通过分级网格索引和三维实体对象索引的建立,能够对海量三维数据快速地裁剪过滤;通过对模型和纹理进行分离、简化和压缩,减少了磁盘空间的使用,提高了数据资源访问的效率;通过多线程处理资源请求和资源卸载,最大限度地提升了硬件资源的使用效率,使海量三维数据的调度更加快速,使三维场景的渲染更加流畅;通过双缓冲队列处理资源请求,解决了过期节点无效加载和释放缓慢的问题。
附图说明
图1为本发明的实施例1提供的基于地理信息的海量三维数据调度的方法的流程示意图;
图2为本发明的实施例2提供的基于地理信息的海量三维数据调度的方法的流程示意图;
图3为本发明的实施例提供的数据分类步骤的流程示意图;
图4为本发明的实施例提供的创建索引并存储步骤的流程示意图;
图5为本发明的实施例提供的处理三维实体对象并存储步骤的流程示意图;
图6为本发明的实施例提供的数据裁剪、资源请求步骤的流程示意图;
图7为本发明的实施例提供的处理资源请求步骤的流程示意图;
图8为本发明的实施例提供的卸载数据步骤的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
实施例1:
图1为本实施例提供的一种基于地理信息的海量三维数据调度的方法的流程示意图。如图1所示,一种基于地理信息的海量三维数据调度的方法,包括如下步骤:
数据分类:将属性特征相同的三维实体对象进行分类处理;
创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
处理资源请求:对不同类型资源请求进行多线程处理;
卸载数据:从内存中清除一定时间内不再使用的资源数据。
如图3所示的一种基于地理信息的海量三维数据调度的方法,所述数据分类:将属性特征相同的三维实体对象进行分类处理;
其中,数据分类的步骤具体可为:
按照地物特征、地貌特征将三维实体对象进行分类;
将划分后的实体对象按照不同属性进行划分。
如图4所示的一种基于地理信息的海量三维数据调度的方法,所述创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
所述创建索引并存储的具体步骤为:
将数据分类后的三维实体对象区域进行网格划分,并将网格进行编码;
根据三维实体对象的空间范围,把三维实体对象划分到唯一的网格中,记录每个三维实体对象的索引信息;
根据网格内三维实体对象的索引信息更新各级网格的索引信息;
对网格索引信息、三维实体对象索引信息进行存储。
具体实施例中所述其中网格大小可进行指定,网格层数也可以指定;所述存储的格式可为文件格式、数据库格式。
如图5所示的一种基于地理信息的海量三维数据调度的方法,所述处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
所述处理三维实体对象并存储的具体步骤为:
提取每个三维实体对象的模型资源和属性数据;
将模型资源转换为渲染平台支持的资源格式;
将纹理资源从模型资源中分离;
对模型资源及其纹理资源进行简化处理;
对原始模型及其纹理和简化模型及其纹理进行压缩处理;
分别存储原始模型及其纹理和简化模型及其纹理,相同的模型、纹理只存储一次;
存储三维实体对象的属性数据。
如图6所示的一种基于地理信息的海量三维数据调度的方法,所述数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
所述数据裁剪、资源请求的具体步骤为:
根据视点范围、网格索引信息进行网格逐级裁剪;
对在可显示范围内而没有加载的网格索引进行加载请求;
裁剪到最后一级网格索引后,判断网格索引内的三维实体对象索引是否已加载;
将没有加载的三维实体对象索引进行加载请求;
根据视点范围、已加载的三维实体对象索引进行三维实体对象裁剪;
判断三维实体对象是否需要加载,将需要加载的三维实体对象的模型资源进行加载请求;
将加载的三维实体对象进行遮挡查询,将不被遮挡的三维实体对象的模型资源进行渲染处理,并更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数;
在渲染处理过程中如果纹理资源未被加载,将需要加载的纹理资源进行加载请求。
如图7所示的一种基于地理信息的海量三维数据调度的方法,所述处理资源请求:对不同类型资源请求进行多线程处理;
所述处理资源请求的具体步骤为:
清空处理资源请求的队列;
将接收资源请求的队列与处理资源请求的队列进行交换;
将处理资源请求的队列根据资源信息与视点的距离进行排序;
对处理资源请求队列中的资源请求进行加载处理;
加载的网格索引存入优先访问队列,并记录当前帧数;
加载的三维实体对象索引存入优先访问队列,并记录当前帧数。
具体实施例中所述资源请求可包括:纹理资源、模型资源、网格索引、三维实体对象索引;在对资源请求进行处理时可采取不同种类的资源请求使用不同的线程进行处理;所述资源信息与视点距离的排序可为从近及远进行排序。
如图8所示的一种基于地理信息的海量三维数据调度的方法,所述卸载数据:从内存中清除一定时间内不再使用的资源数据;
所述卸载数据的具体步骤为:
利用卸载处理线程,在一定的时间间隔检查网格索引和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间没有使用;
对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用;
当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用;
当纹理资源不再使用时,对纹理资源进行卸载。
下面以一个更具体的一个细节方面的例子来对本技术进行详细描述。
以调度全球三维模型数据为例,实施方法如下:
首先对全球三维模型数据进行分类分层,将建筑、地面、河流、树等划分为不同的图层。如果还有其它类型的数据,按照相同的方法进行划分,分为不同的图层进行管理。
对每层数据创建索引。由于全球范围比较大,可以划分为10级网格索引,设置最后一级网格索引的网格边长为1000m,即第10级网格索引的边长为1000m。每层数据网格索引的网格级数和网格大小都可以不一样。为了简单说明技术流程,本实施例所有图层采用一致的网格索引参数,并以四叉树的方式组织各级网格,也可以以九宫格或其它方式组织各级网格。通过计算可知第1级网格的边长为1000*2n-1=512000m,进一步计算可得将地球分为169块。根据网格分块信息将全球数据进行分块,并记录最后一级网格每块的地理坐标。接下来,每个三维实体对象的几何中心的地理坐标在哪个网格块(最后一级)的地理坐标内,就将该三维实体对象划分到这个网格块中,保证了一个三维实体对象被划分到一个网格块中。创建三维实体对象索引,包括为其生成的唯一ID号、实体对象的体框信息等。为所有实体对象划分网格后,将最后一级网格的四至范围更新为被划分到网格中的所有实体对象的四至范围之和。更新其他级别的网格四至范围为其子网格实际四至范围之和。至此,索引创建完毕,将网格索引数据和三维实体对象索引数据分别保存到SQLite数据库(也可以是其它数据库或文件格式)的数据表中,便于查询获取。
索引信息创建完成后,对三维实体数据做进一步处理。读取每个三维实体对象的模型数据和属性数据。将模型数据转换为自己平台支持的数据格式。如果模型数据中包含了纹理数据,为了实现模型、纹理共享,将纹理数据提取出来单独存储。对模型数据进行简化、对纹理数据进行压缩合并,在与视点距离较远时(或显示像素小于设定值时),调用、显示简化的模型和纹理。对模型资源和纹理资源处理后,将原始的模型资源、纹理资源,简化后的模型资源、纹理资源进行压缩,并分别以类别为单位进行存储。例如,为不同类别的三维实体对象创建不同的文件夹存储其模型和纹理资源,也可以存储到数据库,数据量超大时也可以采用分布式的存储方法。相同的模型资源和纹理资源只存储一次。最后,将属性数据和唯一ID号存储到数据库中或文件中。
在渲染系统进行调度显示时,先获取第1级网格索引数据。根据第1级网格的范围与视点的距离,判断是否调取下一级网格索引数据,直到裁剪到最后一级索引数据,请求加载该网格块内的三维实体对象索引数据。三维实体对象索引数据加载后,根据每个三维实体对象的体框范围与视点的距离(或要显示的像素大小),判断是否需要请求加载该三维实体对象的模型数据。模型数据加载后,对模型数据进行遮挡裁剪,进一步判断该三维实体对象是否需要进行渲染。如果需要渲染,要更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数,便于后面的卸载步骤使用,同时,在渲染的过程中,判断所需的纹理资源是否已加载。如果纹理资源没有加载,可以先以白色半透明的样式渲染模型,同时请求纹理资源的加载。
在处理资源请求时,各种资源请求都可以采用同一种处理方式。采用双队列存储接收的数据请求和处理的数据请求。在每一帧开始时,先清空处理资源请求的队列,然后将接收数据请求的队列与处理数据请求的队列进行互换。保证了处理的请求数据都是前一帧的请求,不会有过期的请求数据。将处理的数据请求根据资源信息与视点的距离进行排序,保证离视点近的先处理。将加载的网格索引和三维实体对象索引存入优先访问队列,并记录当前帧数,便于卸载数据时进行时间判断。
为了提高数据调度的性能,数据的卸载工作采用单独的线程来执行。该线程会不停地间隔一段时间(可以设置)来检查网格索引优先访问队列和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间(可以设置)没有使用。对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用。当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用。当纹理资源不再使用时,对纹理资源进行卸载。这样保证了在内存中只加载当前视口范围内需要渲染的资源数据,而这些数据通过设置显示距离、最小显示像素、简模显示距离等参数,可以有效地控制内存使用量,达到了利用有限的内存显示无限的海量三维数据的目的。
实施例2:
如图2所示的一种基于地理信息的海量三维数据调度的方法,其特征在于,包括如下步骤:
数据分类:将属性特征相同的三维实体对象进行分类处理;
创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
处理资源请求:对不同类型资源请求进行多线程处理;
卸载数据:从内存中清除一定时间内不再使用的资源数据;
三维数据渲染:对经过裁剪调度后的海量三维地理信息数据进行渲染、展示。
如图3所示的一种基于地理信息的海量三维数据调度的方法,所述数据分类:将属性特征相同的三维实体对象进行分类处理;
其中,数据分类的步骤具体可为:
按照地物特征、地貌特征将三维实体对象进行分类;
将划分后的实体对象按照不同属性进行划分。
如图4所示的一种基于地理信息的海量三维数据调度的方法,所述创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
所述创建索引并存储的具体步骤为:
将数据分类后的三维实体对象区域进行网格划分,并将网格进行编码;
根据三维实体对象的空间范围,把三维实体对象划分到唯一的网格中,记录每个三维实体对象的索引信息;
根据网格内三维实体对象的索引信息更新各级网格的索引信息;
对网格索引信息、三维实体对象索引信息进行存储。
具体实施例中所述其中网格大小可进行指定,网格层数也可以指定;所述存储的格式可为文件格式、数据库格式。
如图5所示的一种基于地理信息的海量三维数据调度的方法,所述处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
所述处理三维实体对象并存储的具体步骤为:
提取每个三维实体对象的模型资源和属性数据;
将模型资源转换为渲染平台支持的资源格式;
将纹理资源从模型资源中分离;
对模型资源及其纹理资源进行简化处理;
对原始模型及其纹理和简化模型及其纹理进行压缩处理;
分别存储原始模型及其纹理和简化模型及其纹理,相同的模型、纹理只存储一次;
存储三维实体对象的属性数据。
如图6所示的一种基于地理信息的海量三维数据调度的方法,所述数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
所述数据裁剪、资源请求的具体步骤为:
根据视点范围、网格索引信息进行网格逐级裁剪;
对在可显示范围内而没有加载的网格索引进行加载请求;
裁剪到最后一级网格索引后,判断网格索引内的三维实体对象索引是否已加载;
将没有加载的三维实体对象索引进行加载请求;
根据视点范围、已加载的三维实体对象索引进行三维实体对象裁剪;
判断三维实体对象是否需要加载,将需要加载的三维实体对象的模型资源进行加载请求;
将加载的三维实体对象进行遮挡查询,将不被遮挡的三维实体对象的模型资源进行渲染处理,并更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数;
在渲染处理过程中如果纹理资源未被加载,将需要加载的纹理资源进行加载请求。
如图7所示的一种基于地理信息的海量三维数据调度的方法,所述处理资源请求:对不同类型资源请求进行多线程处理;
所述处理资源请求的具体步骤为:
清空处理资源请求的队列;
将接收资源请求的队列与处理资源请求的队列进行交换;
将处理资源请求的队列根据资源信息与视点的距离进行排序;
对处理资源请求队列中的资源请求进行加载处理;
加载的网格索引存入优先访问队列,并记录当前帧数;
加载的三维实体对象索引存入优先访问队列,并记录当前帧数。
具体实施例中所述资源请求可包括:纹理资源、模型资源、网格索引、三维实体对象索引;在对资源请求进行处理时可采取不同种类的资源请求使用不同的线程进行处理;所述资源信息与视点距离的排序可为从近及远进行排序。
如图8所示的一种基于地理信息的海量三维数据调度的方法,所述卸载数据:从内存中清除一定时间内不再使用的资源数据;
所述卸载数据的具体步骤为:
利用卸载处理线程,在一定的时间间隔检查网格索引和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间没有使用;
对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用;
当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用;
当纹理资源不再使用时,对纹理资源进行卸载。
本发明实施例的技术与实施例1的技术相同,在此不再赘述。
由此可见:本发明实施例中的方法对海量三维数据进行了有效的组织和管理,便于数据的更新维护;通过分级网格索引和三维实体对象索引的建立,能够对海量三维数据快速地裁剪过滤;通过对模型和纹理进行分离、简化和压缩,减少了磁盘空间的使用,提高了数据资源访问的效率;通过多线程处理资源请求和资源卸载,最大限度地提升了硬件资源的使用效率,使海量三维数据的调度更加快速,使三维场景的渲染更加流畅;通过双缓冲队列处理资源请求,解决了过期节点无效加载和释放缓慢的问题。
虽然通过实施例描绘了本发明实施例,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (10)
1.一种基于地理信息的海量三维数据调度的方法,其特征在于,包括如下步骤:
数据分类:将属性特征相同的三维实体对象进行分类处理;
创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
处理资源请求:对不同类型资源请求进行多线程处理;
卸载数据:从内存中清除一定时间内不再使用的资源数据。
2.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述该方法还包括三维数据渲染步骤,其中:
三维数据渲染:对经过裁剪调度后的海量三维地理信息数据进行渲染、展示。
3.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述数据分类:将属性特征相同的三维实体对象进行分类处理;
其中,数据分类的步骤具体可为:
按照地物特征、地貌特征将三维实体对象进行分类;
将划分后的实体对象按照不同属性进行划分。
4.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
所述创建索引并存储的具体步骤为:
将数据分类后的三维实体对象区域进行网格划分,并将网格进行编码;
根据三维实体对象的空间范围,把三维实体对象划分到唯一的网格中,记录每个三维实体对象的索引信息;
根据网格内三维实体对象的索引信息更新各级网格的索引信息;
对网格索引信息、三维实体对象索引信息进行存储。
5.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
所述处理三维实体对象并存储的具体步骤为:
提取每个三维实体对象的模型资源和属性数据;
将模型资源转换为渲染平台支持的资源格式;
将纹理资源从模型资源中分离;
对模型资源及其纹理资源进行简化处理;
对原始模型及其纹理和简化模型及其纹理进行压缩处理;
分别存储原始模型及其纹理和简化模型及其纹理,相同的模型、纹理只存储一次;
存储三维实体对象的属性数据。
6.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于所述数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
所述数据裁剪、资源请求的具体步骤为:
根据视点范围、网格索引信息进行网格逐级裁剪;
对在可显示范围内而没有加载的网格索引进行加载请求;
裁剪到最后一级网格索引后,判断网格索引内的三维实体对象索引是否已加载;
将没有加载的三维实体对象索引进行加载请求;
根据视点范围、已加载的三维实体对象索引进行三维实体对象裁剪;
判断三维实体对象是否需要加载,将需要加载的三维实体对象的模型资源进行加载请求;
将加载的三维实体对象进行遮挡查询,将不被遮挡的三维实体对象的模型资源进行渲染处理,并更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数;
在渲染处理过程中如果纹理资源未被加载,将需要加载的纹理资源进行加载请求。
7.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于所述处理资源请求:对不同类型资源请求进行多线程处理;
所述处理资源请求的具体步骤为:
清空处理资源请求的队列;
将接收资源请求的队列与处理资源请求的队列进行交换;
将处理资源请求的队列根据资源信息与视点的距离进行排序;
对处理资源请求队列中的资源请求进行加载处理;
加载的网格索引存入优先访问队列,并记录当前帧数;
加载的三维实体对象索引存入优先访问队列,并记录当前帧数。
8.根据权利要求1、7所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述资源请求可包括:纹理资源、模型资源、网格索引、三维实体对象索引;在对资源请求进行处理时可采取不同种类的资源请求使用不同的线程进行处理;所述资源信息与视点距离的排序可为从近及远进行排序。
9.根据权利要求1所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述卸载数据:从内存中清除一定时间内不再使用的资源数据;
所述卸载数据的具体步骤为:
利用卸载处理线程,在一定的时间间隔检查网格索引和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间没有使用;
对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用;
当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用;
当纹理资源不再使用时,对纹理资源进行卸载。
10.根据权利要求1、4所述的一种基于地理信息的海量三维数据调度的方法,其特征在于,所述网格大小可进行指定,网格级数也可指定;所述存储的格式可为文件格式、数据库格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410731278.6A CN105718480B (zh) | 2014-12-05 | 2014-12-05 | 一种基于地理信息的海量三维数据调度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410731278.6A CN105718480B (zh) | 2014-12-05 | 2014-12-05 | 一种基于地理信息的海量三维数据调度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718480A true CN105718480A (zh) | 2016-06-29 |
CN105718480B CN105718480B (zh) | 2019-03-22 |
Family
ID=56144492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410731278.6A Active CN105718480B (zh) | 2014-12-05 | 2014-12-05 | 一种基于地理信息的海量三维数据调度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718480B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446012A (zh) * | 2016-08-25 | 2017-02-22 | 浙江科澜信息技术有限公司 | 一种在osgb数据处理中提升渲染场景效率的方法 |
CN107402958A (zh) * | 2017-06-12 | 2017-11-28 | 重庆市勘测院 | 一种gkf三维空间数据库的创建和访问方法 |
CN107480305A (zh) * | 2017-09-18 | 2017-12-15 | 浙江科澜信息技术有限公司 | 一种纹理信息加载方法及系统 |
CN107566474A (zh) * | 2017-08-28 | 2018-01-09 | 荆门程远电子科技有限公司 | 基于移动平台的三维虚拟地球多源异构数据下载和集成方法 |
CN108572951A (zh) * | 2017-03-08 | 2018-09-25 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的制图数据三维显示系统 |
CN110162584A (zh) * | 2019-05-10 | 2019-08-23 | 苏州嘉奕晟中小企业科技咨询有限公司 | 一种三维地理信息模型数据处理系统 |
CN111046005A (zh) * | 2019-11-01 | 2020-04-21 | 宝略科技(浙江)有限公司 | 一种城市三维实景数据的网格化编码方法 |
CN111583404A (zh) * | 2020-05-08 | 2020-08-25 | 广西壮族自治区自然资源遥感院 | 海量倾斜摄影三维模型数据调度方法及系统 |
CN112685379A (zh) * | 2019-10-18 | 2021-04-20 | 北京博超时代软件有限公司 | 数据组织方式、系统和设备以及存储介质 |
CN113656514A (zh) * | 2021-08-12 | 2021-11-16 | 煤炭科学研究总院 | 矿山三维模型可视化方法和装置 |
CN114494562A (zh) * | 2022-01-20 | 2022-05-13 | 北京中航双兴科技有限公司 | 用于地形渲染的数据处理方法和装置 |
CN116433863A (zh) * | 2023-04-08 | 2023-07-14 | 北京联横科创有限公司 | 一种地形数据模型的数据管理方法及装置 |
CN116958385A (zh) * | 2023-09-18 | 2023-10-27 | 园测信息科技股份有限公司 | 支持海量单体模型的材质纹理动态更新方法、存储介质及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082934A (zh) * | 2007-06-19 | 2007-12-05 | 北京师范大学 | 网络环境下超大规模空间数据的三维可视化方法 |
CN101415018A (zh) * | 2007-10-17 | 2009-04-22 | 北京灵图软件技术有限公司 | 一种地理信息数据的传输方法和系统 |
CN102722549A (zh) * | 2012-05-28 | 2012-10-10 | 中国科学院遥感应用研究所 | 一种基于集群的遥感数据集实时渲染服务 |
CN102736898A (zh) * | 2012-05-08 | 2012-10-17 | 国家测绘局卫星测绘应用中心 | 一种适用于多核cpu的矢量数据并行绘制方法和装置 |
CN103198148A (zh) * | 2013-04-22 | 2013-07-10 | 中煤地西安地图制印有限公司 | 地图出版数据一体化管理及多媒介发布方法 |
CN103714124A (zh) * | 2013-12-10 | 2014-04-09 | 国家电网公司 | 超大规模低压数据处理方法 |
CN103942306A (zh) * | 2014-04-18 | 2014-07-23 | 重庆市勘测院 | 三维城市模型自适应调度方法 |
-
2014
- 2014-12-05 CN CN201410731278.6A patent/CN105718480B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082934A (zh) * | 2007-06-19 | 2007-12-05 | 北京师范大学 | 网络环境下超大规模空间数据的三维可视化方法 |
CN101415018A (zh) * | 2007-10-17 | 2009-04-22 | 北京灵图软件技术有限公司 | 一种地理信息数据的传输方法和系统 |
CN102736898A (zh) * | 2012-05-08 | 2012-10-17 | 国家测绘局卫星测绘应用中心 | 一种适用于多核cpu的矢量数据并行绘制方法和装置 |
CN102722549A (zh) * | 2012-05-28 | 2012-10-10 | 中国科学院遥感应用研究所 | 一种基于集群的遥感数据集实时渲染服务 |
CN103198148A (zh) * | 2013-04-22 | 2013-07-10 | 中煤地西安地图制印有限公司 | 地图出版数据一体化管理及多媒介发布方法 |
CN103714124A (zh) * | 2013-12-10 | 2014-04-09 | 国家电网公司 | 超大规模低压数据处理方法 |
CN103942306A (zh) * | 2014-04-18 | 2014-07-23 | 重庆市勘测院 | 三维城市模型自适应调度方法 |
Non-Patent Citations (1)
Title |
---|
于文洋: "面向数字地球的三维景观构造关键技术研究", 《中国博士学位论文全文数据库 基础科学辑》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446012A (zh) * | 2016-08-25 | 2017-02-22 | 浙江科澜信息技术有限公司 | 一种在osgb数据处理中提升渲染场景效率的方法 |
CN106446012B (zh) * | 2016-08-25 | 2020-04-17 | 浙江科澜信息技术有限公司 | 一种在osgb数据处理中提升渲染场景效率的方法 |
CN108572951A (zh) * | 2017-03-08 | 2018-09-25 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的制图数据三维显示系统 |
CN108572951B (zh) * | 2017-03-08 | 2021-08-17 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的制图数据三维显示系统 |
CN107402958B (zh) * | 2017-06-12 | 2020-09-15 | 重庆市勘测院 | 一种gkf三维空间数据库的创建和访问方法 |
CN107402958A (zh) * | 2017-06-12 | 2017-11-28 | 重庆市勘测院 | 一种gkf三维空间数据库的创建和访问方法 |
CN107566474A (zh) * | 2017-08-28 | 2018-01-09 | 荆门程远电子科技有限公司 | 基于移动平台的三维虚拟地球多源异构数据下载和集成方法 |
CN107480305A (zh) * | 2017-09-18 | 2017-12-15 | 浙江科澜信息技术有限公司 | 一种纹理信息加载方法及系统 |
CN107480305B (zh) * | 2017-09-18 | 2020-08-11 | 浙江科澜信息技术有限公司 | 一种纹理信息加载方法及系统 |
CN110162584A (zh) * | 2019-05-10 | 2019-08-23 | 苏州嘉奕晟中小企业科技咨询有限公司 | 一种三维地理信息模型数据处理系统 |
CN112685379A (zh) * | 2019-10-18 | 2021-04-20 | 北京博超时代软件有限公司 | 数据组织方式、系统和设备以及存储介质 |
CN112685379B (zh) * | 2019-10-18 | 2024-06-07 | 北京博超时代软件有限公司 | 数据组织方式、系统和设备以及存储介质 |
CN111046005A (zh) * | 2019-11-01 | 2020-04-21 | 宝略科技(浙江)有限公司 | 一种城市三维实景数据的网格化编码方法 |
CN111046005B (zh) * | 2019-11-01 | 2023-09-01 | 宝略科技(浙江)有限公司 | 一种城市三维实景数据的网格化编码方法 |
CN111583404A (zh) * | 2020-05-08 | 2020-08-25 | 广西壮族自治区自然资源遥感院 | 海量倾斜摄影三维模型数据调度方法及系统 |
CN111583404B (zh) * | 2020-05-08 | 2021-08-31 | 广西壮族自治区自然资源遥感院 | 海量倾斜摄影三维模型数据调度方法及系统 |
CN113656514A (zh) * | 2021-08-12 | 2021-11-16 | 煤炭科学研究总院 | 矿山三维模型可视化方法和装置 |
CN114494562A (zh) * | 2022-01-20 | 2022-05-13 | 北京中航双兴科技有限公司 | 用于地形渲染的数据处理方法和装置 |
CN116433863A (zh) * | 2023-04-08 | 2023-07-14 | 北京联横科创有限公司 | 一种地形数据模型的数据管理方法及装置 |
CN116958385A (zh) * | 2023-09-18 | 2023-10-27 | 园测信息科技股份有限公司 | 支持海量单体模型的材质纹理动态更新方法、存储介质及设备 |
CN116958385B (zh) * | 2023-09-18 | 2023-12-08 | 园测信息科技股份有限公司 | 支持海量单体模型的材质纹理动态更新方法、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105718480B (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718480A (zh) | 一种基于地理信息的海量三维数据调度的方法 | |
CN102255930B (zh) | 用于提供虚拟世界的场景数据的方法和系统 | |
CN110059067B (zh) | 一种水利空间矢量大数据存储管理方法 | |
US8525848B2 (en) | Point cloud decimation engine | |
CN108109204B (zh) | 一种制作和渲染大规模地形的方法及系统 | |
CN107391258B (zh) | 一种软硬件一体的便携式遥感影像实时处理系统 | |
CN116089555A (zh) | 基于cim平台三维空间数据的采集与轻量化系统和方法 | |
CN113066157B (zh) | 基于cim平台的数据分级请求渲染方法及系统 | |
CN113112603B (zh) | 三维模型优化的方法和装置 | |
CN110368694A (zh) | 游戏场景的数据处理方法、装置、设备及可读存储介质 | |
CN113570275A (zh) | 基于bim和数字高程模型的水资源实时监测系统 | |
CN105574151B (zh) | 图像存储方法和设备 | |
CN103021016B (zh) | 一种渲染过程中海量三维地理信息数据处理方法 | |
CN116958385B (zh) | 支持海量单体模型的材质纹理动态更新方法、存储介质及设备 | |
CN116502303B (zh) | 一种基于场景层级实例信息增强的bim模型可视化方法 | |
CN115718824A (zh) | 一种通过空间距离判定设备位置自动推送设备信息的方法 | |
CN114781014B (zh) | 对象处理方法、装置、设备及计算机可读存储介质 | |
CN106326255B (zh) | 一种图元分层切割方法及装置 | |
CN113722415B (zh) | 点云数据的处理方法、装置、电子设备及存储介质 | |
CN102117288A (zh) | 一种三维建模中搜索建模数据的方法及装置 | |
CN109597865B (zh) | 基于嵌入式平台的海量地理信息数据的存储与检索方法 | |
CN110727750A (zh) | 海洋时空过程对象提取与多尺度数据映射方法、介质及设备 | |
Tian et al. | Roaming of large urban scenes based on Unity 3D | |
CN113495935A (zh) | 一种基于不规则三角化网格剖分的地形切片方法和系统 | |
CN117874301B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |