三维地形可视化研究

时间:2022-10-05 05:09:45

三维地形可视化研究

三维地形可视化研究

霍旭光

(中国地质大学(北京) 地球科学与资源学院,北京 100083)

摘要:数字地球是近年来国内外的研究热点,其中地形的三位可视化研究是最关键的技术之一,该文通过研究DEM地形数据的预处理方法-影像金字塔模型、单块地形的显示方法、自动剔除递归显示机制以及三位场景渲染等技术较好的解决了三位地形可视化的问题。

关键词:DEM;LOD;可视化;金字塔模型

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)03-0621-03

1 概述

地形数据是“数字地球”的最基础的数据,故地形的三维可视化表达模型和可视化研究是“数字地球”最核心和最关键的技术之一。随着现在的卫星手段和各种测绘技术的高度发展,获取高精度的数字高程数据已成为可能,并且数据量呈指数级增长,针对海量的空间数据进行分析和决策的需求越来越高,DEM数据因其数据结构简单,便于存储管理等优越性成为地形可视为表达的最理想数据源。针对大区域地形的海量 DEM数据,要实现三维地形可视化,从计算机运算能力来看,一次性载入所有 DEM数据是不太现实的,而且也不可能在一个小小的屏幕上显示整个大区域的三维场景且保证其细节显示不会失真。对于任何的三维显示系统,其表现流畅与否直接会影响到系统的成败。基于这样的考虑,需要在实现地形三维可视化时根据视景体方位和大小动态的装载局部 DEM数据,以便于有效地减少对系统资源的依赖,提高程序的运行效率,真正做到流畅地实时漫游的动态三维效果。

在大规模地形场景可视化和地形 LOD模型问题上,过去已经有不少的工作。从网格特征考虑可分为基于非规则三角网格(Tin)和基于均匀网格(Grid)两种生成方法。从地形分层细分上考虑可以分为二叉树,四叉树,八叉树等。

2 三维地形数据预处理

DEM地形数据的切割预处理一直是海量数据切割的重点。它要求既能保证效率连续性的同时兼顾视野跨度和目标颗粒度的科学性和真实性。为了获取在不同高度能产生真实的渐进的虚拟视觉感受,在地形表达上通常都是通过不同的分辨率数据源来模拟。人们通常使用金字塔模型来解决此类问题。

金字塔模型是一种多分辨率层次模型。在地形场景绘制时,在保证显示精度的前提下为提高显示速度,不同区域通常需要不同分辨率的数字高程模型数据和纹理影像数据。数字高程模型金字塔和影像金字塔则可以直接提供这些数据而无需进行实时重采样。尽管金字塔模型增加了数据的存储空间,但能够减少完成地形绘制所需的总时间。分块的金字塔模型还能够进一步减少数据访问量,提高系统的输入输出执行效率,从而提升系统的整体性能。当地形显示窗口大小固定时,采用分块金字塔模型可以使数据访问量基本保持不变。分块金字塔模型的这一特性对海量地形实时可视化是非常重要的。

在构建地形金字塔时,首先把原始地形数据作为金字塔的底层,即第 0 层,并对其进行分块,形成第 0 层块矩阵。在第 0 层的基础上,按每 2*2个像素合成为一个像素的方法生成第 1层,并对其进行分块,形成第 1 层块矩阵。如此下去,构成整个金字塔结构。

为了便于标识的方便,我们预定的第 0级的块大小能被 180度整除,基数增加一次,块的大小一分为四,可以根据公式第 N级的块大小 = 第 0级块大小/2的 N次方来获取。

数据预切割完毕后,每一个 DEM数据文件均表示某个方位的一块地面高程数据,利用这种动态载入的方式来进行地形构造。当系统中观察者的视锥体停留在某个区域时,程序会自动地计算可视区域内可显示数据自动选择其级数,调入该方位所对应的 DEM块文件,离开视点越远,数据精度就越低。而当某块可视场景离开截头体视域外,程序则及时卸载该 DEM数据块,从而保证有效的、充足的系统资源供程序使用。当数据块离视点较远时,整个数据块可以用最粗略的层次,即用四叉树的根节点来显示,当视点逐渐靠近时,数据块的误差超过了指定的误差阈值,则将根节点分割为 4个子节点来显示,即调入 4个子节点的数据,同时从内存中清除父节点的数据。对各子节点递归调用此过程,直至所有节点的误差在限定的误差范围内。视点远离数据块的过程与此相反,当子节点的误差小于指定的误差阈值时,4个子节点合并为上一级父节点,即调入父子节点的数据同时从内存中清除 4个节点的数据。考虑到地形的连续性,如果节点内的一个边顶点被简化,则相邻节点的对应点也应被简化。

3 基于单块地形的显示方法

对于单块地形的显示,其基本步骤如下:

读取并解译二进制的高程文件头文件信息,设置基本参数。通常的 DEM数据文件的头文件中包含关于本文件的基本信息,如:左下角的起始点经纬度,阵列的行列数目,间距,最大高程和最小高程等。

根据当前点的行列号可以算出其对应点的经纬度坐标,循环计算每个高程点的世界坐标位置,存入顶点缓冲区中,并计算索引编号,纹理坐标,存入索引缓冲区,同时计算顶点法向量,用于处理光照的强弱效果。读取完毕,进行渲染。

4 自动剔除递归显示机制

实现地形可视化最主要的算法在于自动递归搜索机制上。在这一过程中算法要同时进行剔除和添加两个操作任务。剔除掉不在视野范围内的数据块,按照当前视觉的焦点提取当前高度上最高精度的数据块并添加到哈希表中进行处理。

根据人类的视觉原理,按照物体的远近自动的调节眼球焦点,产生最佳的视觉效果。与视点距离越近清晰度也就越高,对于金字塔模型的数据,需要采用不同的区域对应不同级别的地形搜索,因此在区域搜索过程中需要进行级度测试。如下左图所示,假设 E为视点位置,白色矩形表示与视锥体相交而且需要参与地形绘制的数据。矩形越小表示数据级别也越高。

以每块的中心点为特征点以递归的方法进行判别,算法如下:

第一步:通过屏幕中心点,分别得到第 0级 NE,SW,NW,SE四个子块的 Tile,因为其都有一个点在视域中间,按照其 ID索引存入哈希表中,如果哈希表中存在同样的 ID,跳过不再存入。

第二步:分别以上一步生成的四块区域进行判断,如果完全包含在视域中,计算当前的可视点所在级别,如果比当前级别更高,则继续分裂重复第二步,如果不是,则存入哈希表,如果已经存在,跳过不再存入。跳出。如果与视锥体相交,继续分裂,重复第二步;

5 三维场景渲染效果

本递归算法在进行 LOD数据查询时较为便利,通过计算和判断可以将当前视域中所有的数据块查找出来并存储在哈希表中,并予以显示标记,如果未被标记,当哈希表中存储的对象数目达到一定数量8的时候将剔除掉,其运行效果如下:

参考文献:

[1] 李德仁.数字地球与“3S”技术[J].中国测绘,2003(2):28-31.

[2] 王永明.地形可视化[J].中国图象图形学报,2000,5(6):449-456.

[3] 戴晨光,张永生,邓雪清.一种用于实时可视化的海量地形数据组织与管理方法[J].系统仿真学报,2005(2).

[4] 许妙忠,李德仁.基于点删除的地形TIN连续LOD模型的建立和实时动态显示[J].武汉大学学报:信息科学版,2003(3).

[5] LIU Chun,SUN Wei-wei,WU Hang-bin. Terrain Complexity Factor and Its Relationship with Accuracy of Dem Terrain Repre-sentation[J].Geomatics and Information Science of Wuhan University,2009,34(9):1014-1020.

上一篇:模板工程安装要点及设计计算分析 下一篇:UPS电源概念特征以及比较分析