一种海量数字化地形的快速动态绘制方法技术

技术编号:2951973 阅读:332 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种海量数字化地形的快速动态绘制方法,其步骤如下:将原始的海量数字化DEM地形模型剖分为标准地形块,并存储在计算机外存上;生成内存数据结构:核心地形块集、横向地形块集、纵向地形块集、以及核心地形块集的多分辨率辅助结构四部分;数据调度:预调度、块更新、预保留;多分辨率地形网格生成,最后将生成的地形三角网格送入渲染管道实现地形绘制。本发明专利技术方法,实现了超大规模地形的动态绘制。所涉及的数据结构比较简单,计算过程易于实现。自然地解决了地形块之间连续LOD的过渡问题。实现了地形绘制过程中地形的动态扩展。

【技术实现步骤摘要】

本专利技术公开,属于数字化地形绘 制

技术介绍
现有技术中公开了多种海量地形绘制方法。 一种基于地形块金字塔模型与 线性四叉树索引技术相结合的海量地形绘制方法(戴晨光等.海量地形数据实时可视化算法。计算机辅助设计与图形学学报,2004, 16 (11): 1604-1607)。该 方法首先把原始地形数据作为金字塔的底层,然后运用数据压缩方式生成完整 的地形块金字塔结构,再利用四叉树构建地形块索引和管理地形数据。该方法 所使用的用于管理地形数据的金字塔结构是建立在整块地形上的,当地形数据 很大时,它会随之变得庞大而复杂,从而影响了地形绘制的效率。此外, 一旦 建立全局地形的数据结构,便难以对数字化地形进行动态扩展.一种大规模地形动态快速绘制技术(冷志光等.大规模地形动态快速绘制 技术研究。系统仿真学报,2006, 18 (10): 2832-2835)。该技术将大规模地形 转换为小块地形进行处理,并利用视点运动的连续性和前后帧的相关性,管理 调度细节层次模型。绘制时,由于该技术没有将参与当前绘制的地形块统一进 行L0D (Level of Details)模型生成,会导致地形块之间的细节层次不匹配问题。一种基于外存的地形实时绘制框架(Lindstrom P, Pascucci V. Terrain4Simplification Simplified: A General Framework for View- Dependent Out-of-Core Visualization. IEEE Transaction on Visualization and Computer Graphics, 2002, 8 (3): 239-254)。该框架在处理海量地形数据时, 釆用了搡作系统的外存模型技术,利用内存映像文件技术将磁盘空间上的海量 数据映像到内存的一个地址空间上,由操作系统负责数据调度。该方法尽管可 以对海量数据进行快速绘制,但计算过程本身比较复杂,不易于实现。此外, Losasso等提出 一种基于GPU的Geometry CI ipmaps地形绘制技术(参见 Losasso F, Hoppe H. Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids. ACM Transactions on Graphics. 2004, 23 (3): 769-776), 用以视点为中心的嵌套规则格网集合作为数据结构,并将该数据结构存储在图 形硬件的顶点缓冲区中。当视点移动时,clipmap随之而变化,同时地形数据以 增量的方式载入。该技术有很高的执行效率,但是由于其需要特别的图形加速 硬件支持,目前还难以推广应用。
技术实现思路
基本概念1、在海量地形中进行场景漫游的过程,相当于一个第一人称的相机在地形 中自由运动的过程。只有被相机拍摄到的场景,才需要作为漫游过程中视觉观 察到的内容,绘制到计算机屏幕上。由于海量地形可被看成是无限大的,而相 机能够拍摄到的场景又只占整个地形的一小部分,所以在绘制的过程中,就没 有必要将整个地形数据全部从外存(如硬盘)全部调入到内存。这时,只需要调 入相机四周一定距离内的那部分地形数据,就能够实现相机拍摄到的场景地形的计算和绘制工作。这种特性称为相机的数据局部性。2、 相机在地形场景中进行漫游运动时,不断改变其位置和姿态。这时,与 相机相关联的局部地形数据也会随之在发生变化。那些已在内存中、但不是局 部地形一部分的数据需要从内存中清除以腾出内存,同时又需要将不在内存但 在局部地形中的数据从磁盘调入到内存。实现数据调入或调出的技术称为调度。3、 为了有效地进行内存与外存之间的数据调度,需要将海量地形分割成 一系列的小地形块,并以特定的形式存储在外存。存储形式必须满足在需要某 块地形块时,能够迅速地在外存找到该块地形块。地形块在外存上的存储形式 称为地形数据的组织。4、 相机能够拍摄到的范围是一个锥状体, 一般定义为一个由6个面围成的四棱台(见附图1),称为视景体。内存中相机附近的地形只有落入到视景体中, 才真正需要绘制。计算局部地形落入视景体内的部分的过程称为视景体裁剪,或简称为裁剪。5、 相同大小的两块地形,如果它们都落入到视景体中,但与相机远近距离不同,则在绘制出的屏幕效果上,两块地形占据屏幕的面积大小不同。对于占用屏幕面积很小的地形,只要给出一个轮廓就能表达出其形状信息;而占用屏幕面积较大的地形,必须给出足够的细节才都较真实地描述地形的起伏等特 征。根据距离相机的远近不同,生成不同分辨率的地形数据,并采用恰当分辨 率的数据进行绘制的过程,称为地形的多分辨率处理。多分辨率处理可以高效 地优化地形数据配置,提高数据的利用效率。本专利技术,其步骤如下 1、海量地形数据的外存组织将原始的海量数字化DEM (Digital Elevation Model)地形模型剖分为一 组大小一致的标准地形块,并把这些地形块存储在计算机外存上,每个地形块 均用其在全局地形中的位置坐标信息作为标识。根据需要,用户可在任意时刻 向现有全局地形的边界处添加新地形块,以扩充全局地形。2、 生成内存数据结构所述内存数据结构包括核心地形块集、横向地形块集、纵向地形块集、 以及多分辨率辅助结构四部分;核心地形块集由4个驻留内存的地形块组成,它 们直接参与当前时刻的绘制工作,分别标记为^:仏^仏AW、 横向地形 块集由4个驻留内存的地形块组成,用于存放核心地形块集的左右位置的相邻地 形块,分别标记为瓜仄瓜A M仄朋A'纵向地形块集也由4个驻留内存的地形 块组成,用于存放核心地形块集的上下位置的相邻地形块,分别标记为M仏M仏 K"、 所述核心地形块集、横向地形块集、纵向地形块集的12个地形块在全局地形中的位置关系是,核心地形块集的四个地形块居中,横向地形块集的 四个地形块分列于两侧,纵向地形块集的四个个地形块分列于上下;核心地形 块集的多分辨率辅助结构由地形四叉树、标识矩阵组成(为现有技术,在此不 再详细表述)。3、 数据调度(1)预调度核心地形块集(含4个核心地形块)构成的局部地形区域称为 核心块(附图3所示的正方形粗框中的部分);多分辨率绘制例程根据相机视景体 在核心块中的位置,决定是否需要预先将将来潜在需要的地形块调入到内存中 备用;绘制例程在核心块中定义一个居中的正方形区域(附图4中的虛线框), 当视景体的八个顶点之一由于相机移动或旋转超出该区域的某个边界时,便激活调度例程;后者将该边界外侧的相邻地形块调入到横向地形块集或纵向地形块集中的相应位置上;例如在附图4右图中,顶点r超出了正方形区域的上边界,这时被激活的地形块调度例程将地形块(n-l,"+l)和(","+l)分别调入到内存中K辟W嫩位置;(2) 块更新被预调度的地形块加载到内存后,并未立即参与当前绘制; 只有当相机视景体的某个顶点移出核心块时,才会对核心地形块集中的地形块 进行更新;附图5图示了视景体顶点r超出右边界时,发生的部分地形块更新 朋〃与服纷别成为新的W辨P朋",而A^与A^则变成新的"〃和^A当视景体顶点超出其它边界时,处理的过程相本文档来自技高网
...

【技术保护点】
一种海量数字化地形的快速动态绘制方法,其步骤如下: A、海量地形数据的外存组织: 将原始的海量数字化DEM地形模型剖分为一组大小一致的标准地形块,并把这些地形块存储在计算机外存上,每个地形块均用其在全局地形中的位置坐标信息作为标识; B、生成内存数据结构: 所述内存数据结构包括:核心地形块集、横向地形块集、纵向地形块集以及核心地形块集的多分辨率辅助结构四部分;核心地形块集由4个驻留内存的地形块组成,它们直接参与当前时刻的绘制工作,分别标记为RLU、RRU、RLD、RRD;横向地形块集由4个驻留内存的地形块组成,用于存放核心地形块集的左右位置的相邻地形块,分别标记为HLU、HLD、HRU、HRD;纵向地形块集也由4个驻留内存的地形块组成,用于存放核心地形块集的上下位置的相邻地形块,分别标记为VLU、VRU、VLD、VRD;所述核心地形块集、横向地形块集、纵向地形块集的12个地形块在全局地形中的位置关系是,核心地形块集的四个地形块居中,横向地形块集的四个地形块分列于两侧,纵向地形块集的四个个地形块分列于上下;核心地形块集的多分辨率辅助结构由地形四叉树、标识矩阵组成; C、数据调度: a、预调度:核心地形块集构成的局部地形区域称为核心块;多分辨率绘制例程根据相机视景体在核心块中的位置,决定是否需要预先将将来潜在需要的地形块调入到内存中备用;绘制例程在核心块中定义一个居中的正方形区域,当视景体的八个顶点之一由于相机移动或旋转超出该区域的某个边界时,便激活调度例程;后者将该边界外侧的相邻地形块调入到横向地形块集或纵向地形块集中的相应位置上; b、块更新:被预调度的地形块加载到内存后,并未立即参与当前绘制;只有当相机视景体的某个顶点移出核心块时,才会对核心地形块集中的地形块进行更新;当视景体顶点超出其它边界时,处理的过程相同; c、预保留:采用预保留机制保存从核心块淘汰出来的地形块,即不立即删除内存中刚刚从核心块移出的两个地形块,而是将它们暂时保留在横向地形块集或纵向地形块集中;在每次进行地形块调度时,都先判断需要调度的地形块是否已在横向地形块集或纵向地形块集中;如果已经存在,则不再从外存调入; 在相机漫游过程中,预调度、块更新和预保留在保持核心地形块集、横向地形块集和纵向地形块集的相对位置不变的情况下,只是在全局地形中平移这三个地形块集;内外存地形块调度的时机以及调入哪些地形块,均由多分辨率绘制例程通过相关计算决定,并驱...

【技术特征摘要】

【专利技术属性】
技术研发人员:庞明勇赵瑞斌
申请(专利权)人:南京师范大学
类型:发明
国别省市:84[中国|南京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利