基于osgEarth的地形建模仿真

时间:2022-09-21 06:44:11

基于osgEarth的地形建模仿真

摘 要 本文利用基于金字塔结构的分块地形层次细节(level of detail,LOD)简化算法,较好地解决了大场景建模中速度与精度间的最优化问题。

【关键词】OSG 数字地球 数据

要渲染大场景地形,就需要用到osgEarth,它是基于OSG开发出来,专门用来进行对地形渲染的工具。它所采用的实时数据地形是支持在线跟离线两种模式的。除了可以自己进行地形建模外,还支持从网络上下载实时的地形数据进行渲染和加载。它所支持的地图文件类型多样,包括WCS,TMS和WMS等,还可以直接从一些在线的地形数据服务器下载数据,例如:Google map,Ya-hoo map,ArcGIS Online等。本文主要介绍如何通过osgEarth渲染一个数字地球。

1 基于金字塔结构的地形绘制方法

在大场景环境的三维快速重建过程中,一般采用均匀采样的高度场(digital elevation model,DEM)来表示地形表面。一般的说来,现在所要的地形高程数据都是由卫星拍摄的,卫星影像的精度提高,所传回的数据库也就越大。如此大数据量的场景重建对osgEarth来说实现实时绘制是十分困难的。

为了能实时重建大数据量的地形模型,我们引入一种基于金字塔结构的地形实时绘制框架。金字塔是一种多分辨率层次模型,但在构建金字塔时很难做到分辨率的连续变化,因此我们采用倍率方法构建。可以用一个公式来表示各层的分辨率。

设地形的初始分辨率为r0,倍率为m,则第l层的分辨率 为

rl=r0×ml (2-1)

其中,倍率m可以是任何大于1的整数,一般取值为2,即每2×2个点合称为1个上层点。在这种情况下,如果初始地形分辨率为1米,则第一层的分辨率为2米,第l层的分辨率为2l米,我们只要根据自己所需要的分辨率来选择分层,就会减少很多计算量,这就大大简化了运算。

基于金字塔结构的LOD地形简化算法是通过一系列的层次结构构成一个基于金字塔结构的地形分层组织结构。地形被分为m层,层与层之间的地形分辨率为2,每一层由16个n×n的地形分块组成。定义节点的数据结构为(x,y,z,zl),其中,x,y 表示结点的位置,z表示结点的高程数据,zl是与结点相邻的低一级分辨率层结点的高程数据。每块分块的大小n可以任意取值,但考虑到系统的内存分页,为提高算法速度,减少内存分页的读取次数,同时考虑磁盘读取效率,分块大小为4KB,所以n的取值定为32。因此地形的分块可由图表示,任何一层的LOD分层都可以被看成是由12个地形分块组成。经过金字塔的地形分块可知,视点中心的分块保持原始的DEM数据,对视点中心周围的第一个正方形区域(即LOD的第一层次),在原DEM点阵数据的基础上,每两点取一点进行可视化表达,对LOD的第二层次则每4点取一点进行表达,由此对任一层次n的采样间隔为2n(n =1,2,……)。由此可知试试绘制地形的网格点总数为:

(2-2)

其中 ;n0=n1=……nm

而DEM数据的实际网格点数为:

(2-3)

我们可以假设m=5,那么计算就可以得出通过简化后的sum=65536,而没有经过简化前的suma=4194304,比较发现简化率约为98.4。

通过上述例子,这种通过分层处理的办法能有效降低地形数据的分辨率,而且还能尽量的保留原来地形的特征。这种算法提高了地形绘制速度,几乎可以忽略计算过程的影响。在提高场景绘制速率的同时还能保证图像质量不会出现明显退化。

2 坐标转换

三维世界当中的坐标系较为简单,在OSG当中,其坐标系为:X轴指向屏幕右侧,Y轴指向屏幕里,Z轴指向屏幕上方,人们经常拿向上的坐标轴来命名一个坐标系,因此OSG坐标系也称为Z向坐标系。在实际的转换过程中,坐标上的1单位往往代表1米。

大地坐标系的定义是多方面的,因为地球近似一个椭圆,且随着日积月累,其在不断的变化,因此针对地球的测量有其相对准确性,也就是说在今年测量的地球数据在明年也许重新测量数据将不同。所以在某一次针对地球的测量结果当中会加上其测量年份和大地基准面的标识。

由于地球近似一个椭球体,因此在不同的测量基准面下测量的长轴与短轴及半径都是不同的,从而带来各种数据上的差异,因此各国都经过长期的测量提出了基于自己测量结果的基准面的大地坐标系,比如我国曾提出1980西安坐标系和1954北京坐标系,都是基于不同基础面所得出的大地坐标系。

然而无论哪种测量方法以及基准面,其均会得出地球的长轴、短轴等数据,而其原点均为地心,因此任意两种大地坐标系之间可以实现转化。

3 全球化地形建模

由于地球表面较大,我们在观察某一地点的时候,其它地点的数据没有必要加载或没有必要加载的太为精细,因此人们根据这种差异化的需求提出了图片分层存放与读取的概念。

在现实使用当中,这种转化相当成熟,osgEarth提供了成熟的基于大地坐标系和金字塔数据源的白模生成和瓦片叠加,只需要在earth文件当中定义image标签表示影像来源和height field标签表示高程来源即可,osgEarth将会自动完成调度。在一般情况下,我们只需要10级数据,所以我们就下载10级的数据进行对全球地形建模。下图为在加载10级纹理数据和30米精度的高程数据后显示效果。

4 结论

本文提出利用osgEarth对全球地形进行建模仿真的设计与实现办法,解决了渲染大数据量地形数据库的问题,利用osgEarth来生成白膜,并渲染地形纹理的原理,通过大地坐标和三维世界坐标进行转化对纹理进行叠加得到数字地球。渲染出的10级数字地形,全球化地形建模问题得以解决。

作者单位

哈尔滨工程大学 黑龙江省哈尔滨市 150001

上一篇:浅谈基于条形码的医院高值耗材追溯系统 下一篇:基于DDE通讯的生产数据报表系统设计