基于OpenGL 的三维地形可视化技术

合集下载

基于OpenGL的三维模拟地形的实现

基于OpenGL的三维模拟地形的实现

法 向量 N=N+ 2N+ 44 r( lN + 3N ) 。 /

使用 D M( 字 高程 模 型 ) 式 的地 形 高度 数 据 , E 数 格 即 按矩形 网格采样 的地形 高度数值[ 1 1 。
OeG p n L是 S I 司开发 的 。可独 立于操 作 系统 G 公 和硬 件环境 的三维 图形库 。 强大 的图形 操作 功能 和跨
面是最 小 的图形基元 . 于三角 面 的各 种几何 算法 最 基
简单 、 可靠 , 最 构成 的系统性 能最优 。又 由于 O e G pn L 只 能处理 凸多边形 . 因此常常选 用三 角面构 造地 形模 型。 三角 形的 明亮 程度 除取决 于光源 和明暗处理 方式
代 计 成是 三维地形 网格点 的高程值 。 而三维地 形 的颜色也 算 可 以用原始记 录 的相 关函数来 表示 ,采用 纹理 映射 。 机
环并传递 这些 多边形 。 那速 度是很 慢 的。 因此为 了加 快 显 示速 度 , 以使 用 空间 分割 , 可 只对 摄像 机 漫游 时 看见 的多边形 所在 区域进行作 画 。 在调用 显示 区域之 前 , 过旋 转 、 移 、 照 、 质 的设 定来 实 现需要 的 通 平 光 材
维普资讯
实 践 与经 验
蒋 亚 军
( 湖南科 技学 院计算 机与信 息科 学系 , 永州 4 5 0 ) 20 6
摘 要 :在 Wid ws 台上 。 用 Vi a C+ no 平 利 s l +集成 环境 , u 结合 Op n L图形 函数库构 建三 雏模拟 地形 , eG



外 , 受到点 与面 的法 向量 的影响 。一般 点 的法 向量 还 取 值为其 周 围法 向量 的均值四 如 图 1 。 所示 , 顶点 P的

DEM在OpenGL中的三维显示

DEM在OpenGL中的三维显示

因此在专业软件中要先生成 DEM 数据 , 然后转换成 ASCII
文件 , 由 VC + + 610 直接从 ASCII 文件中读取 , 并借助于
OpenGL 函数进行三维可视化 。所以 , DEM 数据的转化其实
质是将专业软件中的 DEM 数据格式转换成 ASCII 文件 , 并
用 VC + + 610 进行读取 。
(上接第 70 页) 式显示如下图 :
信 息 化 与 网 络 建 设
用颜色表示高程效果如下图 :
3 结束语
本文用 VC + + 610 的 OpenGL 函数将地形与地物的可视 化进行了整合可视化研究 。从实践出发说明了二者进行整
合的具体实施方法 。在此基础上 , 还可以利用 OpenGl 的纹 理映射技术实现三维地形的真实感显示 , 也可以利用动画 技术实现动态地形仿真 , 对地形数据库实时地进行局部修 改 , 呈现新的地形地貌 , 模拟自然或人为原因形成的山地 的滑坡坍塌 、桥梁坍塌 、道路阻断 、山脉的隆起过程 、洪 水蔓延 、河道断流等现象 , 真正实现实体与环境的交互 。
2 具体实现
211 地形的生成
在 ArcView 中进行数据建模 , 生成 DEM 数据 。首先由
等高线内插建立 TIN , 再将 TIN 数据转化成 GRID 数据 。为
了在 OpenGL 中进行模型变换 , 将 ArcView 数 据 导 出 生 成
ASCII 文件 。其中数据部分为高程数据 。
参考文献
[1 ] 滕进. 利用 ARCΠINFO 进行三维地形模型的建立 、处理 和动态模拟 [J ] . 解放军测绘学院学报 , 1998. [2 ] 薛安 , 马蔼乃 , 李天宏. 基于 OpenGl 实现真实感地形 表现的研究 [J ] . 中国图像图形学报 , 2001. [3 ] 许妙忠. 数字地面模型的生产和应用 [J ] . 测绘信息 与工程 , 2001. [4 ] 江早. OpenGL VCΠVB 图形编程 [M] . 北京 : 科学出版 社 , 2001. [5 ] 乔林 , 费广正等. 程序设计 OpenGL [M] . 北京 : 清华 大学出版社 , 2000. [6 ] 李志林 , 朱庆. 数字高程模型 [ M] . 武汉 : 武汉测绘 科技大学出版社 , 2000 : 12 —60.

基于OpenGL的三维地形渲染LOD算法研究

基于OpenGL的三维地形渲染LOD算法研究

基于 OpenGL的三维地形渲染 LOD算法研究摘要三维地形渲染目前已经应用于画面显示、军事地图等图像处理领域。

随着虚拟技术的进步,算法复杂提高导致大数据地形下实时真实感显示的技术达到瓶颈。

基于OpenGL的层次细节(LOD)算法能有效减少地形渲染过程中三角形的数量,以达到渲染高效实时的目的。

关键词: OpenGL,层次细节,LOD,地形渲染1 概述OpenGL是用于渲染图形的应用程序编程接口,包括近350个图形函数,用于绘制从简单的图形比特到复杂的三维景象。

OpenGL能实现高性能的三维图形功能,具有广泛的移植性。

使用OpenGL进行三维地形渲染的时候,由于地形数据过多时渲染效率低下。

动态LOD算法采用动态精度等级,有效的减少渲染三角形数量,提高渲染效果。

2 LOD算法地形渲染时三维场景的核心,渲染的质量和效率关系整个场景渲染的结果。

为了渲染出更加贴近现实的地形,地形网格越精细渲染出来的结果越好。

但是网格精细带来系统的开销就越大,影响渲染的效率。

地形算法的设计主要是为了解决地形渲染质量和效率的取舍问题,LOD算法从场景的本身的几何特性入手,通过适当的方法简化场景的复杂性。

层次细节(Levels of Details)算法是从人的视觉特性出发提出的一种算法。

当场景中的物体离观察者很远的时候,投影到屏幕上可能是几个像素,不需要高精细等级。

当场景中的物体很平坦的时候,可以合并多个三角形再提高渲染效率。

2.1 基本思想LOD算法进行地形渲染之前规定为:地形必须是正方形区域,而且大小必须是(2^n +1)*(2^n+1),同时采样间隔为均匀的。

采样四叉树进行LOD算法处理。

具体实现思想如下:将一个地形一分为四,用递归的方法对每个网格进行处理。

对每个分割的网格,如果达到精细程度要求或者最高精细程度,将地形顶点送到渲染API进行渲染,否则对网格递归分割下去。

2.2 结点评价将分割过程中的每一个网格视为四叉树的一个结点,对于分割何时达到精细程度,我们需要建立一个结点评价系统来判断。

基于OpenGL的三维场景渲染技术与优化研究

基于OpenGL的三维场景渲染技术与优化研究

基于OpenGL的三维场景渲染技术与优化研究随着科技的发展和人们对视觉体验的需求不断提高,三维场景渲染技术在各个领域中的应用逐渐普及。

而在实现三维场景渲染的过程中,OpenGL作为一种底层API在各个平台上拥有广泛的应用,其渲染效率和灵活性也得到了广泛认可。

因此,基于OpenGL的三维场景渲染技术与优化研究,成为了当前亟需解决的问题之一。

一、基于OpenGL的三维场景渲染技术OpenGL作为一种底层API,它提供了一系列的API函数,可以方便地实现3D图形的绘制和渲染。

在基于OpenGL的三维场景渲染中,最基本的工作是将3D模型转换为OpenGL可以渲染的三角形网格,并将其存储在显存中。

接下来通过OpenGL提供的矩阵变换函数,将这些三角形进行平移、旋转、缩放等变换操作,并根据相机位置,利用透视投影算法,将三维场景渲染到二维屏幕上。

在三维场景的渲染过程中,除了上述基本的渲染流程外,常用的渲染技术还包括光照、阴影、纹理贴图、抗锯齿等。

其中光照技术是模拟真实世界中光线的传播和反射,为三维模型增加了真实感。

阴影技术是模拟真实世界中物体之间的遮挡和光线的阻挡,同样也是提高三维模型真实感的重要手段。

纹理贴图技术则是为3D模型增加纹理效果,进一步增强了真实感。

而抗锯齿技术则是为了消除图形边缘的锯齿感,使得3D模型更加平滑。

二、基于OpenGL的三维场景渲染优化研究在当前的计算机硬件水平下,一些大型的场景,如城市、森林等,往往需要渲染大量的三角形网格,因此需要采取一些优化手段来提高渲染效率和质量。

1、场景剔除当前可见性算法是解决场景中物体数量过多,导致渲染效率低下的一种方法。

基于此,场景剔除技术得到了广泛的应用。

场景剔除技术是指将游戏场景中不可见或遮挡的3D物体剔除掉,提高渲染效率。

其中,视锥体剔除是常用的一种场景剔除方法,其基本思路是先将整个场景中的物体进行投影,然后将视图中不在视锥内的物体从渲染队列中移除。

基于OpenGL的三维动画效果设计与实现

基于OpenGL的三维动画效果设计与实现

基于OpenGL的三维动画效果设计与实现OpenGL是一种跨平台的图形库,广泛应用于计算机图形学、游戏开发和虚拟现实等领域。

在OpenGL的基础上,可以实现各种精美的三维动画效果,如逼真的光影效果、自然的物理模拟和华丽的特效等。

本文将介绍如何基于OpenGL实现三维动画效果。

一、OpenGL简介OpenGL(Open Graphics Library)是一种跨平台的图形库,可以用于开发高性能的3D图形应用程序。

它提供了一套标准的API,程序员可以使用OpenGL库里的函数来绘制各种图形,包括点、线、三角形等。

OpenGL的主要优点是跨平台,程序可以在不同的操作系统和硬件上运行,并且不需要对程序做太多的修改。

二、OpenGL开发环境在开始OpenGL开发之前,需要配置正确的开发环境。

OpenGL的开发环境包括编程语言、OpenGL库、窗口系统和OpenGL的开发工具等。

编程语言:OpenGL支持多种编程语言,如C/C++、Java、Python等。

其中,C/C++是最常用的开发语言,因为它可以直接调用OpenGL的函数库。

OpenGL库:OpenGL库是开发OpenGL程序时必须的工具,它包含了OpenGL 的所有函数和常量。

窗口系统:OpenGL需要一个可视化的窗口系统,用来显示图形界面。

常用的窗口系统有Windows、Linux和MacOS等。

开发工具:开发OpenGL程序需要使用各种IDE和编辑器,如Visual Studio、CodeBlocks和Eclipse等。

三、实现三维动画效果的基础知识1.三维坐标系OpenGL使用右手坐标系表示三维坐标系,其中x轴向右,y轴向上,z轴向外。

2.矩阵变换OpenGL可以通过矩阵变换来实现图形的移动、旋转、缩放等操作。

常用的变换矩阵包括平移矩阵、旋转矩阵和缩放矩阵。

3.光照模型光照模型是OpenGL中重要的概念之一,它用来计算光源对物体的影响。

其中,主要包括光源的位置、光线的颜色和强度等因素。

基于OPENGL的三维地形的实现

基于OPENGL的三维地形的实现

图 3 剔除后的部分 上面对四叉树的剔除的过程进行了介绍,可以看到,相 当大的领域可以一次完成对视景体的判定及剔除。不使用四 叉树直接对视景体进行剔出的话,所有节点都必须进行视景 体的判定,利用四叉树的特点可以一次完成相当大领域的剔 除操作,这也是地形处理时使用四叉树的理由。 3.LOD LOD 就是分阶段调整网格建模数据的精密度,可以分为 静态 LOD 和动态 LOD。 静态 LOD 的特点就是在最初就确定的网格的精密度,它 的优点在于运算简单速度快但是需要分几个阶段,存储器严 重浪费,距离不同,网格的阶段急剧变化,很容易出现这样 现象。动态 LOD 技术则可以解决走样现象。 动态 LOD 的技术是根据摄像机与物体的距离实时调整 网格精密度,该方法一般可以分为网格分割技巧和网格精简 技巧,其优点在于可以自然生成 LOD,不会出现走样现象, 也不会浪费存储器,但是网格分割和网格精简,需要增加运 算量,速度相对有所减慢。地形处理中常用的是动态 LOD, 由于我们需要在画面上对地形建筑物等进行实时绘制,尽管 在一定程度上降低了的质量、渲染速度有了很大提高;仔细 观察一下 LOD 分割形成的阶段;可以发现于四叉树子节点分 割十分相似;由于我们使用了四叉树,也就有了可以相当简 便的使用 LOD 的方法下图表现了摄像机和各个节点的中点 距离不同时得子节点分割关系,与摄像机距离远的节点不进 行之子节点的渲染,只是在各自阶段进行渲染,相对来讲与 摄像机距离越近,就越需要对下层子节点进行渲染。
[2] (韩)金荣俊.3D 游戏编程.[M].北京:电子工业出版 社.2006.
可以防止龟裂的产生,需要按照上下左右四个方向在 LOD 阶
段不同的所以节点添加不同的三角形。 三、性能对比和总结
1.性能对比 (配置:显卡:ATI RADEON 7000;

基于OpenGL的地层模型三维可视化图形显示方法

基于OpenGL的地层模型三维可视化图形显示方法

基于OpenGL的地层模型三维可视化图形显示方法
李芳玉;陈传波;钟宝荣
【期刊名称】《石油天然气学报》
【年(卷),期】2001(023)001
【摘要】地质实体三维可视化图形显示,可以使地质工作者直观地看到地质现象的几何形态、相互关系和分布,准确地进行科学分析。

简要介绍了三维图形标准OpenGL的功能,建立了地层模型及其颜色模型,并在微机上实现了地层模型的显示与剖切。

【总页数】2页(P20-21)
【作者】李芳玉;陈传波;钟宝荣
【作者单位】华中科技大学计算机科学系,;华中科技大学计算机科学系,;江汉石油学院计算机科学系,
【正文语种】中文
【中图分类】P628.3;TP391.41
【相关文献】
1.一种利用OpenGL实现复杂3DS模型动画实时显示方法 [J], 王晶杰;胡平平
2.基于OpenGL的铁路轨枕模型的三维可视化研究与实现 [J], 杨艳华;杨维芳;张志华
3.基于Web的矢量图形和三维模型的创建与显示方法 [J], 张士芬;冯开平
4.基于OpenGL规范的核电厂信息化模型三维图形引擎技术自主化研究 [J], 蔡正
皓;赵玉娟
5.地层三维建模及OpenGL下三维可视化研究 [J], 刘少华;程朋根;罗小龙;吴东胜因版权原因,仅展示原文概要,查看原文内容请购买。

基于OpenGL ES的移动终端三维地图可视化

基于OpenGL ES的移动终端三维地图可视化

基于OpenGL ES的移动终端三维地图可视化孙伟;李瑞豹;丁伟;闫慧芳【期刊名称】《计算机应用与软件》【年(卷),期】2017(034)003【摘要】移动智能设备正迅速成为地图服务的增值平台,基于Android系统平台的移动地图服务技术逐渐成为研究热点,由此设计基于OpenGL ES的三维地图可视化客户端系统.通过调用Android百度地图API实现基本地图操作、导航、路径规划、公交路线查询、POI搜索等功能,使用OpenGL ES加载OBJ文件到移动设备中实现三维地图模型放大、缩小和旋转视角等功能,通过开发校园三维地图可视化应用软件验证方案设计的可行性.%Mobile intelligent devices are now becoming a value-added platform of map service at an exceeding speed, which makes moving map service based on Android platform a research hotspot.A 3D map visualization client system was designed to realize the function of basic map operation, navigation, path planning, bus route query and POI search by calling the Android Baidu map API.Moreover, using OpenGL ES to load OBJ files to the mobile device to realize 3D map model functions such as zoom in, zoom out and rotation angle.The feasibility of the designed scheme was verified by developing the campus map of 3D visualization application software.【总页数】6页(P154-159)【作者】孙伟;李瑞豹;丁伟;闫慧芳【作者单位】辽宁工程技术大学测绘与地理科学学院辽宁阜新 123000;辽宁工程技术大学测绘与地理科学学院辽宁阜新 123000;辽宁工程技术大学测绘与地理科学学院辽宁阜新 123000;辽宁工程技术大学测绘与地理科学学院辽宁阜新123000【正文语种】中文【中图分类】TP3【相关文献】1.基于OpenGL ES的齿轮r参数化建模及其移动端可视化研究 [J], 张海林;邹欣;孙津原2.基于 OpenGL ES的二三维地图可视化客户端设计与实现 [J], 王亚美;鲁田3.基于OpenGL的三维地图场景制作初探 [J], 谢俊峰;李庆田4.基于OpenGL ES的齿轮参数化建模及其移动端可视化研究 [J], 张海林;邹欣;孙津原5.基于Excel三维地图的洗钱犯罪可视化情报分析 [J], 陈柯安因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 基于OpenGL 的三维地形可视化技术 摘要:三维地形可视化技术一直是地理信息系统、数字摄影测量、虚拟现实等领域的研究热点。对OpenGL发展现状、数字地面模型和构网技术进行了对比研究,重点讨论了利用Visual C++ 6.0平台和OpenGL编程技术,建立虚拟地形三维可视化系统的实现过程和关键技术。通过实验数据模拟, 实现了三维地形可视化。 关键词:OpenGL;三维;地形;可视化

1 引言 我国政府从国家战略高度将“数字地球”列为中国21世纪的战略目标之一,并提出了“数字中国”战略。“数字地球”强调对地球的三维描述,在实现这一使命的过程中,需要有现代空间信息科学技术的支撑,三维地形可视化的具有重大研究意义。三维地形可视化的应用涉及地理信息系统、虚拟现实(VR)、环境仿真、数字城市、地形的穿越飞行、国土资源管理、娱乐与游戏、气象数据、空间分析等领域。三维真实感地形图能够逼真的反应外部真实世界,相对传统的纸质地图和计算机生成的地图,三维真实感地形图具有可视化程度高、存储和查询方便、可实时生成等优点。因此地形三维显示有着广阔的应用背景,所以受到了广泛的关注。

2 OpenGL简介 人们对计算机可视化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中Silicon Graphics Incorporated(SGI公司)推出的GL三维图形库表现突出,易于使用而且功能强大。随着计算机技术的继续发展,GL已经进一步发展成为开放图形程序库(open graphics library,OpenGL),并被集成到Unix、Windows 2000、Windows XP等窗口操作系统中。OpenGL被认为是高性能图形和交互式视景处理的标准。 OpenGL是指开放图形程序库,实际上是一种图形与硬件的接口。它集成了所有几何建模、图形变换、光源设置、材质设置、纹理映射、运动模糊、像素操作、融合、反走样技术、雾化等复杂的计算机图形学算法,其中包括120个图形函数,开发者可以用这些函数来绘制点、线、多边形、面,建立三维模型和进行三维实时交互。 为了利用Visual C++6.0的强大功能来实现对OpenGL三维图像的绘制,Windows提供了OpenGL32.DLL和GLU32.DLL动态链接库,Visual C++6.0包含了GL库(opengl32.lib)、辅助库(glaux.lib)和实用库(glu32.lib),开发者可以在多种硬件平台及操作系统下方便的利用这个图形库,使我们方便地编程,简单、快速的生成美观、漂亮的复杂的三维彩色图形,并且OpenGL在网络上工作时,显示图形的计算机(客户端)可不是运行图形程序的计算机(服务器),客户机与服务器可是不同类型的机器,只要两者服从相同的协议。

3 基于OpenGL的三维地形显示的实现过程及关键技术 地形是自然界复杂的景物,三维地形是模拟自然界环境中不可缺少的重要组成部分,因此三维真实感地形的绘制一直是国内外计算机图形学领域关注的热点。三维真实感地形的生成通常分为两步:①地形建模,即选择合适的地形建模方法控制地形轮廓;②地貌特征模拟,即采用有效的技术呈现丰富的地貌特征。 目前地形建模常用方法是曲面造型方法和高度场方法。曲面造型方法是首先用几何造型方法生成的曲面刻画地形的大致形状,然后利用纹理合成技术生成地表丰富细节,高度场的方法是把地域视为一个高度场,采用各种高度场来生成地域的三维模型。该过程可以借助AUTOCAD和3DMAX等建模工具,也可以直接利用OpenGL或VEML等专用建模语言完成建模。 2

三维地形模拟的基本流程如图1 所示。 (1)参数设置 在用OpenGL绘制三维地形模型之前,还要设置一些相关的参数。这些参数包括光源参数的设置(光源性质、光源位置)、颜色模式(索引、RGBA)等。 (2)地形模型映射 地形模型映射就是把数字地形数据转成OpenGL的基本格式,并计算相关的参数的过程。相关的参数包括顶点颜色和法向量等。

顶点法向量的计算:法向量(亦称法向)是面上某一点处垂直于该面的向量。几何对象的法向量定义它在空间中的方向,特别定义相对于光源的方向,因此某顶点的法向量决定了对象在该点上可接受多少光照。①计算三角形面法向量。在三维环境中,每个面都具有两个方向,因此计算三角形法向量时必须按相同的顺序(顺时针或逆时针) 从三角形中找出两条有向边,计算其叉积,得到的结果就是该三角形的法向量,并要对结果进行单位化。②计算顶点法向量。在三维环境中,每个面都具有两个方向,因此计算三角形法向量时必须计算每个顶点的法向量。 顶点颜色的设置:如果地表模型不粘贴纹理影像,则可以采用地势图中分层设色的原理来对三维地形模型进行分层设色,分层设色即根据不同的高度段用不同的颜色绘制。 (3)投影变换 投影变换的目的是将三维场景中的物体投影到二维平面上, 这个二维平面就是显示窗口。投影变换有2种: 一种是透视投影, 这种投影的效果与人眼观察世界的效果相同,距离视点越远的物体看起来越小, 距离视点越近的物体看起来越大, 符合人们的视觉习惯, 透视投影的应用比较广泛, 通常用到视景仿真和模拟真实场景的应用程序中, 另一种是正交投影, 它的最大特点是无论物体距离视点多远, 投影后的尺寸不变, 投影变换是使用矩阵变换来实现的, 在进行投影变换之前必须调用GLMATRIXMODE 函数将当前矩阵的类型设置为投影矩阵。 (4)视口变换 视口是指计算机屏幕中的矩形绘图区域,它用窗口坐标来度量,反映了屏幕上的像素位置。视口变换就是将视景体内投影的物体显示在二维的视口平面上。通常,调用函数glViewport()来定义一个视口,这个过程类似于将照片放大或缩小。视口变换中视口的宽高比通常等于视景体的宽高比,否则视口内显示的图形将会发生形变。 (5)纹理映射 地形的真实性是地形可视化的重要组成部分,随着计算机硬件和软件水平的不断提高,人们对地形的真实性要求也越来越高,除了利用光照模型使地形产生明暗起伏的效果外,为了提高地形的真实性,往往可以通过贴加纹理图像来实现其过程为:①定义纹理。纹理通常被认为是二维的, 但纹理也可以是一维或三维的, 通过函数指定一个二维纹理, 其中包含了纹理图像的大小, 纹理图像数据的数据格式和数据类型以及存储在内存中的图像数据指针等。②控制纹理。用来说明纹理以何种方式映射到三维模型的表面上, 一种方法是: 将纹理颜色作为最终的颜色, 另一种方法是: 使用纹理来调整片元的颜色值, 还有一种就是将一种

DEM数据 纹理数据

参数设置 地形模型映射 视点变换 模型变换 投影变换 视口变换

三维地形图

图1 三维地形模拟的基本流程 3

常量颜色和片元混合起来。③启用纹理映射。绘制场景之前需要启用纹理映射。要启用和禁用纹理映射, 可以调用孙数。调用这些孙数时可以使用一维、二维、三维和立方图纹理映射。④纹理坐标和绘制场景。粘贴纹理之前, 必须指定纹理和片元之间的对应关系, 也就是说, 在场景中绘制物体时,必须指定纹理坐标和几何坐标。 (6)动态显示的实现 三维电子地图的动态表现是实现交互式操作的前提。三维地形显示方式主要有两种:第1 种视点不动目标移动;第2 种视点和目标实时运动。从本质上讲,两种显示方式都是采用改变投影变换矩阵或模型变换矩阵的方式来实现的。①视点不动目标移动。视点不动目标移动的实时显示方式实现起来比较简单,可以采用两种基本投影:平行投影和透视投影。在投影设置完毕后,就可以通过实时改变基本模型变换矩阵如平移、旋转、比例缩放等相应的参数来改变目标物体在对应投影方式下的实时显示效果。②视点和目标实时移动。实时改变视点和目标点(即改变视线) 是三维地形实时显示通常采用的方法。视点和目标点的变化可以是沿指定的路径移动,也可以用鼠标、键盘或其它设备进行交互引导或控制。 此外,为了使模型看起来具有三维立体的感觉, 还应设置一定的光照。当观察物体的表面时, 人眼睛对颜色的感知数取决于进入眼内视锥细胞的光子的能量分布, 这些光子来自于光源或发光物体。一部分被物体表面吸收, 而另一部分则被物体表面反射, 只有反射光和投射光能够进入眼睛, 产生视觉效果, 我们才能看到物体, 这种反射和投射的光决定了物体呈现的亮度和颜色。还可以根据实际情况增加融合, 反走样和雾化等一些特殊的显示效果, 使生成的场景看起来更有真实感。

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

图2 地形仿真图 4

5 结论与展望 Visual C++是一个功能非常强大的编程工具,在VC环境下进行OpenGL的编程,调用dll动态链接库,因此速度不会受到影响。本文通过对区域三维可视化实现方法的研究,阐述了其具体实现过程并给出了实践实例。实例结果表明,三维地形可视化能够交互式地从各个不同的角度更形象更直观地展示三维地形。通过地形表面的可视化, 可以了解研究区域的三维信息特征, 为进一步研究区域地形演变、泥沙冲淤提供实时帮助, 具有很大的实用价值。 随着计算机及图形处理设备性能的不断提高,地形三维可视化技术正向着实时动态显示、交互式控制、具有高度真实感的场景画面显示方向发展。

参考文献 [1] Dave Shreiner,Mason Wooo,Jacier Neider,Tom Davis. OpenGL编程指南[M].北京:机械工业出版社,2009. [2] 勒海亮,高井祥,康建荣. 基于VC和OpenGL的地形三维可视化[J]. 微计算机应用,2006,27(5):577-581. [3] 欧阳溯. 浅议OpenGL的三维地形可视化技术发展[J]. 黑龙江交通科技, 2009, 183:40-42. [4] 郭涛,平西建. 基于OpenGL的三维地形可视化技术研究[J]. 计算机工程与设计, 2008, 29(1):193-195. [5] Wei G, Kirby J T, Sinha A. Generation of waves in Boussinesq models using a source function method[J]. Coastal Engineering, 1999,(36):271-299.

相关文档
最新文档