基于OpenGL 的三维地形可视化技术_第1页
基于OpenGL 的三维地形可视化技术_第2页
基于OpenGL 的三维地形可视化技术_第3页
基于OpenGL 的三维地形可视化技术_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于OpenGL的三维地形可视化技术摘要:三维地形可视化技术一直是地理信息系统、数字摄影测量、虚拟现实等领域的研究热点。对OpenGL发展现状、数字地面模型和构网技术进行了对比研究,重点讨论了利用VisualC+6.0平台和OpenGL编程技术,建立虚拟地形三维可视化系统的实现过程和关键技术。通过实验数据模拟,实现了三维地形可视化。关键词:OpenGL;三维;地形;可视化引言我国政府从国家战略高度将“数字地球”列为中国21世纪的战略目标之一,并提出了“数字中国”战略。“数字地球”强调对地球的三维描述,在实现这一使命的过程中,需要有现代空间信息科学技术的支撑,三维地形可视化的具有重大研究意义。

2、三维地形可视化的应用涉及地理信息系统、虚拟现实(VR)、环境仿真、数字城市、地形的穿越飞行、国土资源管理、娱乐与游戏、气象数据、空间分析等领域。三维真实感地形图能够逼真的反应外部真实世界,相对传统的纸质地图和计算机生成的地图,三维真实感地形图具有可视化程度高、存储和查询方便、可实时生成等优点。因此地形三维显示有着广阔的应用背景,所以受到了广泛的关注。OpenGL简介人们对计算机可视化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中SiliconGraphicsIncorporated(SGI公司)推出的GL三维图形库表现突出,易于使用而且功能强大。随着计算机技术的继续发展,GL

3、已经进一步发展成为开放图形程序库(opengraphicslibrary,OpenGL),并被集成到Unix、Windows2000、WindowsXP等窗口操作系统中。OpenGL被认为是高性能图形和交互式视景处理的标准。OpenGL是指开放图形程序库,实际上是一种图形与硬件的接口。它集成了所有几何建模、图形变换、光源设置、材质设置、纹理映射、运动模糊、像素操作、融合、反走样技术、雾化等复杂的计算机图形学算法,其中包括120个图形函数,开发者可以用这些函数来绘制点、线、多边形、面,建立三维模型和进行三维实时交互。为了利用VisualC+6.0的强大功能来实现对OpenGL三维图像的绘制,Wi

4、ndows提供了OpenGL32.DLL和GLU32.DLL动态链接库,VisualC+6.0包含了61库(opengl32.lib)、辅助库(glaux.lib)和实用库(glu32.lib),开发者可以在多种硬件平台及操作系统下方便的利用这个图形库,使我们方便地编程,简单、快速的生成美观、漂亮的复杂的三维彩色图形,并且OpenGL在网络上工作时,显示图形的计算机(客户端)可不是运行图形程序的计算机(服务器),客户机与服务器可是不同类型的机器,只要两者服从相同的协议。基于OpenGL的三维地形显示的实现过程及关键技术地形是自然界复杂的景物,三维地形是模拟自然界环境中不可缺少的重要组成部分,因

5、此三维真实感地形的绘制一直是国内外计算机图形学领域关注的热点。三维真实感地形的生成通常分为两步:地形建模,即选择合适的地形建模方法控制地形轮廓;地貌特征模拟,即采用有效的技术呈现丰富的地貌特征。目前地形建模常用方法是曲面造型方法和高度场方法。曲面造型方法是首先用几何造型方法生成的曲面刻画地形的大致形状,然后利用纹理合成技术生成地表丰富细节,高度场的方法是把地域视为一个高度场,采用各种高度场来生成地域的三维模型。该过程可以借助AUTOCAD和3DMAX等建模工具,也可以直接利用OpenGL或VEML等专用建模语言完成建模。三维地形模拟的基本流程如图1所示。参数设置在用OpenGL绘制三维地形模型

6、之前,还要设置一些相关的参数。这些参数包括光源参数的设置(光源性质、光源位置)、颜色模式(索引、RGBA)等。地形模型映射地形模型映射就是把数字地形数据转成OpenGL的基本格式,并计算相关的参数的过程。相关的参数包括顶点颜色和法向量等。DEM数据纹理数据参数设置地形模型映射视点变换模型变换投影变换视口变换三维地形图图1三维地形模拟的基本流程顶点法向量的计算:法向量(亦称法向)是面上某一点处垂直于该面的向量。几何对象的法向量定义它在空间中的方向,特别定义相对于光源的方向,因此某顶点的法向量决定了对象在该点上可接受多少光照。计算三角形面法向量。在三维环境中,每个面都具有两个方向,因此计算三角形法

7、向量时必须按相同的顺序(顺时针或逆时针)从三角形中找出两条有向边,计算其叉积,得到的结果就是该三角形的法向量,并要对结果进行单位化。计算顶点法向量。在三维环境中,每个面都具有两个方向,因此计算三角形法向量时必须计算每个顶点的法向量。顶点颜色的设置:如果地表模型不粘贴纹理影像,则可以采用地势图中分层设色的原理来对三维地形模型进行分层设色,分层设色即根据不同的高度段用不同的颜色绘制。投影变换投影变换的目的是将三维场景中的物体投影到二维平面上,这个二维平面就是显示窗口。投影变换有2种:一种是透视投影,这种投影的效果与人眼观察世界的效果相同,距离视点越远的物体看起来越小,距离视点越近的物体看起来越大,

8、符合人们的视觉习惯,透视投影的应用比较广泛,通常用到视景仿真和模拟真实场景的应用程序中,另一种是正交投影,它的最大特点是无论物体距离视点多远,投影后的尺寸不变,投影变换是使用矩阵变换来实现的,在进行投影变换之前必须调用GLMATRIXMODE函数将当前矩阵的类型设置为投影矩阵。视口变换视口是指计算机屏幕中的矩形绘图区域,它用窗口坐标来度量,反映了屏幕上的像素位置。视口变换就是将视景体内投影的物体显示在二维的视口平面上。通常,调用函数glViewport()来定义一个视口,这个过程类似于将照片放大或缩小。视口变换中视口的宽高比通常等于视景体的宽高比,否则视口内显示的图形将会发生形变。纹理映射地形

9、的真实性是地形可视化的重要组成部分,随着计算机硬件和软件水平的不断提高人们对地形的真实性要求也越来越高,除了利用光照模型使地形产生明暗起伏的效果外,为了提高地形的真实性,往往可以通过贴加纹理图像来实现其过程为:定义纹理。纹理通常被认为是二维的,但纹理也可以是一维或三维的,通过函数指定一个二维纹理,其中包含了纹理图像的大小,纹理图像数据的数据格式和数据类型以及存储在内存中的图像数据指针等。控制纹理。用来说明纹理以何种方式映射到三维模型的表面上一种方法是:将纹理颜色作为最终的颜色,另一种方法是:使用纹理来调整片元的颜色值,还有一种就是将一种常量颜色和片元混合起来。启用纹理映射。绘制场景之前需要启用

10、纹理映射。要启用和禁用纹理映射,可以调用孙数。调用这些孙数时可以使用一维、二维、三维和立方图纹理映射。纹理坐标和绘制场景。粘贴纹理之前,必须指定纹理和片元之间的对应关系,也就是说,在场景中绘制物体时,必须指定纹理坐标和几何坐标。动态显示的实现三维电子地图的动态表现是实现交互式操作的前提。三维地形显示方式主要有两种:第1种视点不动目标移动;第2种视点和目标实时运动。从本质上讲,两种显示方式都是采用改变投影变换矩阵或模型变换矩阵的方式来实现的。视点不动目标移动。视点不动目标移动的实时显示方式实现起来比较简单,可以采用两种基本投影:平行投影和透视投影。在投影设置完毕后,就可以通过实时改变基本模型变换

11、矩阵如平移、旋转、比例缩放等相应的参数来改变目标物体在对应投影方式下的实时显示效果。视点和目标实时移动。实时改变视点和目标点(即改变视线)是三维地形实时显示通常采用的方法。视点和目标点的变化可以是沿指定的路径移动,也可以用鼠标、键盘或其它设备进行交互引导或控制。此外,为了使模型看起来具有三维立体的感觉,还应设置一定的光照。当观察物体的表面时,人眼睛对颜色的感知数取决于进入眼内视锥细胞的光子的能量分布,这些光子来自于光源或发光物体。一部分被物体表面吸收,而另一部分则被物体表面反射,只有反射光和投射光能够进入眼睛,产生视觉效果,我们才能看到物体,这种反射和投射的光决定了物体呈现的亮度和颜色。还可以

12、根据实际情况增加融合,反走样和雾化等一些特殊的显示效果,使生成的场景看起来更有真实感。4三维真实感地形生成实例结合相关研究工作的理论和方法,利用VisualC+6.0平台和OpenGL编程技术,开发了一个实验程序,对以上三维地形仿真技术进行实验和验证。本实验程序以三维电子地图的数据为操作对象,可以实现地形三维数据的三维显示、透视投影与正射投影的转换、三维地形的分层设色、纹理的加载、雾化效果的设置以及相对高度差的改变等功能。具体实现过程为:打开对应的三维电子地图数据,就可以看到具有明显地形起伏的三维图;如果根据实际情况映射对应纹理图像,即可获得较为逼真的仿真结果。以来自某地区的DEM数据为例,仿

13、真效果图如图2所示。5结论与展望VisualC+是一个功能非常强大的编程工具,在VC环境下进行OpenGL的编程,调用dll动态链接库,因此速度不会受到影响。本文通过对区域三维可视化实现方法的研究,阐述了其具体实现过程并给出了实践实例。实例结果表明,三维地形可视化能够交互式地从各个不同的角度更形象更直观地展示三维地形。通过地形表面的可视化,可以了解研究区域的三维信息特征,为进一步研究区域地形演变、泥沙冲淤提供实时帮助,具有很大的实用价值。随着计算机及图形处理设备性能的不断提高,地形三维可视化技术正向着实时动态显示、交互式控制、具有高度真实感的场景画面显示方向发展。参考文献DaveShreiner,MasonWooojacierNeider,TomDavis.OpenGL编程指南M.北京:机械工业出版社,2009.勒海亮,高井祥,康建荣.基于VC和OpenGL的地形三维可视化J.微计算机应用,2006,27(5):577-581.欧阳溯.浅议OpenGL的三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论