【关键词】高程图 LOD OpenGL 三维地形
1 引言
本设计主要工作是首先对系统进行需求
分析;其次阐述了结构化程序设计的基本思想;
然后在需求分析的基础上,详细描述了整体设
计过程,包括数据结构的设计、功能模块的设
计,最后用C 语言编程实现;最后对系统的
功能进行测试及结果分析。
实现基于高度图的地形建模技术,采用
OpenGL 图像绘制语言实现地形的真实感绘制
及交互式漫游,实现一个用户可以交互操作的
地形绘制程序。
2 三维地形建模
本文设计并实现一个基于高程图技术的
地形绘制系统。该系统具有的功能如下:掌握
基于高度图的地形建模技术,采用OpenGL 绘
制语言实现地形的真实感绘制及交互式漫游,
实现一个用户可以交互操作的地形绘制程序。
首先,应该初始化OpenGL 环境,包括
生成绘制描述表,一些全局控制变量的初始赋
值,光照位置和渲染、颜色方式初始化,地形
网格数据初始化,纹理图片的加载,纹理方式
选择,平滑和渲染方式的选择。只有初始化适
当,程序才能后续绘制。
我们还应该设置一个计时器,目的是为
了漫游时实时进行地形视角的更新。计时器可
以设置为每隔20ms 触发一次,每次触发时的
回调函数负责更新视角位置,视角运动速度,
视角前进方向,并以此刷新场景。设置计时器
语句如下:
SetTimer(1, 20, NULL);
接下来是初始化地形数据,由于算法是
是采用网格化地形,网格地形数据用二维矩阵
来存放,所以初始化地形数据就是给地形矩阵
分配空间并初始化。
文/刘盛意 王志鹏 陈癸伶
在计算机图形学领域,三维
高程图显示是一个重要的研究方
向。地形三维建模及可视化技术
是是三维地理信息系统重要研究
内容, 它能使地理信息更直观、
更形象地展现在人们面前。本文
主要采用的是OpenGL 来对高程图
进行绘制,在未来的二次图像重
建技术方向有广阔的应用前景。
因此, 研究如何快速实现地形的
建模以及三维可视化就有非常重
要的意义。
摘 要
一般采用俯瞰视角,这样才能尽可能接近真实
地,自然地观看到地形的全貌。
接下来便是建立四叉树,后来的绘制和
纹理贴图都是基于这棵树,这棵树即要绘制的
地形。
刚才初始化的地形数据,被用来在绘制
地形,每当按下空格键,便会产生新的地形,
实际上是产生新的地形参数,然后这些参数被
实时调用,来绘制新的地形。
有了实时地形数据之后,便是绘制地形,
简单的可以理解为把网格上各个点或者说相邻
的点建立联系,进行平滑处理,高程颜色分类。
最重要的是,四叉树本身是递归树,所以在进
行网格数据处理时,是递归进行的,当处理的
网格元尺寸小到一定程度就不再进行递归,而
是直接当做最小单位来处理。对于距离客观世
界的观察视角比较远的网格元,递归的尺寸界
限适当调高,这样其实就是LOD 技术的实际
应用了。
当线框模式的地形绘制完成后,整个地
形就已经呈现出来了,凹凸不平的特点得以呈
现,而且接缝处进行了平滑。但还不真实,更
重要的是,还没有是实现高程图。最后的纹理
贴图实现了这两方面。根据不同的高度层,分
别进行纹理贴图处理,高海拔的地方,贴图颜
色就浅些,低海拔的地区,就用绿色渲染。这
样渲染出来的效果,基本接近真实地貌,而且
非常具有观赏性。
3 OpenGL高程图实现与应用
采用四叉树作为地形绘制的数据结构。
四叉树(Quad Tree)是一种很有名的树状数
据结构。四叉树划分,是通过递归的方法,将
一个矩形区域不断地进行一分为四的划分,直
到某一种条件得到满足为止。多分辨率地形模
型的四叉树构建过程为:把整个地形作为根节
点,从这个根节点出发,检查根节点是否满足
某种分割条件,若不满足,则不分割,并作为
叶子节点保存;否则,递归地把根节点不断地
分割成相等的四个子节点区域,直到不能再分
割为止。最后,将所有叶子节点绘制渲染。分
割的深度越大,得到的分辨率就会越高,即分
割深度每提高一层,采样密度提高一倍。在用
来描述地形的数据结构中,四叉树非常有效。
具体操作过程如下:
(1)初始化地形的最大、最小高度以及
地形的网格间距;
(2)打开一幅位图,计算出位图的高度
和宽度,以及地形的水平、垂直网格数,找出
位图的最大灰度值与最小灰度值;在这一步骤
中,需要注意的是,如果位图图像的宽或高有
冗余( 也就是位图的高度、宽度不是给定的网
格间距的整数倍),则必须剪裁掉冗余的部分,
然后在重新计算实际用到的位图图像的宽和
高;
(3)建立位图的灰度值与地形高程的线
型映射关系;
(4)依据网格交点的灰度值以及线型映
射关系,求出对应于该点的地图的高程值;并
将其存储到两维数组中;
(5) 计算出各个顶点的法线, 利用
OpenGL 的显示技术。绘制地形的三角形面片。
本设计的程序,可以绘制不同地貌,不
同海拔高度的地形,模拟范围非常广。图1、
2 是几种典型的地貌模拟图。
对于即将到来的研究,有几个有趣的趋势
已经确定。其中,有希望的方向可以归纳如下:
第一,性能和交互性的程序方法将继续改善,
往往意味着对GPU 的并行编程。第二,有了
上述的算法作为支撑,在大数据下基于多种传
感器的二次图像重建技术将成为可能。
参考文献
[1] 徐拥军. 基于Google Earth 的高程图制
作方法[J]. 中国西部科技,2010(04).
[2] 贺菁. 基于高程图的光学成像模型[J].
计算机工程,2008(01).
[3] 闫飞. 基于拓扑高程模型的室外三维环
境建模与路径规划 [J]. 自动化学报,
2010(11).
[4] 宋春玉. 基于Google Earth 绘制中小比
例尺高程图可行性研究[J]. 自动化学
报,2013(06).
作者单位
大连东软信息学院电子工程系 辽宁省大连市
116000
图1:远距离整体视图
图2:高海拔地区视图
98 • 电子技术与软件工程 Electronic Technology & Software Engineering