osgearth数据加载及组织解析

osgearth数据加载及组织解析

ID:20308065

大小:1.23 MB

页数:14页

时间:2018-10-12

osgearth数据加载及组织解析_第1页
osgearth数据加载及组织解析_第2页
osgearth数据加载及组织解析_第3页
osgearth数据加载及组织解析_第4页
osgearth数据加载及组织解析_第5页
资源描述:

《osgearth数据加载及组织解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、osgEarth数据加载及组织解析1.osgEarth的数据加载流程由前文可知,用户可以使用osgEarth自己的earth文件,简单指定各种数据源,而不用关心数据如何渲染,便能在三维球上显示各种地形数据。本节,将会解读osgEarth如何解析earth文件,利用用户提供的数据源,来构建三维球上的各种地形。图3.1所示是加载数据的整体流程,本节将就这四个步骤进行具体的解读。图3.1osgEarth数据加载整体流程1.1读取earth文件osgEarth继承了OSG的插件机制,所以osgEarth提供了

2、专门读取earth文件的osgdb_earth插件。通过查找并调用此插件,达到读取earh文件的目的。图3.2展示了查找读取earth插件的具体流程:istheTibetanPlateaupoly.Centercityonlyapopulationofoveronemillion.Xiningislocatedinthe"Tangfangudao"andtheancient"SilkRoad"road,istheLoessPlateauandtheTibetanPlateau,agricultural

3、andpastoralareasand,inconjunctionwiththeMinistryofcultureandIslamicculture图3.2查找读取earth插件的具体流程这个具体流程展示了osgEarth如何找到读取earth的插件——osgdb_earth.dll。这个流程其实也是osg插件机制中的具体流程,主要在read函数中根据文件后缀名查找读写插件,查找策略见前文2.1.3的OSG插件机制,找到插件后便根据文件名构建ReadNodeFunctor的仿函数,然后调用doRead

4、()函数来具体读取。无论读取earth文件,还是读取影像数据、高程数据或一般的文字,都是这样一个流程,通过找到具体插件后调用插件里的doRead函数。在osgdb_earth中,主要就是将earth文件中的内容转换成后面构造map需要的conf对象。图3.3展示了一个包含标签比较全面的earth文件,图3.4为转换后的conf结果结构图:istheTibetanPlateaupoly.Centercityonlyapopulationofoveronemillion.Xiningislocatedin

5、the"Tangfangudao"andtheancient"SilkRoad"road,istheLoessPlateauandtheTibetanPlateau,agriculturalandpastoralareasand,inconjunctionwiththeMinistryofcultureandIslamicculture图3.3普通earth文件内部代码图3.4earth文件转换后的conf对象结构图如图所示,将earth文件中的标签转换成就conf对象就是将标签语言的嵌套转换成父子关

6、系,然后每个对象包含自己的属性值。1.2构建map由上一节可知,通过earth插件,将earth文件中的数据属性,渲染属性等构成conf对象。接下来,就是根据这些属性,来构造一个包含影像、高程、模型等的map。图3.5展示了osgEarth构造map流程:istheTibetanPlateaupoly.Centercityonlyapopulationofoveronemillion.Xiningislocatedinthe"Tangfangudao"andtheancient"SilkRoad"ro

7、ad,istheLoessPlateauandtheTibetanPlateau,agriculturalandpastoralareasand,inconjunctionwiththeMinistryofcultureandIslamicculture图3.5通过属性构造map对象由图可知,此时构造的map,并没有实际的读取数据,仅仅是将从earth文件中获取的conf对象属性进行分类,构造了一个逻辑map,主要指定了map包含什么图层,每个图层的名字、数据源和所需driver插件。1.3构建map

8、Node这一步将是加载数据中的重点。在这一步,将会通过上一步获取的map对象及options对象,调用具体的driver插件,来构成地形节点。构建mapNode的过程可以分为两步,第一步是在osgViewer(OSG最基本的场景图形浏览器,osgEarth最基本的场景图形浏览器是在osgViewer基础上改进的osgEarth_viewer,其主要是加载组织地形数据等,核心渲染功能还是osgViewer)渲染前的预处理,主要在地形引擎的preInitia

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。