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

文档序号:9929545阅读:来源:国知局
> 对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用;
当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用;
当纹理资源不再使用时,对纹理资源进行卸载。
[0021]由此可见:本发明实施例中的方法对海量三维数据进行了有效的组织和管理,便于数据的更新维护;通过分级网格索引和三维实体对象索引的建立,能够对海量三维数据快速地裁剪过滤;通过对模型和纹理进行分离、简化和压缩,减少了磁盘空间的使用,提高了数据资源访问的效率;通过多线程处理资源请求和资源卸载,最大限度地提升了硬件资源的使用效率,使海量三维数据的调度更加快速,使三维场景的渲染更加流畅;通过双缓冲队列处理资源请求,解决了过期节点无效加载和释放缓慢的问题。
【附图说明】
[0022]图1为本发明的实施例1提供的基于地理信息的海量三维数据调度的方法的流程不意图;
图2为本发明的实施例2提供的基于地理信息的海量三维数据调度的方法的流程示意图;
图3为本发明的实施例提供的数据分类步骤的流程示意图;
图4为本发明的实施例提供的创建索引并存储步骤的流程示意图;
图5为本发明的实施例提供的处理三维实体对象并存储步骤的流程示意图;
图6为本发明的实施例提供的数据裁剪、资源请求步骤的流程示意图;
图7为本发明的实施例提供的处理资源请求步骤的流程示意图;
图8为本发明的实施例提供的卸载数据步骤的流程示意图。
【具体实施方式】
[0023]为了使本技术领域的人员更好地理解本发明方案,下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
[0024]实施例1:
图1为本实施例提供的一种基于地理信息的海量三维数据调度的方法的流程示意图。如图1所示,一种基于地理信息的海量三维数据调度的方法,包括如下步骤:
数据分类:将属性特征相同的三维实体对象进行分类处理;
创建索引并存储:对数据分类后的三维实体对象分别进行索弓I创建,并将创建好的索引信息进行存储;
处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
处理资源请求:对不同类型资源请求进行多线程处理;
卸载数据:从内存中清除一定时间内不再使用的资源数据。
[0025]如图3所示的一种基于地理信息的海量三维数据调度的方法,所述数据分类:将属性特征相同的三维实体对象进行分类处理;
其中,数据分类的步骤具体可为:
按照地物特征、地貌特征将三维实体对象进行分类;
将划分后的实体对象按照不同属性进行划分。
[0026]如图4所示的一种基于地理信息的海量三维数据调度的方法,所述创建索引并存储:对数据分类后的三维实体对象分别进行索引创建,并将创建好的索引信息进行存储;
所述创建索引并存储的具体步骤为: 将数据分类后的三维实体对象区域进行网格划分,并将网格进行编码;
根据三维实体对象的空间范围,把三维实体对象划分到唯一的网格中,记录每个三维实体对象的索引信息;
根据网格内三维实体对象的索引信息更新各级网格的索引信息;
对网格索引信息、三维实体对象索弓I信息进行存储。
[0027]具体实施例中所述其中网格大小可进行指定,网格层数也可以指定;所述存储的格式可为文件格式、数据库格式。
[0028]如图5所示的一种基于地理信息的海量三维数据调度的方法,所述处理三维实体对象并存储:将每个三维实体对象的模型资源进行纹理分离处理、简化处理,并将模型资源、纹理资源、属性数据进行存储;
所述处理三维实体对象并存储的具体步骤为:
提取每个三维实体对象的模型资源和属性数据;
将模型资源转换为渲染平台支持的资源格式;
将纹理资源从模型资源中分离;
对模型资源及其纹理资源进行简化处理;
对原始模型及其纹理和简化模型及其纹理进行压缩处理;
分别存储原始模型及其纹理和简化模型及其纹理,相同的模型、纹理只存储一次;
存储三维实体对象的属性数据。
[0029]如图6所示的一种基于地理信息的海量三维数据调度的方法,所述数据裁剪、资源请求:根据网格索引和三维实体对象索引筛选出需要渲染的模型资源、纹理资源并进行资源加载请求;
所述数据裁剪、资源请求的具体步骤为:
根据视点范围、网格索引信息进行网格逐级裁剪;
对在可显示范围内而没有加载的网格索引进行加载请求;
裁剪到最后一级网格索引后,判断网格索引内的三维实体对象索引是否已加载;
将没有加载的三维实体对象索引进行加载请求;
根据视点范围、已加载的三维实体对象索引进行三维实体对象裁剪;
判断三维实体对象是否需要加载,将需要加载的三维实体对象的模型资源进行加载请求;
将加载的三维实体对象进行遮挡查询,将不被遮挡的三维实体对象的模型资源进行渲染处理,并更新该三维实体对象索引及其所在的各级网格索引的当前使用帧数;
在渲染处理过程中如果纹理资源未被加载,将需要加载的纹理资源进行加载请求。
[0030]如图7所示的一种基于地理信息的海量三维数据调度的方法,所述处理资源请求:对不同类型资源请求进行多线程处理;
所述处理资源请求的具体步骤为:
清空处理资源请求的队列;
将接收资源请求的队列与处理资源请求的队列进行交换;
将处理资源请求的队列根据资源信息与视点的距离进行排序;
对处理资源请求队列中的资源请求进行加载处理; 加载的网格索引存入优先访问队列,并记录当前帧数;
加载的三维实体对象索引存入优先访问队列,并记录当前帧数。
[0031]具体实施例中所述资源请求可包括:纹理资源、模型资源、网格索引、三维实体对象索引;在对资源请求进行处理时可采取不同种类的资源请求使用不同的线程进行处理;所述资源信息与视点距离的排序可为从近及远进行排序。
[0032]如图8所示的一种基于地理信息的海量三维数据调度的方法,所述卸载数据:从内存中清除一定时间内不再使用的资源数据;
所述卸载数据的具体步骤为:
利用卸载处理线程,在一定的时间间隔检查网格索引和三维实体对象索引优先访问队列中的网格索引和三维实体对象索引是否已经长时间没有使用;
对一定时间内没有使用的网格索引和三维实体对象索引进行卸载并减少对模型资源的引用;
当模型资源不再使用时,对模型资源进行卸载并减少对纹理资源的引用;
当纹理资源不再使用时,对纹理资源进行卸载。
[0033]下面以一个更具体的一个细节方面的例子来对本技术进行详细描述。
[0034]以调度全球三维模型数据为例,实施方法如下:
首先对全球三维模型数据进行分类分层,将建筑、地面、河流、树等划分为不同的图层。如果还有其它类型的数据,按照相同的方法进行划分,分为不同的图层进行管理。
[0035]对每层数据创建索引。由于全球范围比较大,可以划分为10级网格索引,设置最后一级网格索引的网格边长为1000m,即第10级网格索引的边长为1000m。每层数据网格索引的网格级数和网格大小都可以不一样。为了简单说明技术流程,本实施例所有图层采用一致的网格索引参数,并以四叉树的方式组织各级网格,也可以以九宫格或其它方式组织各级网格。通过计算可知第I
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1