一种基于地理信息的海量三维数据调度的方法

文档序号:9929545阅读:470来源:国知局
一种基于地理信息的海量三维数据调度的方法
【技术领域】
[0001]本发明涉及地理信息处理和应用技术领域,特别涉及一种基于地理信息三维数据的调度与管理,实现模型和纹理共享,使硬件资源的使用更加有效,减少存储空间,简化模型,保证模型能够快速地展现的一种基于地理信息的海量三维数据调度的方法。
【背景技术】
[0002]在1992年时美国首先从生态环境和全球气候变化的角度提出了数字地球的概念。最初构想的数字地球是在现有基于图形用户界面(GUI)基础之上,结合最新的图形和图像技术,将虚拟现实及交互技术引入到虚拟环境构建中,建成更为自然、沉浸式的环境,在此系统中,用户能以自然的方式交互地存取自然、历史、文化等信息。
[0003]随着数字地球概念,数字中国,数字流域以及数字城市的概念相继出现,海量数据概念应运而生,它们都是大型GIS的一种表现形式。海量空间数据的调度与管理成为GIS发展中较为关键的技术。随着GIS应用领域的拓宽,它所面临的数据量越来越大,大范围的三维数据已经达到TB数量级。如何对这些海量三维数据进行有效的调度与管理,成为大型GIS系统要研究的重点。
[0004]目前计算机无法一次性加载海量数据,必须采用动态调度技术实现大范围三维场景的漫游与应用,随着视点的移动,动态加载一定范围内的三维模型。一些学者已就动态调度技术进行探讨,并取得了诸多成果。但该项技术如何在海量级的三维数字城市构建与管理中深入应用,在当前计算机硬件条件下实现快速高效的数据加载、渲染与动态浏览,仍是一个难点,也是一个热点,需要不断地研究。
[0005]经过反复实验与分析发现,现有的三维海量数据模型调度时会存在诸多缺陷:
I)、当数据预编译时,视点移动速度较快时内存释放会出现部分过期预编译节点没有及时释放,导致系统内存急剧上升而最终崩溃。
[0006]2)、当暂停线程处理后,模型仍然随视点变化而切换,且重新开启线程后调度处现内存不能释放。
[0007]3)、当视点在两帧之间发生突变时,过期的节点没有直接进入删除链表以迅速释放内存,而是先加载到场景,再从场景中过期后删除,从而导致内存释放缓慢。
[0008]4)、线程在进行数据加载时,遇到异常数据时会直接退出线程而无法再次启动,导致数据调度不能继续进行。
[0009]目前,还没有一个完善的方法可以同时解决基于地理信息数据调度与管理,使硬件资源的使用更加有效,减少存储空间,简化模型,保证模型能够快速地展现。

【发明内容】

[0010]为了解决现有技术中存在的技术难题,高效流畅地展示海量三维地理信息数据并在诸多领域中进行具有实际意义的海量三维数据发布、分析、共享与应用。
[0011]本发明实施例提供一种基于地理信息的海量三维数据调度的方法,包括如下步骤:
数据分类:将属性特征相同的三维实体对象进行分类处理;
创建索引并存储:对数据分类后的三维实体对象分别进行索弓I创建,并将创建好的索引信息进行存储;
处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
处理资源请求:对不同类型资源请求进行多线程处理;
卸载数据:从内存中清除一定时间内不再使用的资源数据。
[0012]一种基于地理信息的海量三维数据调度的方法,所述该方法还包括三维数据渲染步骤,其中:三维数据渲染:对经过裁剪调度后的海量三维地理信息数据进行渲染、展示。
[0013]一种基于地理信息的海量三维数据调度的方法,其中,所述数据分类:将属性特征相同的三维实体对象进行分类处理;
其中,数据分类的步骤具体可为:
按照地物特征、地貌特征将三维实体对象进行分类;
将划分后的实体对象按照不同属性进行划分。
[0014]一种基于地理信息的海量三维数据调度的方法,其中,所述创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
所述创建索引并存储的具体步骤为:
将数据分类后的三维实体对象区域进行网格划分,并将网格进行编码;
根据三维实体对象的空间范围,把三维实体对象划分到唯一的网格中,记录每个三维实体对象的索引信息;
根据网格内三维实体对象的索引信息更新各级网格的索引信息;
对网格索引信息、三维实体对象索弓I信息进行存储。
[0015]一种基于地理信息的海量三维数据调度的方法,所述网格大小可进行指定,网格级数也可指定;所述存储的格式可为文件格式、数据库格式。
[0016]一种基于地理信息的海量三维数据调度的方法,其中,所述处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
所述处理三维实体对象并存储的具体步骤为:
提取每个三维实体对象的模型资源和属性数据;
将模型资源转换为渲染平台支持的资源格式;
将纹理资源从模型资源中分离;
对模型资源及其纹理资源进行简化处理;
对原始模型及其纹理和简化模型及其纹理进行压缩处理;
分别存储原始模型及其纹理和简化模型及其纹理,相同的模型、纹理只存储一次;
存储三维实体对象的属性数据。
[0017]一种基于地理信息的海量三维数据调度的方法,其中,所述数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
所述数据裁剪、资源请求的具体步骤为:
根据视点范围、网格索引信息进行网格逐级裁剪;
对在可显示范围内而没有加载的网格索引进行加载请求;
裁剪到最后一级网格索引后,判断网格索引内的三维实体对象索引是否已加载;
将没有加载的三维实体对象索引进行加载请求;
根据视点范围、已加载的三维实体对象索引进行三维实体对象裁剪;
判断三维实体对象是否需要加载,将需要加载的三维实体对象的模型资源进行加载请求;
将加载的三维实体对象进行遮挡查询,将不被遮挡的三维实体对象的模型资源进行渲染处理,并更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数;
在渲染处理过程中如果纹理资源未被加载,将需要加载的纹理资源进行加载请求。
[0018]一种基于地理信息的海量三维数据调度的方法,其中,所述处理资源请求:对不同类型资源请求进行多线程处理;
所述处理资源请求的具体步骤为:
清空处理资源请求的队列;
将接收资源请求的队列与处理资源请求的队列进行交换;
将处理资源请求的队列根据资源信息与视点的距离进行排序;
对处理资源请求队列中的资源请求进行加载处理;
加载的网格索引存入优先访问队列,并记录当前帧数;
加载的三维实体对象索引存入优先访问队列,并记录当前帧数。
[0019]一种基于地理信息的海量三维数据调度的方法,其中,所述资源请求可包括:纹理资源、模型资源、网格索引、三维实体对象索引;在对资源请求进行处理时可采取不同种类的资源请求使用不同的线程进行处理;所述资源信息与视点距离的排序可为从近及远进行排序。
[0020]一种基于地理信息的海量三维数据调度的方法,其中,所述卸载数据:从内存中清除一定时间内不再使用的资源数据;
所述卸载数据的具体步骤为:
利用卸载处理线程,在一定的时间间隔检查网格索引和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间没有使用;
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1