范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

干工程的都想知道三维地形可视化实现技术

  近几年来,随着计算机技术,特别是计算机图形学、网络、多媒体、三维仿真技术、虚拟现实技术的快速发展,给二维电子地图注入了新的活力, 基于三维虚拟场景的三维电子地图正成为电子地图发展的一个重要方向。但是三维电子地图的基本模型必须从三维地形模型制作出发, 三维地形模型就是把数字形式的地形数据转换成三维仿真的地形模型,它的制作也是电子游戏、电子沙盘和虚拟现实以及三维地理信息系统应用的基础, 其制作的精度直接影响着整个应用的视觉效果。本文介绍在 VC++ 开发平台上基于 OpenGL 的三维地形动态模型的建立及其应用。
  OpenGL 的工作原理整个 OpenGL 的基本工作原理流程图如图 1 所示。
  图 1 OpenGL 基本工作原理流程
  由于三维地形模型是三维地理信息系统(3D2GIS) 最基本的地形模型, 因此它的建立和应用是国内外地理信息系统界研究的一个热门课题,也是多年来一直在不断完善和更新的一个难点问题。三维地形模型是关于三维空间数据组织的概念和方法, 它反映了现实世界中仿真的地形曲面。对三维空间数据模型的认识和研究在很大程度上决定着三维 GIS 的发展和应用的成败。很多学者为此进行了大量的探索和研究工作,然而,由于三维空间数据的庞大和复杂多样性, 至今人们对三维数据地形模型问题还远远没有达到共识。
  1、用 OpenGL 建立三维地形模型
  在 VC+ + 开发平台下利用 OpenGL 图形开发库函数,可以利用原始的地形数据构造三维地形模型, 其原始的地形数据包括地理坐标( X , Y ) 和高程值( H) 。OpenGL 共包括 100 多个功能强大的图形函数, 开发人员可以利用这些函数来建立三维模型和进行三维实时交互。这些函数分属于三个基本图形库,即基础库、实用库和辅助库。OpenGL 的基本功能包括:模型绘制、模型观察、颜色模式的指定、光照应用、图像效果增强、位图及图像处理、纹理映射、多缓存应用、实时动画、交互技术等。
  1)采集数据
  首先利用二维的平面电子地图采集生成三维地形模型所需的数据,主要包括三维地形模型所在区域离散点的平面地理坐标(X , Y) 和高程值( H) ,根据坡度和地形起伏变化控制离散点的稀密状况, 如果地形起伏比较大则数据点的采集也要相应的密度大一点,否则可以减小离散点的采集密度以减小数据量。
  2) 构造三角网
  计算机图形学中的所有光滑曲面最终都是由多边形 (主要是三角形) 无限逼近得到的,因此建立曲面模型的实质是构造用来逼近该曲面的空间三角网。利用采集到的离散点根据 Delaunay 三角网的够网规则生成三角网。为了动态更新地形模型数据,我们将数据存放为文本文件(其后缀为. txt) ,以便随时调用和更新。文件中的第一个整数是三角网的采样点个数, 接下来的浮点数是采样点的地形特征数据,其排列方式为从左到右( Xi , Yi , Hi ) ,其间用逗号隔开,每一行的数据个数为一个。
  3)利用地形数据建立地形模型
  以 Visual C+ + 6. 0 为开发平台时调用 OpenGL 库函数一般要进行如下设置,选择 Project 菜单下的 Setting 选项,在弹出的对话框 Link 栏的 Lib 输入框中添加 openg132.lib ,glu32.lib 及 glaux.lib. 在程序中包含以下头文件:
  # include "gl  gl. h"
  # include "gl  glu. h"
  # include "gl  glaux. h"
  并且调用以下函数进行窗口的初始化:
  auxInitDisplayMode (AUX SIN GL E| AUXRGBA| AUX DEPTH) ;
  //窗口显示单缓存和 RGB(彩色) 模式
  auxInit Position (0 ,0 ,500 ,500) ;
  //大小 x = 500 , y = 500 (0 ,0) 是屏幕左上点
  auxInitWindow("三维地形模型") ;
  //窗口初始化,参数是标题gl ClearColor (0. 0 ,0. 0 ,0. 0 ,0. 0) ;
  //将窗口清为黑色gl Clear ( GL COLOR BUFFER BIT) ;
  //将颜色缓存清为 gl ClearColor 命令所设置的颜色
  //即背景色调用以下函数绘制具有颜色设置的三角形并且建成三维的地形模型表面:
  gl Begin ( GL TRIAN GL E) ;gl Color3f (R ,G,B) ;
  //颜色设置gl Vertex3f ( x 1 , y1 , h1) ;
  gl Vertex3f ( ( x2 , y2 , h2) ;
  gl Vertex3f ( ( x3 , y3 , h3) ;
  …gl Vertex3f ( x i , yi , hi) ;
  …gl End () ;
  然后可以调用下列函数对地形模型进行光照和材质的处理:
  void gl Light { if } [ v ] ( GLenum light , GLenumpname ,TYPE param) ;
  void gl Material {if } [ v ] ( GLenum face , GLenumpname ,TYPE param) ;
  2、基于 OpenGL 的三维真实感地形的生成
  用 OpenGL 生成三维真实感地形的基本过程如图 2 所示:
  图 2 用 OpenGL 构造三维地形景观流程图
  1)数据准备
  用于构造三维真实感地形的数据 包 括 DEM 数 据 和 纹 理 数据。相关区域的 DEM 的获取有实地采集法、摄影测量法、现有图数字化法。DEM 一般采用格网点格式。DEM 数据的处理包括不同格式 DEM 间的转化、DEM 数据简化、格网 DEM 与 TIN 间的相互转化等; 纹理数据的处理包括图像格式转化、图像裁切等。由于OpenGL 所处理的影像纹理大小必须为 2m ×2n (m ,n 为整数) ,则必须对正射影像进行分块或重采样处理, 以满足 OpenGL 纹理映射的需要。
  2)设置各项基本参数
  在用 OpenGL 绘制三维真实感地形模型和进行纹理映射前,需要设置相关的景观参数值。首先应对图形操作描述表(RendingContext ) 以及像素格式(Pixel Format) 进行创建和设置;其次对光源性质(镜面反射光、漫射光、环境光) 、光源方位(距离和方向) 、颜色模式(索引模式或 RGBA 模式) 、明暗处理方式(平滑处理或平面处理) 、消隐模式、纹理映射方式等;也可根据相关函数设置三维真实感地形模型的颜色值和对光照的反射特性。除此之外还需设定视点位置和视线方向。这些参数设置都可以通过对 OpenGL 的相关函数的参数选择来实现。
  3)构造三维真实感地形模型
  OpenGL 的基本几何对象都是围绕顶点来建立的, 而对顶点来说最重要的信息是由 gl Vertex3 () 命令提供的坐标。值得注意的是,在 OpenGL 中几何对象顶点的坐标值、法线、纹理坐标和颜色等都必须包含在 gl Begin () 和 gl End () 函数对之间,否则就不会有任何绘制出现。三维真实感地形模型的基本构造通常是以三角面为单元的。三角面的明亮程度除取决于光源和明暗处理方式外,还受到点与面的法向量的影响。一般点的法向量取值为其周围面法向量的均值。这样三维模型的构造可由下列程序给出:
  gl Begin( GL TRIANGL E STRIP) ;
  gl Normal3fv(N0) ; / / 设置顶点法向量
  gl Vertex3f (v0) ; / / 设置顶点坐标
  gl Normal3fv(N1) ; / / 设置顶点法向量
  gl Vertex3f (v1) ; / / 设置顶点坐标……gl End() ;
  构造模型的同时,还可以对模型进行平移、旋转将其移至三维空间的适当位置, 通过适当的缩放使三维真实感地形与三维空间景物的比例相协调。
  4)投影和视区变换
  投影变换一般分为透视投影变换和正交投影变换两类。投影方式的选择取决于显示的内容和用途。由于透视投影类似于人眼对客观世界的观察方式, 因而广泛应用于三维地形模拟、飞行仿真、步行穿越仿真等模拟人眼视觉效果的研究领域。正交投影的物体或场景的几何属性不变,视点位置不影响投影的结果,如果需要观察模型某一个侧面不带有形变的景观, 则更多采用正交投影方式,如制作地形晕渲图则一般采用正射投影方式。本文选择透视投影,函数为 gluPerspective ( ) ,OpenGL 只绘制位于视景体内的对象,所以在设置 gluPer2spective 的参数时,应充分考虑地形范围的大小以便选择合适的视景体范围。视区是指计算机屏幕中用来绘图一个矩形区域,缺省的视区与窗口一样大,它用窗口坐标来度量,反映了屏幕上的像素位置。视区相对于窗口的左下角。视区变换就是将视图体最后三维空间坐标映射为计算机屏幕上的二维平面坐标。视区变换用函数 gl Viewport (0 ,0 ,cx ,cy) 实现,视区的宽高比通常等于视景体的宽高比, 否则视区内显示的图形将会发生形变。根据视区变换后视区内每一点的 Z 坐标值,OpenGL 可以自动判断点的前后实现消隐功能, 使得靠近视点的目标能够遮挡视区同一位置远离视点的目标。
  5)纹理映射
  自然界中的物体表面很少是光滑和单调的, 往往具有各种纹理, 在计算机图形学中是采用纹理映射的方法给计算机生成的物体图像加上纹理的。纹理映射是建立逼真三维地形景观的重要手段,不采用纹理映射所得到的地形模型仅仅是具有明暗效果的光照模型,光照模型可以按照高程值进行过渡着色或分层设色。它能够直观地反映地表起伏状况,但不能重现地表的真实面貌。一般纹理映射的思路是把纹理图像"贴"到由 DEM 数据所构成的三维模型上。其关键是实现影像与 DEM 之间的正确匹配,使每个 DEM 格网点与其所在的图像位置一一对应。为提高纹理映射的运算效率,通常采用预处理好的与 DEM 坐标相对应的图像作为纹理以免除纹理坐标的计算。用 OpenGL 函数进行纹理映射的基本步骤为:①纹理定义: OpenGL 要求纹理图像的尺寸必须是 2 的幂,且不能大于 1024 字节。用 gl TexIm2age2D() 函数说明所映射的纹理内容。其中包括纹理数据的指针、纹理的大小、纹理的类别(灰度或彩色) 等。如果没有原地形的正射影像,用户也可根据地形特点设计自己的纹理图像。②纹理控制: 说明纹理以何种方式映射到三维模型表面上。OpenGL 提供了多种映射方式, 其中包括纹理滤波、重复与伸缩,其函数为 gl TexPa2rameterf () 。③纹理映射方式说明:在纹理映射过程中,可以用纹理来调整三维模型的颜色或者将纹理与三维模型原来的颜色进行融合,其调用函数为 gl Tex2Envf () 。④启动关闭纹理映射: 在绘制某一个场景前必须调用 gl En-able ( GL TEXTURE 2D) 来启动纹理映射,结束时调用 gl Disable (GL TEXTURE2D) 。⑤三维地形模型顶点的纹理坐标与几何坐标定义及场景绘制:几何坐标决定了顶点在屏幕上的绘制位置,其调用函数为 gl Vertex 3 ( ) ;纹理坐标决定纹理图像中哪一个纹理单元赋予该顶点,其调用函数为 gl TexCoord 3 () ,几何坐标和纹理坐标必须匹配。
  6)三维地形交互式动态显示
  按照人们的视觉习惯,总是希望在原点(或其他方便位置) 处构造所需画面,然后从一个较佳的位置观看该画面。OpenGL 自带的实用库函数 gluLookAt ( ) 正是为这个目的而设计的,故可以采用此库函数来实现虚拟场景的观察变换。glu2LookAt () 库函数的原型如下:
  void gluLookAt ( GLdouble eyex , GLdouble eyey ,GLdoubleeyez , GLdouble centerx , Gldouble centery , GLdou2ble centerz ,GLdouble upx , GLdouble upy , GLdouble upz)其中: 前三个参数 eyex、eyxy、eyez 指定视点(眼睛) 的 位 置;中间三个 centerx ,centery ,centerz 指定沿着所需视线上的任一点(参考点) 的位置;upx ,upy ,upz 指定向上的矢量方向(观察向量) 。地形透视图形成后, 可为应用程序加入鼠标和键盘的消息响应函数,并将视点、视角、模型旋转角度等设为变量作为消息响应函数中的控制参数,从而可以交互式地从不同角度观察三维地形,来实现三维真实感地形场景的漫游效果。
  随着计算机及图形处理设备性能的不断提高, 地形三维可视化技术正向着实时动态显示、交互式控制、具有高度真实感的场景画面显示方向发展, 利用 OPENGL 强大的图形功能,可以轻松地实现逼真的动态地形图。在此基础上,运用 VisualC++的 MFC 应用程序模式, 可对 OPENGL 产生的模型进行更进一步的控制和变化。试验结果说明利用 VC++6.0 和 OpenGL 作为开发工具来进行三维地形图的开发非常方便快捷, 是一条切实有效的途径。

柳岩录节目亲吻男明星,男明星的手暴露一个细节提起柳岩大家可能首先会想到两个字,性感,柳岩被誉为性感女神,从身材到作品都透露着妩媚与性感。柳岩在娱乐圈待的年头已经很长,也出演过不少作品,但是真正被记忆深刻的还是她的性感,其实柳3DM速报战神诸神黄昏实机公开Epic仁王完整版喜加一欢迎来到今日的三大妈速报三分钟带你了解游戏业最新资讯大家好,我是米瑟真战神与老父亲新片公开,仁王完整版Epic免费送1新战神儿子长大,游戏拉满!失眠组真不睡觉凌晨的发布会看完就俩感两则黄昏恋带来的警惕看到两条网恋新闻,与大家分享,希望对大家有所启发警惕。一则是7月12日,一来自广西的68岁老太太长途跋涉到四川洪雅县见网上相恋的自称50多岁的所谓成功男子,被放鸽子。老太太与所谓男七国集团线下会议,中国问题又被提及,他们真有实力来对抗?根据英国官方消息,近日,七国集团外长在英国伦敦展开会谈,目的除了聚焦疫情后的世界经济复苏气候变化等问题外,毫无疑问的还有老话题如何来对抗中国。七国集团成员国为美国英国法国德国日本意阿根廷购买枭龙定了?英国卡脖子彻底失败,弹射座椅中国造近段时期以来,中国将要对阿根廷出口枭龙战斗机的消息,成了广大军迷朋友们关注的热点。但是与之伴随的,还有一个比较令人忧心的问题英国可能会卡枭龙战斗机出口阿根廷的脖子。原因无他,只因枭驻韩美军偷运生化武器,离中国这么近想干啥,赵立坚发出灵魂三问美军长久以来一直在研发装备甚至是使用生化武器,这对于广大军迷来说已经是一个公开的秘密。不论美国官方承不承认或者是又采取像鸵鸟埋头一样的回避态度,美军长久以来在世界各地所犯下的罪行和从院士的摇篮到选调生的乐土兰州大学的前世今生据软科2019年对部分双一流高校选调生人数统计,兰州大学以504名高居榜首,这一数字几乎相当于清华大学(269名)华科中大等的两倍还要多,这也从一个侧面反映了当代大学生价值取向的变82年前的今天,世界上第一架喷气式飞机上天,原理类似宋朝的火箭你知道吗,82年前的今天,世界上第一架喷气式飞机上天1939年8月27日,世界上第一架喷气式飞机飞上了天空,这架飞机是德国制造的,德国的工艺水平之所以高,应该和他起步早有着很大的关国学武术中医,这三大骗子重灾区请务必注意最近刷手机,老是刷到百度推荐的一个人讲的关于金融经济等方面的视频,由于以前从未听说过这人,忍不住好奇点进去看了几个,看了后我就在怀疑,莫非又是个搞国学的?然后我又忍不住去百度一下这抵制过后,最怕是依然一地鸡毛这一次,国外一些服装企业其丑恶的面目彻底点燃了中国消费者的怒火。新疆棉花事件一时间成了舆论的热点,接着就是这些服装品牌线上被电商下架,线下实体店销量大跌,有不少人认为这将是国产服装二十四史之后的尴尬清史的编撰时至今日,对于历代正史,我们大多还是说的二十四史,即从史记到明史的共24部正统史书。这24部史书可称得上卷轶浩繁,多达4700万余字,绝大部分人终其一生都无法通读。中国历来重视修史
中国天眼再发威,最新的发现有望找到宇宙极端爆炸电爆有利证据先说新闻,近日,自然杂志上一篇论文称我国科研团队通过中国天眼FAST观察并计算出快速射电暴的起源证据。什么是快射电暴?快速射电爆是来自银河系之外自的宇宙远端非常微弱而且持续时间极短全年发射55次!中国为什么要发这么多卫星?综合微信公众号地图会说话据报道2021年中国航天全年发射次数达55次再创新高并稳居世界第一这一年天和核心舱一飞冲天中国正式迈入空间站时代羲和号实现中国太阳探测零的突破长征系列火箭发气候敏感性与碳中和大气科学气候学相关名词气候敏感性实验碳中和延伸阅读地球的气候系统会对外界的各种扰动产生响应,扰动不同,气候响应的敏感程度也不同。在政府间气候变化专门委员会(IPCC)报告中,用平衡IPCC最新报告全球变暖把地球生态推向硬性极限日前,联合国政府间气候变化专门委员会(IPCC)发布气候变化2022影响适应和脆弱性报告。该报告指出,气候变化正改变着地球,未来几十年,世界将不可避免地遭遇灾难性影响。IPCC气候地核存在微小磁波一项新研究在地核中发现了微小的地磁波动,可以帮助人们了解地球内部的情况。3月21日,相关研究发表于美国国家科学院院刊。地核的内层是固体,外层是液态金属。热的内核和冷的外层之间的温差全球大气二氧化碳浓度时空异质特征数据集发表近日,中科院地理科学与资源研究所研究员邓祥征与合作者在ScientificData上发表了全球大气二氧化碳浓度时空异质特征方面的研究成果,为全球气候模拟和应对气候变化提供了数据支撑科学家发现新的冰物理学家在钻石砧槽中开创了一种新的激光加热技术,从而发现一种新型冰。图片来源ChrisHiggins近日,美国研究人员发现了一种新形式的冰,从而重新定义了高压下水的性质。这一发现可NASA好奇号火星车调查奇特的鳄鱼背地形据CNET报道,美国宇航局的好奇号火星车正在调查红色星球上的一片有趣的地貌看起来像鳄鱼背部的崎岖不平的岩石。好奇号正在盖尔陨石坑周围巡视,并爬上陨石坑的中心峰夏普山。该探测器一直在流星和航天器,在空气中穿梭的勇者流星雨,一直是宇宙中浪漫而神秘的存在,许多人都期待着亲眼目睹流星划破天际的美景。一般到了年底,能观测到的流星雨还有很多,比如11月份的猎户座流星雨,以及12月份的双子座流星雨等等。替身机器人返回地球今年9月6日,俄罗斯的一艘无人驾驶联盟号飞船搭载着一个人形机器人返回了地球,首次完成了人形机器人飞往国际空间站(ISS)的飞行测试联盟号MS14返回舱降落在哈萨克斯坦大草原,但舱内NaturePhysics清华王亚愚团队,过掺杂铜氧化物超导材料铜氧化物超导体材料cupratesuperconductors,随着其掺杂的增加,超导转变温度从最佳掺杂时增加到最大值,然后在过掺杂区域中降低。在过去的几十年里,研究主要集中在相图