好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

虚拟地球原理与实现.docx

17页
  • 卖家[上传人]:m****
  • 文档编号:529007916
  • 上传时间:2022-12-27
  • 文档格式:DOCX
  • 文档大小:689.67KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 虚拟地球原理与实现一、引言  目前与地理信息相关的信息绝大多数也是通过投影变换以平面的方式管理和使用,这已不能满足大范围甚至全球多分辨率海量数据管理的要求  2005年,美国谷歌公司推出了一款免费的虚拟地球浏览软件GoogleEarth(谷歌地球),给了人们一种全新的感受,数据动态装载、地形渐进描绘、多重细节层次(LOD: Levels of Detail)和虚拟现实表现等已成为虚拟地球的典型技术特征  因而构建一个虚拟地球,需要解决以下几个问题:全球角度空间数据模型的构造,海量地理空间数据(包括地形、影像)的组织、管理和调度,空间数据的三维可视化  二、全球角度的空间数据模型  投影理论解决了球面或椭球面不可展的难题(尽管不完美),从而建立了二维平面与实际球面三维空间的对应关系,球面网格理论则构建了全球空间数据高效访问的应用分析模型  (一)、球面网格  球面网格的基本原理是将球面(参考椭球面)递归剖分为面积、形状近似相等且具有多分辨率层次结构的网格单元,采用单元对应的地址编码代替地理坐标在球面上进行操作  全球网格主要分为经纬线网格和多面体网格  经纬度网格符合人们的思维习惯,计算简单直观且与现有各类数据转换比较方便,容易进行纹理坐标的计算和坐标转换(地理坐标到三维直角坐标),在添加地理数据时,所做的工作也最少。

      缺点是网格单元形状不均匀,接近极点的时候,网格扭曲,数据浪费严重图2-1)    图2-1 经纬度网格  多面体网格仅限于学术研究,鲜有工程化的实现其最大优点就是每个网格单元扭曲很小,没有太大的数据浪费这个特性非常有利于三维球面绘制但缺点是在球面绘制时纹理映射比较复杂,另外在与地理坐标的转换上也是比较麻烦(图2-4)    图2-2 多面体网格  (二)、基于经纬度的球面网格  基于经纬度的球面本身就隐含了一个矩形网格系统,为了改进在高纬度地区单元变形严重的缺陷,GeoFusion(2005)将全球划分为6个区 域,其中4个处于南北纬45度之间,采用矩形网格,两个处于高纬度地区,采用三角形网格,避免了高纬度地区使用矩形网格带来的变形,但数学模型较复杂  目前主流的虚拟地球浏览器均采用基于经纬度的球面网格系统,其中GoogleEarth、NASA WorldWind采用统一的矩形网格(图2-3),ArcGlobe则采用GeoFusion的全球网格技术(图2-4)    图2-3 World Wind网格系统系统    图2-4 GeoFusion网格系统  (三)、全球地形网格  全球地形是虚拟地球的可视化基础。

      地形网格可以分为规则网格(Regular Surface Grid,RSG)和不规则三角网格(Triangulated Irregular Network,TIN)两类(图2-5)  1.规则网格  RSG是最简单、最直接的数据模型,只需将覆盖区域划分为规则排列的矩形单元,数据实际上就是规则间隔的网格点或经纬网点阵列,每个网格点与其 他相邻网格点之间的拓扑关系都隐含在该阵列的行列号中根据该区域的原点坐标、网格间距和行列号,经过简单运算即可求得任意网格点的地理坐标  由于RSG存储量小、结构简单、操作方便、因而非常适合大规模使用和管理但是,RSG对复杂地形特征难以确定合适的网格大小,在地形简单地区容易产生大量冗余数据,而在地形比较复杂的地区,又不能准确表示地形的各种微小起伏  2.不规则三角网格  若将地形特征根据一定规则连接成覆盖整个区域且互不重叠的三角形则构成一个不规则三角网格TIN较好地顾及了地貌特征,能逼真地表示复杂地形 的起伏,同时还能克服地形起伏变化不大的地区产生的数据冗余问题但由于数据量大、数据结构复杂且构网困难,TIN一般只适合表示小范围大比例尺高精度的 地形TIN不仅要存储每个网格点的高程,还要存储点之间的拓扑关系,因而数据量较大。

          图2-5 RSG和TIN  三、空间数据组织与管理  三维空间数据是虚拟地球的基础虚拟地球的数据主要包括地形数据、二维矢量数据和模型数据  (一)、地形信息的管理  地形数据又分为高程数据和影像数据,他们多采用分级组织、分块存储  1.多分辨率金字塔  所谓多分辨率金字塔就是用一系列网格表示统一地区的地形,相邻上下层次之间的网格的采样精度一般为1:4,因此在大范围地形显示时,采用较低精度的数据能大幅度缩短数据访问时间(图2-5a)  如果在每层网格上采用“分块策略”,则数据访问时间可进一步缩短,其基本思想就是将各层网格都细分为大小相等的矩形“瓦片”(Tile),这种 数据结构也称为“瓦片金字塔”其优点是一次读/写操作就能访问一个瓦片,并且经过甄别可以只访问所需的瓦片;缺点是数据冗余更多(图2-5b)    图3-1 多分辨率金字塔  2.瓦片四叉树  多分辨率的TIN不具备简单的跨越式空间结构,在执行诸如视景体裁减、碰撞检测等操作时显得更为复杂,并且对TIN的压缩算法也比较复杂,不利于数据的快速访问  采用“分层分块”策略的瓦片金字塔不但大大缩短了数据访问时间而且能够表示多分辨率数据,是海量地形数据组织的理想结构,通过与树结构的结合, 具备了快速数据索引的功能,从而形成了大范围空间数据组织方式——瓦片四叉树。

      采用四叉树描述的瓦拓扑关系简单,其索引只涉及加、减、加倍和减半操作,可 以通过效率较高的位运算实现(图3-2)    图3-2 瓦片四叉树  基于经纬的球面网格的瓦片的数据采用经纬度加高程描述,符合人们的习惯,也比较直观,而在显示时,则要转换为空间直角坐标系  目前流行的虚拟地球软件的数据组织方式,均采用瓦片四叉树结构  (二)、模型数据的管理  在实现模型数据的管理时一般有两种方式,一是集成式存储,这种方式多用于存储自动建模或精细建模所生成的模型文件;另一种是以三维空间数据模型 实现的模型数据(二维矢量数据是三维模型数据的一个子集),多以数据库的方式管理,其中三维空间数据模型由包含点、线、面、体这四类空间对象的空间实体构 成,其索引可以采用三维R树来实现   四、三维可视化  在与地形、影像等栅格数据相关的各类应用中,大范围三维地形实时浏览对数据组织和呈现方式的要求较高,主要体现在两方面:海量数据处理和球面模型建立  (一)、可视化关键技术  在计算机交互式图形处理中,实时动画往往要求每秒25~30帧的图形刷新频率(至少每秒15~20帧),也就是说所有的建模、光照和绘制等处理任务必须在大约17微妙的时间内完成,对数据调度机制和图形绘制策略都提出了高的要求。

        为了在保证地形外观平滑的前提下尽量减少需要渲染的数据,有多种图形生成加速方法被提出,数据裁减、多细节层次技术(Level of Detail ,LOD)、异步数据加载、数据缓存、请求预测已经被广泛用于各种大规模地形场景的快速绘制算法中  1.数据裁减  数据裁减主要是视景体裁减(View Frustum Culling),视景体裁减的核心是计算视场的锥体裁减范围,即由视场角定义的上下左右四个面(类似照相机的视角)和由投影矩阵定义的远近剪切平面(类 似照相机的景深),而后看三维实体(对于球面瓦片,可用其包容圆柱体)是否与视景体的相交或被视景体所包含(图4-1)    图4-1 视景体(View Frustum)  2.多细节层次技术  LOD 技术是在不影响画面视觉效果的前提条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率,其所遵循的原则就是能够模拟“越 远越模糊,越近越清楚”这一视觉现象,通常利用视角高度(Eyealt)与瓦片尺寸的比来判定是否当前显示的瓦片是否需要分解为更高分辨率的子瓦片(图 4-2)    图4-2 瓦片层次  3.异步数据加载  异步数据加载就是通过不同的线程加载瓦片数据,线程之间相互独立而又彼此关联,其工作原理是:主线程通过LOD算法与数据裁减计算出所需瓦片, 如果瓦片不在数据缓存中,则将其添加到请求队列,当数据加载完毕,通知主线程瓦片可以使用,刷新视图。

      为了在数据加载时不影响显示的流畅性,主线程会先采 用其上一级直至顶级的数据来绘制异步数据加载还需剔除请求队列中因场景变换已不再需要加载的瓦片,避免资源的浪费  4.数据缓存  数据缓存有磁盘缓存和内存缓存,磁盘缓存用于将远程数据下载到本地硬盘,以提高数据加载速度,一般情况下磁盘缓存的大小是被限定的  内存缓存也叫高速缓存,是已经加载了的数据,可直接用于场景显示高速缓存的大小设有上下限,用以控制缓存的瓦片数量不致太少也不要太多,缓存 数据的置换算法可以用最近最少使用算法(Least Recent Use, LRU),LRU的主要出发点就是,如果某个瓦片被访问了,则它可能马上还会被访问  5.请求预测  数据缓存机制可以提高系统的性能,当地形场景连续运动时,如果应用程序能够提前预测系统即将需要的数据,并能提前把这些数据读到缓存区,那么当 应用程序真正需要这些数据的时候,便可以直接从缓存区读取,从而省去了从数据源读取这些数据的时间在海量地形漫游时,数据调度和场景绘制需要同时进行, 因此,可以设立一个独立的线程来进行数据的预测调度  (二)、地形的三维可视化1.地形网格的构造  地形数据多采用地理坐标(如经纬度)加高程信息的地形数据,这需要转换为对计算机而言表达简单,处理效率较高的空间直角坐标(图4-3)。

          图4-3 地形数据球面映射  大地坐标系是统一的,能准确、唯一地描述地球上任一点的位置,并能动态适应历史的、现代的越来越精密的各种参考椭球体,是虚拟地球最为适当的坐标系(图4-4)    图4-4 地形数据投影模型  三维地形模型的几何构造要素多为三角形(图4-5),即每个瓦片根据地形点阵数据,再构成三角形网格,这一过程是动态实时进行的,构造好的地形网格被存入地形高速缓存以备调用(图4-6)    图4-5 地形网格    图4-6 ArcGlobe的GeoFusion地形网格  2.纹理映射  纹理映射能够有效增强图像的真实感,在地形可视化中,卫星影像是最能提高地形真实性纹理目前,几乎所有支持纹理映射的图形处理硬件都在其硬件 系统中设置了纹理内存来缓存纹理数据以提高纹理映射的效率纹理内存的容量有限,图形处理硬件可能无法缓存全部纹理数据,每次纹理映射时都需从主存中传输 部分纹理数据,因此也需要设置纹理高速缓存中以备调用  (三)、模型的三维可视化  模型数据也可以用瓦片为单位建立高速缓存,来提高系统性能  在三维模型的展示上,点状对象(如树、路灯、管线点等)常采用三维模型符号来表示;线状对象(如管线)也是先建立三维线状符号(如圆柱体),获 取线状对象的走向、长度、半径、高度方面的信息后,经过缩放、旋转、平移操作实现线状对象的绘制;面状对象绘制需建立模型并配以纹理贴图。

        (四)、三维注记  注记是虚拟地球中一个不可缺少的要素,有了注记,才能保证对地理信息的正确认识和方便地进行查询分析汉字的显示与单字节文字的显示不一样,在OpenGL中是以轮廓文本的方式输出的  五、测试程序设计与实现(一)、三维平台简介1.三维引擎  三维引擎主要是OpenGL(OpenGraphicsLib)和Driect3D  OpenGL是Silicon Graphics公司(SGI)开发的一个工业标准,它灵活方便地实现了二维和三维的高。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.