首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 专业文献>>正文
基于OpenGL的三维地形图显示方法和应用
2014年4月23日    评论:    分享:

    来源:第三维度
    作者:郭立波 (长江大学地球科学学院)
          赵海燕 (北京联合大学继续教育学院)
          王新海 (长江大学地球科学学院)

     在三维绘图蓬勃发展的过程中 , 计算机公司推出了大量的三维绘图软件包。其中 SGI 公司推出的Open GL , 作为一个性能优越的图形应用程序设计界面 (API) 异军突起 , 取得了很大的成就。它以高图 1  OpenGL 进行地形显示的基本框架性能的交互式三维图形建模能力和易于编程开发 , 得到了 Microsoft , IBM , DEC, Sun ,HP 等大公司的认同。因此 , Open GL 已经成为一种三维图形开发标准 , 是从事三维图形开发工作的必要工具[1] 。

    基于 Open GL 可以很方便地实现地形三维透 视投影变换 , 建立光照模型 , 以及消隐和裁剪 , 最终实现地形图的三维显示 (图 1) 。

基于OpenGL的三维地形图显示方法和应用
图 1  OpenGL 进行地形显示的基本框架

    1  地形模型的映射

    地形模型的映射实际上是一个转化过程 ,是把数字高程模型转化成为 Open GL 的基本格式。目前数字高程模式的表达主要有 3 种 : 不规则三角网 ( TIN) , 规则格网 ( GRID) 和等值线。前面 2 种是应用最广泛的结构形式。但是这些结构形式Open GL 本身是不能识别的 , 所以首先要把 DEM 用 Open GL 原语描述出来 , 转化成 Open GL 可以识别的图形函数。

    Open GL 本身提供了点、线、多边形等基本的建模原语 , 利用这些原语还可以把地形模型数据表示成点形的、线形的以及多边形的原语序列。三角形是最小的图形基元 , 基于三角形面片的各种几何算法最简单、最可靠 , 构成的系统性能最优。另外 , 由于 Open GL 只能够处理凸多边形 , 因此 , 选用三角形来构造地面模型[2] 。下面是对于不规则三角网 ( TIN) 表达的数据直接用 Open GL 原语的描述 :

      glBejin ( GL1 TRIAN GL ES) ;
       glVertex ( x1 , y1 , z1 ) ; glVertes ( x2 , y2 , z2 ) ; glVertes ( x3 , y3 , z3 ) ;
      glEnd ( ) ;

    2  三维真实感地形的生成

    在 Open GL 环境下 , 经过一系列的变换以及光照处理 , 浓淡阴影处理 , 就可以生成具有真实感的三维地形。在用 Open GL 绘制三维地形模型和进行纹理映射前 , 需要设置相关的景观参数值。这些参数包括光源性质 (镜射光、漫射光和环境光) 、光源方位 (距离和方向) 、颜色模式 (索引或 RGBA) 、明暗处理方式 (平缓处理或平面处理) 、纹理映射方式等等。此外 , 还要设定视点位置和视线方向[3] 。

    地形图是采用 DEM 数据生成的 , DEM 数据用一系列等间距的地形高程值来表示 , 代表一块方形网格地形 , 网格交叉点就是对应地面某点的高程值。各点的 X , Y 值可从方形区域的行列号和间距值中推算出来。遥感图像是对地面景象的一种真实记录 , 所含的信息量丰富、现势性好。因此 , 采用纹理映射算法将遥感图像映射到三维地形表面 , 将产生与实地一致的纹理特征。

    在 Open GL 环境下遥感图像和数字地形相套合时 , 地形与遥感影像的配合是关键。为了获取较为逼真的视觉效果 , 配准方案可采取数字地形向遥感图像配准 , 通过控制点 , 建立匹配方案 , 将数字地形由大地坐标系转到影像坐标系中。另一配准方案是将遥感影像经重采样等处理获得和数字地形相应的新影像 , 此方案不足之处是重采样处理中颜色量化可能失真 , 影响最后的三维效果 , 但影像的生成速度较快。通常 , 为了避免纹理映射复杂的纹理坐标计算 , 提高纹理映射的计算速度和效率 , 直接采用经过微分纠正的正射影像作为纹理影像 , 地面坐标和纹理坐标间的对应关系变得十分简单。Open GL 进行纹理映射的基本步骤是 : 定义纹理 , 纹理控制 , 说明纹理的隐映射方式和定义三维模型顶点的纹理坐标与几何坐标 , 绘制场景。

    此外 , 三维地形要适当的显示出来 , 还要进行投影变换和视口变换。投影变换是生成三维模型的重要基础 , 一般分为透 视投影和正射投影 , 投影的方式选择显示的内容和用途。视口是指计算机屏幕中的矩形区域 , 视口变换的目的是将三维空间坐标映射为计算机屏幕上的二维平面坐标[2] 。

    在 VC 编辑器下引用 Open GL 函数库需要进行以下设置 : 进入 Project 菜单 , 选择 Setting 项 , 弹出Project Setting 对话框 , 选择 Link 项 , 在 Libaray 栏目中加入 Open GL 提供的函数库 : “opengl321libglu321lib glaux1lib”。注意 : 在执行时 , Windows 的 system 目录下要包含 opengl321 dll 和 glu321 dll 两个动态连接库。

    经过上面一系列的处理和变换 , 一个有真实感的三维地形景观图便显示出来 , 如图 2 所示。

基于OpenGL的三维地形图显示方法和应用
图 2  基于 OpenGL 绘制的三维地形图架

    3  结   论

    用 Open GL 建立三维地形模型的基本过程 , 包括了地形数据的读取和模型的建立以及地貌图片的输入和地形模型的显示 , 若需建立更为光滑的三维地形 , 还需考虑计算顶点和三角面的法向矢量。另外 , 还可加入飞行、旋转等控制功能 , 使得三维地形图的显示得到更大的应用。

    [参考文献]

    [1] 白燕斌 , 史惠康1 OpenGL 三维图形库编程指南 [M] 1 北京 : 机械工业出版社 , 19981

    [2] 刘敏莺 , 黄文骞1 基于 OpenGL 的地形三维可视化 [J ] 1 海洋测绘 , 2002 , 22 (2) : 26~291

    [3] 李芳玉 , 陈传波 , 钟宝荣1 基于 OpenGL 的地层模型三维可视化图形显示方法 [J ] 1 江汉石油学院学报 , 2001 , 23 (1) : 20~211

标签:OpenGL地形地理
上一篇:德国虚拟现实技术产业化的现状和产业链分析
下一篇:分布式卫星在轨仿真系统研究
网友评论:基于OpenGL的三维地形图显示方法和应用
评论
留名: 验证码:
您可能还需要关注一下内容:
·三维虚拟地球的海洋信息适用性分析及原型研究
·基于OpenGL的汽车转向三维模型设计
·海岛礁及周边复杂环境动态三维建模
·基于虚拟环境的黄河仿真系统构建
·用 GIS与虚拟现实技术模拟火灾过程
·基于Creator Pro/Vega Prime的三维地形仿真技术
·地理信息科学研究进展
·论虚拟地理实验思想与方法
·论天地一体化对地观测网与新地理信息时代
·展望智慧地球时代的测绘地理信息学
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号