一种地形影像数据快速调度方法及其系统与流程

文档序号:16364355发布日期:2018-12-22 08:20阅读:210来源:国知局
一种地形影像数据快速调度方法及其系统与流程

本发明涉及三维地形可视化技术领域,具体涉及一种地形影像数据快速调度方法及其系统。

背景技术

地形数据主要包括两类:一类是dem(digitalelevationmodel,数字高程模型)数据,一类是dom(digitalorthophotomap,数字正射影像)数据。在地形可视化的过程中,对于dem数据,应用程序不仅要把它调入内存并进行绘制,还要对它进行基于四叉树结构的lod(levelofdetail,细节层次)剖分,这会导致dem数据的细节层次数增加。而dom数据仅用于纹理映射,不会发生细分操作,且其细节层次在数据预处理过后就已确定。

传统的数据调度方式首先调入对应细节层次的dem数据,接着对可视区域中需进行四叉剖分的地形块进行剖分,并对剖分结束后的dem数据进行基于三角形扇的绘制,构建地形三角,最后根据剖分完成后的每一dem地形块层次决定其应当调入的对应dom地形块层次,从外存调入dom数据至内存,并进行纹理映射,以完成地形场景的绘制。

传统的数据调度方式虽然能够使三维地形场景具有较高的仿真效果,但其必须在dem数据调入内存且根据dem数据剖分完成后的相关参数来确定应当调入的dom数据层次,这样会造成系统i/o等待时间长,数据调度效率低,发生跳帧、漫游场景不连续、漫游帧速率较低的现象,因而针对实际生产的需求,如何设计一种可减少系统i/o等待时间,提高数据调度效率的地形影像数据快速调度方法就变得尤为重要,是三维地形可视化技术领域迫切需要解决的技术问题。



技术实现要素:

本发明正是为了克服现有技术中容易造成系统i/o等待时间长,数据调度效率低的问题,提供一种地形影像数据快速调度方法及其系统,大大减少了系统i/o的等待时间,提升用户体验,避免发生场景不连续的现象,使得三维地形可视化影像更加的准确和有效。

为了实现上述目的,本发明采用的技术方案是:一种地形影像数据快速调度方法,包括如下步骤:

s1,获取原始地形数据,根据所述原始地形数据生成多分辨率dem金字塔模型数据和多分辨率dom金字塔模型数据,两种模型数据存储于外存;

s2,将dem数据调入内存,其进一步包括:

s21,根据视锥体投影原理确定数据调度范围;

s22,根据屏幕投影误差确定从所述数据调度范围中调入内存的dem数据层次;

s23,将多分辨率dem金字塔模型数据中对应层次的dem数据调入内存;

s3,将dom数据调入内存,其进一步包括:

s31,预先建立视距范围与dom数据层次对应关系;

s32,确定视点距所述数据调度范围内地形块的距离所对应的dom数据层次;

s33,将所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存;

s4,根据调入内存的dem数据和dom数据进行地形场景的绘制。

作为本发明的一种改进,所述步骤s21进一步包括:

s211,根据视点以及视锥体的远裁剪面、左裁剪面和右裁剪面向x-y平面上投影,获得投影三角形;

s212,根据所述投影三角形对地形块进行求交判断,处于投影三角形内或与投影三角形相交的地形块为处于可视区域范围的地形块集合;

s213,将处于可视区域范围的地形块集合确定为数据调度范围。

作为本发明的一种改进,步骤s31进一步包括:

s311,预先根据不同分辨率的纹理细节层次确定相应的临界距离值,计算公式如下:

其中,p表示屏幕分辨率,l表示视点距离地形块中心点的距离,i表示纹理细节层次的分辨率,α为水平视角,d为屏幕的像素数目,d为临界距离值;

s312,将不同分辨率的纹理细节层次与根据临界距离值确定的视距范围相对应,获得视距范围与dom数据层次对应关系。

作为本发明的又一种改进,步骤s4进一步包括:

s41,根据如下公式进行判断:

其中,l为视点与地形块中心的距离,l表示视点距离地形块中心点的距离,c为地形块的边长,c1为地形块节点动态误差阈值,h为地形块粗糙度值,c2为地形块节点静态误差阈值;当f<1时,进入步骤s42;当f≥1时,进入步骤s43,地形块节点将停止剖分,。

s42,根据节点细化评价准则对当前可视区域中需进行四叉树剖分的地形块进行剖分;

s42,对dem数据进行基于三角形扇的绘制,构建地形三角网;

s43,基于dom数据实现纹理映射,完成地形场景的绘制。

作为本发明的又一种改进,所述步骤s33中将多分辨率dom金字塔模型数据中对应层次的dom数据调入内存的过程中,当视点位置发生移动时,执行以下dom数据动态调度策略:

当视点移动且未导致数据调度范围发生变化时,则沿视线方向,当处于视点前方的地形块与视点之间的距离为下一层的临界距离值时,则将所述多分辨率dom金字塔模型数据中下一层dom数据调入内存;

当视点移动且导致数据调度范围发生变化时,对于新进入到视锥体投影区域内的地形块,先将与该地形块对应的最低分辨率层次的dom数据调入内存,再根据视点与该地形块的距离确定与所述距离对应的dom数据层次,根据所述dom数据层次将对应的dom数据调入内存;

当新dom数据调入内存中时,需要替换掉内存中相应的原dom数据;替换方式遵循以下原则:按照距离视点由远到近的替换原则,首先将距离视点最远的dom数据替换掉,如果同时存在多块地形块距离视点距离相同,则根据地形块与当前视线方向的吻合程度由高到低依次替换;如果同时存在多块地形块与当前视线方向的吻合程度相同,则按照分辨率由高到低依次替换,并保证处于数据调度范围的最低分辨率的dom数据保留在内存中。

为了实现上述目的,本发明还采用的技术方案是:一种地形影像数据快速调度系统,包括模型建立模块、dem数据调度模块、dom数据调度模块和场景绘制模块;

所述模型建立模块,用于获取原始地形数据,根据所述原始地形数据生成多分辨率dem金字塔模型数据和多分辨率dom金字塔模型数据,并存储于外存;

所述dem数据调度模块,用于根据视锥体投影原理确定数据调度范围,根据屏幕投影误差确定从所述数据调度范围中调入内存的dem数据层次,将多分辨率dem金字塔模型数据中对应层次的dem数据调入内存;

所述dom数据调度模块,用于根据预先建立的视距范围与dom数据层次对应关系,确定视点距所述数据调度范围内地形块的距离所对应的dom数据层次,将所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存;

所述场景绘制模块,用于根据调入内存的dem数据和dom数据进行地形场景的绘制。

作为本发明的一种改进,所述dem数据调度模块具体用于:

根据视点以及视锥体的远裁剪面、左裁剪面和右裁剪面向x-y平面上投影,获得投影三角形;

根据所述投影三角形对地形块进行求交判断,处于投影三角形内或与投影三角形相交的地形块为处于可视区域范围的地形块集合;

将处于可视区域范围的地形块集合确定为数据调度范围。

作为本发明的一种改进,所述dom数据调度模块具体用于:

预先根据不同分辨率的纹理细节层次确定相应的临界距离值;

将不同分辨率的纹理细节层次与根据临界距离值确定的视距范围相对应,获得视距范围与dom数据层次对应关系。

作为本发明的又一种改进,所述dom数据调度模块中预先根据不同分辨率的纹理细节层次确定相应的临界距离值,计算公式如下:

其中,p表示屏幕分辨率,l表示视点距离地形块中心点的距离,i表示纹理细节层次的分辨率,α为水平视角,d为屏幕的像素数目,d为临界距离值。

作为本发明的更进一步改进,还包括数据动态更新模块,用于在所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存的过程中,当视点位置发生移动时,执行以下dom数据动态调度策略:

当视点移动且未导致数据调度范围发生变化时,则沿视线方向,当处于视点前方的地形块与视点之间的距离为下一层的临界距离值时,则将所述多分辨率dom金字塔模型数据中下一层dom数据调入内存;

当视点移动且导致数据调度范围发生变化时,对于新进入到视锥体投影区域内的地形块,先将与该地形块对应的最低分辨率层次的dom数据调入内存,再根据视点与该地形块的距离确定与所述距离对应的dom数据层次,根据所述dom数据层次将对应的dom数据调入内存;

当新dom数据调入内存中时,需要替换掉内存中相应的原dom数据;替换方式遵循以下原则:按照距离视点由远到近的替换原则,首先将距离视点最远的dom数据替换掉,如果同时存在多块地形块距离视点距离相同,则根据地形块与当前视线方向的吻合程度由高到低依次替换;如果同时存在多块地形块与当前视线方向的吻合程度相同,则按照分辨率由高到低依次替换,并保证处于数据调度范围的最低分辨率的dom数据保留在内存中。

与现有技术相比,本发明提出了一种地形影像数据快速调度方法,摒弃了传统的根据dem数据剖分完成后的相关参数来确定应当调入的dom数据层次的方式,采用基于视距范围与dom数据层次对应关系的方式来调度dom数据,使得dom数据的调度无需等待dem数据四叉剖分完成再进行,能够在确定需要调入dem数据块细节层次的同时,也能快速的确定与之对应的dom数据块的层次,可以在不影响场景仿真效果的前提下,大大减少系统i/o等待时间,提高数据调度的效率,提升用户漫游场景体验,避免发生场景不连续现象。同时,这种方式更有利于多线程机制的实施,使得dem数据和dom数据的调度过程可以同时进行。

附图说明

图1为本发明地形影像数据快速调度方法的示意流程图;

图2为本发明实施例提供的透视投影的视锥体示意图;

图3为本发明实施例提供的临界距离值计算示意图;

图4为本发明实施例4地形影像数据快速调度系统结构图;

图5为本发明实施例5地形影像数据快速调度系统结构图。

具体实施方式

以下将结合附图和实施例,对本发明进行较为详细的说明。

实施例1

一种地形影像数据快速调度方法,如图1所示,包括如下步骤:

s1,获取原始地形数据,根据所述原始地形数据生成多分辨率dem金字塔模型数据和多分辨率dom金字塔模型数据,两种模型数据存储于外存;

s2,将dem数据调入内存,其进一步包括:

s21,根据视锥体投影原理确定数据调度范围;

s22,根据屏幕投影误差确定从所述数据调度范围中调入内存的dem数据层次;

s23,将多分辨率dem金字塔模型数据中对应层次的dem数据调入内存;

s3,将dom数据调入内存,其进一步包括:

s31,预先建立视距范围与dom数据层次对应关系;

s32,确定视点距所述数据调度范围内地形块的距离所对应的dom数据层次;

s33,将所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存;

s4,根据调入内存的dem数据和dom数据进行地形场景的绘制。

上述实施例可以在不影响场景仿真效果的前提下,大大减少系统i/o等待时间,提高数据调度的效率,提升用户漫游场景体验,避免发生场景不连续现象。同时,这种方式更有利于多线程机制的实施,使得dem数据和dom数据的调度过程可以同时进行。

实施例2

本实施例与实施例1的不同之处在于:步骤s21进一步包括:

s211,根据视点以及视锥体的远裁剪面、左裁剪面和右裁剪面向x-y平面上投影,获得投影三角形;

s212,根据所述投影三角形对地形块进行求交判断,处于投影三角形内或与投影三角形相交的地形块为处于可视区域范围的地形块集合;

s213,将处于可视区域范围的地形块集合确定为数据调度范围。

需要说明的是,根据视锥体投影原理即基于视锥体投影的视域裁剪策略。视景体是一块相机空间与地形场景相交的可见空间区域。在三维场景的渲染中,常用的投影方式是透视投影,因此,视景体可以被看作是一个平头六面锥体,常被成为视锥体。该视锥体是从视点发出四条射线,与远、近两个平面相交后形成相对于视点的上、下、左右前后六个截面围成。如图2所示,其中点e为视点,四棱柱abcd-a'b'c'd'则是由视点e和视角a构成的视锥体,面abcd叫做远裁剪面,a'b'c'd'叫做近裁剪面,这两个裁剪面分别由远、近平面的距离控制;aa'd'd叫做上裁剪面,bb'c'c叫做下裁剪面,aa'b'b叫做左裁剪面,dd'c'c叫做右裁剪面。

上述实施例中,基于视锥体投影的视域裁剪策略由于不考虑视锥体的上裁剪面、下裁剪面和近裁剪面,可大大简化视域裁剪的复杂度,减少视域裁剪耗时,加快确定可视区域速度,减少数据调度用时。

本实施例还与实施例1的不同之处在于:步骤s31进一步包括:

s311,预先根据不同分辨率的纹理细节层次确定相应的临界距离值,然后将不同分辨率的纹理细节层次和一定的视距范围相对应,在数据调度时,就可以根据视距来调度相应的dom数据细节层次,可以大大减少确定dom数据层次的计算耗时,并使得dem数据和dom数据的调度可以同时进行;

预先根据不同的分辨率纹理细节层次计算得到其相应的临界距离值,计算公式如下:

其中,p表示屏幕分辨率,l表示视点距离地形块中心点的距离,i表示纹理细节层次的分辨率,α为水平视角,d为屏幕的像素数目,d为临界距离值;

每个纹理分辨率层次(即dom数据层次)对应一个距离临界值;两个相邻分辨率层次对应的距离临界值组成一个距离范围。因为大部分情况下视距不是正好等于临界距离值,而是位于某两个相邻的临界距离值之间。因此,可以设置左开右闭的距离区间对应一个纹理分辨率层次。比如纹理细节层次的分辨率为a对应的距离阈值为100,纹理分辨率细节层次为b对应的距离阈值为200,则可以设置距离区间分别为(0,100]和(100,200]。当视距落在(0,100]范围内时,则调用分辨率为a的纹理(即dom数据),当视距落在(100,200]范围内时,则调用分辨率为b的纹理(即dom数据)。

对于大规模的地形场景而言,地形块的各分辨率层次的纹理数据不可能一次性都装载到内存,本申请采用临界距离的概念,将不同分辨率层次的纹理与一定的视距范围相对应,即事先根据不同纹理分辨率层次(即dom数据层次),计算出其对应的临界距离值,然后就可以确定某一距离范围与不同dom数据层次的对应关系。根据当前视点与地形块之间的距离选择相应的dom数据调入内存;可以大大减少确定dom数据层次的计算耗时,并使得dem数据和dom数据的调度可以同时进行。

s312,将不同分辨率的纹理细节层次与根据临界距离值确定的视距范围相对应,获得视距范围与dom数据层次对应关系。

实施例3

本实施例与实施例1、2的不同之处在于:步骤s33中将多分辨率dom金字塔模型数据中对应层次的dom数据调入内存的过程中,当视点位置发生移动时,执行以下dom数据动态调度策略:

当视点移动且未导致数据调度范围发生变化时,则沿视线方向,当处于视点前方的地形块与视点之间的距离为下一层的临界距离值时,则将所述多分辨率dom金字塔模型数据中下一层dom数据调入内存;

当视点移动且导致数据调度范围发生变化时,对于新进入到视锥体投影区域内的地形块,先将与该地形块对应的最低分辨率层次的dom数据调入内存,再根据视点与该地形块的距离确定与所述距离对应的dom数据层次,根据所述dom数据层次将对应的dom数据调入内存;

当新dom数据调入内存中时,需要替换掉内存中相应的原dom数据;替换方式遵循以下原则:按照距离视点由远到近的替换原则,首先将距离视点最远的dom数据替换掉,如果同时存在多块地形块距离视点距离相同,则根据地形块与当前视线方向的吻合程度由高到低依次替换;如果同时存在多块地形块与当前视线方向的吻合程度相同,则按照分辨率由高到低依次替换,并保证处于数据调度范围的最低分辨率的dom数据保留在内存中。

上述实施例中,对dom数据采取的动态调度策略,可以大大加快dom数据的调度过程,避免发生画面不连续的现象。另外,当视点移动且导致数据调度范围发生变化时,对于新进入到视锥体投影区域内的地形块,先将与该地形块对应的最低分辨率层次的dom数据调入内存。即最低分辨率只是在刚开始切换时用到,等到画面稳定,计算机来得及计算出真正需要的层次了,就用真正的层次代替分辨率最低的层次。采用分辨率较低的dom数据作为其纹理属性,是因为在视距变化不大的情况下,人眼对地形纹理细节的感知不是很敏感。同时,这样不仅能大大减少需装载的dom数据量,加速纹理映射过程,而且能改善因纹理频繁的进行动态切换而带来的纹理“跳跃”现象。

步骤s4中根据调入内存的dem数据和dom数据进行地形场景的绘制包括:根据节点细化评价准则对当前可视区域中需进行四叉树剖分的地形块进行剖分,并对剖分后的dem数据进行基于三角形扇的绘制,构建地形三角网;基于dom数据实现纹理映射,完成地形场景的绘制。可以利用opengl(opengraphicslibrary,开放图形库。)或directx3d库函数实现纹理映射。

其中,根据节点细化评价准则对当前可视区域中需进行四叉剖分的地形块进行剖分包括:根据如下公式进行判断:

其中,l为视点与地形块中心的距离,l表示视点距离地形块中心点的距离,c为地形块的边长,c1为地形块节点动态误差阈值,h为地形块粗糙度值,c2为地形块节点静态误差阈值;当f<1时,地形块节点将继续进行四叉树剖分;当f≥1时,地形块节点将停止剖分,直接进行三角形构网。

实施例4

一种地形影像数据快速调度系统,包括模型建立模块、dem数据调度模块、dom数据调度模块和场景绘制模块;

所述模型建立模块,用于获取原始地形数据,根据所述原始地形数据生成多分辨率dem金字塔模型数据和多分辨率dom金字塔模型数据,并存储于外存;

所述dem数据调度模块,用于根据视锥体投影原理确定数据调度范围,具体的来说,所述dem数据调度模块用于:根据视点以及视锥体的远裁剪面、左裁剪面和右裁剪面向x-y平面上投影,获得投影三角形;根据所述投影三角形对地形块进行求交判断,处于投影三角形内或与投影三角形相交的地形块为处于可视区域范围的地形块集合;将处于可视区域范围的地形块集合确定为数据调度范围,随后根据屏幕投影误差确定从所述数据调度范围中调入内存的dem数据层次,将多分辨率dem金字塔模型数据中对应层次的dem数据调入内存;

所述dom数据调度模块,用于根据预先建立的视距范围与dom数据层次对应关系,确定视点距所述数据调度范围内地形块的距离所对应的dom数据层次,将所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存;

预先根据不同分辨率的纹理细节层次确定相应的临界距离值,计算公式如下:

其中,p表示屏幕分辨率,l表示视点距离地形块中心点的距离,i表示纹理细节层次的分辨率,α为水平视角,d为屏幕的像素数目,d为临界距离值。

将不同分辨率的纹理细节层次与根据临界距离值确定的视距范围相对应,获得视距范围与dom数据层次对应关系,随后将所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存。

实施例5

本实施例与实施例4的不同之处在于:还包括数据动态更新模块,用于在所述多分辨率dom金字塔模型数据中对应层次的dom数据调入内存的过程中,当视点位置发生移动时,执行以下dom数据动态调度策略:

当视点移动且未导致数据调度范围发生变化时,则沿视线方向,当处于视点前方的地形块与视点之间的距离为下一层的临界距离值时,则将所述多分辨率dom金字塔模型数据中下一层dom数据调入内存;

当视点移动且导致数据调度范围发生变化时,对于新进入到视锥体投影区域内的地形块,先将与该地形块对应的最低分辨率层次的dom数据调入内存,再根据视点与该地形块的距离确定与所述距离对应的dom数据层次,根据所述dom数据层次将对应的dom数据调入内存;

当新dom数据调入内存中时,需要替换掉内存中相应的原dom数据;替换方式遵循以下原则:按照距离视点由远到近的替换原则,首先将距离视点最远的dom数据替换掉,如果同时存在多块地形块距离视点距离相同,则根据地形块与当前视线方向的吻合程度由高到低依次替换;如果同时存在多块地形块与当前视线方向的吻合程度相同,则按照分辨率由高到低依次替换,并保证处于数据调度范围的最低分辨率的dom数据保留在内存中。

该系统使得dom数据的调度无需等待dem数据四叉剖分完成再进行,能够在确定需要调入dem数据块细节层次的同时,也能快速的确定与之对应的dom数据块的层次,可以在不影响场景仿真效果的前提下,大大减少系统i/o等待时间,提高数据调度的效率。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实例的限制,上述实例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。

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