基于OSGEARTH的三维数字地球平台设计与实现

基于OSGEARTH的三维数字地球平台设计与实现
陈波;任清华;杨化斌
【摘 要】目前主流三维数字地球平台在数据支持和数据管理方面存在兼容性缺陷.针对三维数字地球平台建设需求,研究了osgEkth的实时地形渲染机制及三维数字地球开发过程中数据加载和海浪模拟技术难点.针对数据实时加载问题,提出基于数据库存储的LOD四叉树模型;针对海浪模拟逼真度不够问题,提出基于改良Higgins算法的海浪模拟.重点结合软件构件化的设计思想,进行了面向实际工程应用的三维数字地球平台开发.
【期刊名称】《电子科技》
【年(卷),期】2015(028)010
【总页数】4页(P65-68)
【关键词】数字地球;软件构件化;改良的Higgins算法;osgEarth
【作 者】陈波;任清华;杨化斌
【作者单位】空军工程大学信息与导航学院,陕西西安710077;空军工程大学信息与导航学院,陕西西安710077;空军工程大学信息与导航学院,陕西西安710077西门子m55
【正文语种】中 文
【中图分类】TP311.52
“数字地球”概念最早是由美国副总统戈尔在美国科学研究院提出的[1]。数字地球不仅可以提供数字地图地理信息查询服务,还可满足人们探索地球、管理地球的愿望。其基本思想是将高分辨率的遥感影像覆盖全球,并通过建立覆盖全球的数字高程模型和地球景观模型,形成虚拟地球[2]。
近年来涌现了大量数字地球软件。国外有Google公司的Google Earth,NASA的World Wind,微软的Virtual Earth等,国内有北大/北航的China Star,武汉大学的Geo Globe,中科院遥感所的DEPS CAS等[3],均含有高精度全球卫星影像,且提供简单的二次接口或部分开源,但具有以下不足:(1)只能使用单一的软件自带数字地球数据,无法集成其他软件所带的数字地球数据。(2)大多数软件属于商业软件,价格昂贵,少数开源软件使用复杂,功能受限[3]。(3)无法进行面向实际工程应用的二次开发,软件灵活性较差,无法满足多方面需求。
针对以上问题,本平台将选择一个新的开源三维地形渲染引擎osgEarth来进行三维数字地球平台开发。
OpenSceneGraph(OSG)是一个基于工业图形标准OpenGL的高层次图形开发API接口,通过它程序员能更加快速、便捷地创建高性能、跨平台的交互式图形程序[4]。
osgEarth是一个基于OSG使用标准C++语言开发的实时地形模型加载和渲染工具,具有良好的多源数据支持与数据管理能力。其采用驱动器方式来支持管理GIS数据源,内置多种驱动器,如GDAL驱动器,用于处理影像和DEM数据;TMS驱动器,用于处理采用TMS协议的瓦片数据等。此外,osgEarth的高扩展性使得用户可根据需求自行扩展其他类别的驱动器[5-7]。
osgEarth采用图层概念进行各类数据管理,osgEarth图层包括影像层、高层层、模拟矢量层等[8]。不同的图层对应不同数据类型。这种机制更易于不同分辨率的影像、高程以及模型数据的叠加[9-10]。
本文通过研究osgEarth三维地形实时渲染引擎内部结构,利用VC++开发平台集合osg3.1.0和osgEarth2.7开发包,建立三维球体模型,在此球体模型上加载卫星影像数据、数字高程数
据(DEM)、光照数据、矢量数据、地表数据,构造出一个开源可供二次开发的实时、流畅、逼真的三维数字地球基础性平台。
平台以osgEarth核心库为基础,以满足实际工程需要为目的。随着需求不断提高和计算机虚拟现实技术的发展,视景仿真细节要求越来越高,高程、卫片数据需求随之增加,这些都对传统建模和调用方式、渲染过程形成挑战;在海量数据调用渲染的基础上,平台还需根据项目需求及实际应用提供二次开发接口、承载新的数据处理能力。数据处理能力是影响现实仿真系统实时交互能力以及应用中模拟训练质量的关键因素,也是数字化地球模拟平台亟待解决的核心。
针对以上各种局限,在整体设计方案中,数字地球基础平台主要涉及3方面内容:数据存储、数据解析和渲染、应用插件加载。由于数据量较大,对三维数字地球设计使用B/S设计架构,如图1所示。
一夫一妻制
数字地球平台为实际工程项目先提供一个效率与效果表现俱佳的基础球体,然后在客户端提供丰富的针对业务的开发接口,可让用户结合自身业务需要的模型、业务的支撑数据,进行更加具体的业务开发,最后将数据流处理结果在客户端进行展示。
osgEarth采用动态四叉树LOD方式对数据进行组织,此时数据被划分为不同LOD层次的瓦片序列,渲染地形时根据视点远近进行动态调度和加载。这种动态四叉树组织方式理论上可支持无限的数据量负载[4]。但当数据达到GB或TB以上时,影像的实时处理就变得异常缓慢。
菜园保卫战
f检验虽可采用金字塔等方式来加快影像的处理,但仍不能满足实时渲染的要求,为此在进行三维地形场景构建时需要对影像和DEM数据进行预先瓦片分割处理,服务端采用数据库方式对数据进行存储与响应。
本算法的核心是将四叉树和LOD结合,四叉树保证了地表空间能够精细划分,LOD技术保证了能在合适的距离和角度下显示与之对应的地形,基于数据库存储又保证了在实时渲染时每一层的数据量可预见,因此可大幅提高索引效率。
数据具体分配流程:
现有数据项所在层行列为image(Lev,Row,Col)。获取该数据项所在数据库和表名称分配算法如下:
福美胂
(1)计算数据项在当前层的标号,假设标号为Id,则计算式(1)如下
(2)确定数据项所在数据库名称。若Lev≤15,数据库名为Map15,若Lev>15,则计算n的值如式(2)所示
(此处DBMax为理论值10亿),根据层号以及n即可确定数据库名(例如Lev=17,n=2,数据库名称即为Map17_02)。
(3)确定数据项所在表名称,计算m值,如式(3)所示
若m=1,则直接用层号确定表名(例如Lev=9,表名称即为Level0_9),若m>1,则根据层号以及m值确定表名(例如Lev=14,m=3,表名称即为Level14_03)。
(4)表结构设计。数据库中的存储方式是二进制形式的,且每个二进制影像数据对应该数据在数字地球场景中的位置,所以,在数据库的表结构中应当包含影像数据的位置信息、二进制数据信息,以及数据信息的长度,表结构设计如表1所示。
根据表结构可方便地利用视点依赖技术,确定当前场景内的瓦片,根据瓦片在数字地球场景中的位置访问数据库,加载对应的影像数据信息。
目前模拟海浪的方法主要有流体力学方法、基于海浪谱的方法、几何造型法以及线性叠加法。线性叠加方法是目前国内外使用最多的海浪仿真方法,其基本思想是基于Longuest-Higgins模型模拟海浪,但这种方法生成的海浪波峰比较圆滑,海浪逼真性较差。本文提出分波幅和分相位的扰动算法,改进了基于线性风浪谱的圆滑波峰现象。
线性叠加法将平稳的海浪视为平稳具有各态历经性的随机过程,将风浪波动视为无限个振幅、频率和初相位不等,且在水平面上与轴线沿不同方向传播的简单余弦波叠加而成。由于海浪能量频带较窄,高频和低频的能量均较小,计算时可不考虑这些组成波的影响,模拟的海浪较平稳。改进的水波纹数据模型,加入更加自然的随机挠动,与传统的数学模型进行叠加,使得海水的渲染更加自然。
(1)海水波纹的基础数学模型。在实际工程应用中为了使所选频率更具有代表性以减少所要选的组成波数目,通常采用等频间隔或者等能量间隔方法对频率进行分割,进而求得方向分布函数和波振幅;根据深水波浪频散关系可确定海面高度场。风浪高度算法如式(4),浪高模型为与X轴成不同角度θ方向传播的简单余弦波叠加而成。
浙江省天台中学式中,ζ为瞬间波浪高度;Hs为海平面上的平均高度;ζi为第i个分量波浪高度;ki和ωi分别表示第
i个分量的深水传播系数和分量角频率;ki=ωi/g,g为重力加速度;g=9.81 m/s;φi为构成第i个相位角;n为简谐波个数。由式(4)可算出波浪的实时高度,再由高度的实时变化来动态模拟海面,这种方式可基本表现波浪的变化趋势,但生成的海浪波峰较圆滑,真实感较差,如图2所示。
(2)改进的波纹叠加模型。按照式(4)数学模型算出的模拟海面具有明显的线性痕迹,尤其是波浪形态比较规则,真实感较差。为增强风浪波纹的随机效果,使用扰动算法生成的Δζ和Δφ对分波幅和分相位进行扰动

本文发布于:2024-09-22 09:49:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/71533.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   进行   数字地球   影像   渲染
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议