首页| 行业资讯| 企业名录| 周边产品| 数字城市| 增强现实| 工业仿真| 解决方案| 虚拟医疗| 行业仿真| 图形处理| 军事战场
用户登录/注册 ×
资讯首页
行业资讯 >> 专业文献
基于 OSG 的海洋环境三维可视化系统研究
时间:2019-11-06    评论:0
    来源:第三维度
    作者:李新放, 刘海行, 周林, 贾贞, 宋转玲
    单位:国家海洋局第一海洋研究所

    摘要: 为了研究虚拟现实技术在海洋环境三维可视化中的应用, 对大气、海底地形、风浪流等数据产品进行了分析整理, 运用场景裁剪、level of details(LOD)细节层次、场景动态调度等关键技术方法, 结合 VisualPlanetBuilder (VPB)、ARCGIS 多种数据处理工具, 在 VC++和 OSG2.8.7 的可视化开发环境上,构建了一个三维、动态、实时、可交互的海洋环境可视化模拟仿真系统。这个系统可以为海洋科学研究和工程建设提供一个更加便捷、直观的可视化平台。

    在全球陆地资源日益紧张和环境不断恶化的今天, 世界各国纷纷将目光转向海洋, 开发海洋资源,发展海洋经济成为沿海国家国民经济的重要支柱,伴随着在海洋开发过程中人们日益多样化的海量信息需求, 原有的二维纸质海图、电子海图提供的海洋环境信息已经日渐不能满足实际生产研究的需要。

    快速、高效的数据模型, 流畅、逼真的三维场景渲染方式, 日益成为海洋环境信息表达的一种趋势。在海洋环境的三维可视化研究中, 海洋因其环境的复杂性和数据的难以获取, 较之陆地更加难以模拟。目前,国外在海洋环境三维可视化的研究和应用方面较为成熟, Flavio 等 [1]对实时三维地形可视化中数据分析应用进行了研究, Wynne 等[2]对分等级不规则三角网的三维高程表示进行了研究, Kofler 等[3]对地形模型的大场景贴图进行了研究。经过长期应用和推广, 形成了一系列可视化商业软件, 如 Google Earth、Skyline、Cadsoft 的 Envisioneer 和 MaK Technologies的 Army Command 2010 等软件。

    我国在海洋三维可视化方面的研究主要从 20 世纪末开始逐渐发展起来,任建武[4]等对海底地形及变化模型进行了研究; 肖如林等[5]对三维虚拟地球下的海洋信息原型适应性进行了分析与研究; 刘海行等[6]基于 IDL 对海洋观测航线断面进行了分析研究; 徐敏等[7]对海洋大气环境的多维动态可视化系统进行了研究; 苏天 等赟 [8]对海底多源综合数据的集成与管理进行了研究等。

    但是, 这些研究大多是针对小范围、局部区域的海洋环境仿真分析建模, 缺少对全球海洋环境可视化进行宏观的系统研究。

    OpenSceneGraph(OSG)是一个基于工业图形标准 OpenGL的高层次 API接口, 即三维可视化渲染引擎。它具有跨平台的特性和较高的渲染性能, 程序员能够通过它更加快速、便捷地创建高性能、跨平台的交互式图形程序。随着虚拟仿真技术的发展, OSG已在三维地理信息系统、计算机辅助设计、科学与工程数据可视化、游戏与娱乐等多个行业得到广泛应用。

    本文通过研究 OSG 三维渲染引擎内部结构, 利用 VC++开发平台结合 OSG2.8.7 开发包, 建立三维球体模型, 在地球模型上对现有海洋环境可视化产品进行宏观展示, 并对现有高程数据、卫星云图进行处理, 增强显示效果, 最终构建一个实时、高效、流畅、逼真的海洋环境三维仿真可视化系统。

    1 系统描述

    海洋环境三维可视化系统主要分以下层次: 基础数据层、可视化驱动层、应用实现层。基础数据层主要对海底地形数据、DEM 数据、卫星云图、ARCGIS 数据、独立应用 3DMax 建立的模型等多类数据进行预处理, 构建可视化系统地基础背景场模型, 通过建立金字塔瓦片分级索引, 达到根据用户不同的交互请求进行及时、快速的数据响应; 可视化驱动层主要通过 OSG 三维渲染引擎对数据进行渲染、显示, 为使用者提供一个的实时、动态、三维可交互的立体环境; 应用实现层根据用户的具体应用需求, 基于可视化驱动引擎, 提供专业可视化仿真模块, 实现海洋环境要素在三维数字球体模型下的交互式漫游、动态加载、多视角动态浏览、交互拾取查询等。层次结构如图 1 所示。

图 1 系统体系结构

    2 关键技术
    
    2.1 场景裁减

    裁减(Cull)就是“从大量事物中进行挑选、删除”。对于一个庞大的三维系统而言, 往往存在大量无助于最终渲染结果的对象, 把它们从场景结构中暂时剔除, 将剩余场景对象发送到 OpenGL 渲染管线, 即只把最终能够被终端用户看到的对象发送到渲染管线[10]。在系统设计中采用视锥体裁减方法, 包括近平面裁剪、远平面裁剪、视锥体侧面裁剪, 超出这一裁剪范围的对象将被剔除出渲染队列。

    2.2 LOD 细节层次节点

    根据细节层次的思想, 在不影响渲染外观的前提下, 系统根据场景对象与观察者的距离, 模型越靠近观察者越精细, 显示范围相对缩小, 以减轻系统绘制场景的负担, 实现全球大范围海底地形的动态、快速可视化仿真。LOD (level of details)节点调度流程如图 2 所示。

图 2 LOD 节点调度流程
    
    2.3 数据的动态调度

    采用视锥体裁减保证每帧中只有一部分数据被传送到渲染管道, 而 LOD 的场景结构牺牲一部分渲染质量换取了效率的提升, 但这些都不能解决“在内存中可能要存储海量数据”这一问题——数百 GB 甚至 TB 级别的数据(如海底地形地貌)很难在现有的计算机硬件条件下全部载入内存中。因此, 数据分页(动态调度)尤为重要, 在显示当前视域的同时, 判断下一步可能要载入的数据, 做出正确的加载和卸载处理, 确保内存中始终维持有限的数据额度。在平台驱动层中, 我们用 osgDB::DatabasePager 来完成这一工作, 主要功能实现流程如图 3(“页面”指用户视野范围)所示。

图 3 数据动态调度实现流程

    3 系统实现

    3.1 场景交互、漫游

    实现三维场景的交互漫游, 主要就是通过矩阵运算, 在三维空间中实现视点变换、投影变换、视口转换等一系列操作, 调整模型的位置姿态, 最终转换为屏幕像素输出。场景的更新包括人机交互事件的整理与传递、动态数据的加载与管理、用户自定义更新操作的执行等。这些工作通过osgViewer::ViewBase 类来统一调配实现, 根据用户自定义操作的内容不同, 场景更新的复杂程度亦不同。更新显示阶段的主要流程如下: (1)收集来自用户事件队列 EventQueue 的交互事件, 并进行整理。(2) 将事件传递给节点的时间回调(EventCallback)和视景器的事件处理器队列(EventHandles)。(3)更新动态调度的数据。(4)根据漫游器(MatrixManipulator)位置,调整场景中的相机。

    无论是用户视角的变化、基于路径的漫游或者其他用户自定义的操作, 场景的显示漫游过程主要是通过以上四个步骤来实现的。

    3.2 基础场景三维球体模型建立

    基础地球模型的建立是实现宏观海洋环境三维可视化的基础, 而海量海底地形背景场的三维建模是地球模型的重要组成部分。基础地球模型的建立主要是通过 VPB 来实现的, VisualPlanetBuilder(简称VPB)是一个强大的地形数据生成工具, 可以读入多种类型的地理影像和高程数据, 并构建不同规模的分块分页地形数据库。VPB 与 OpenSceneGraph 紧密结合, 依赖于 Geospatial Data Abstraction Library(GDAL)库和 LibSquish 库, 分别实现了地理信息数据的识别和多种图像压缩格式, 它具备 TB 级别数据的处理能力, 并可以使用分布式文件系统来执行并发的数据处理。

    利用 VPB 基于栅格高程数据构建三维球体模型,对栅格高程数据和影像数据进行格式化处理, 并自动生成一个的地球模型。同时, 利用 VPB 也可以批量处理多个高程数据或影像数据, 叠加高程模型。模型内部依据不同的分辨率层次进行了金字塔分级,能够实现不同精度、不同细节层次下模型的快速、分层调度。利用 VPB 基于高程数据生成模型, 根据鼠标当前的位置垂直于屏幕发送一条射线与模型进行求交检测, 得到与模型的交点, 读取该点的高程信息, 并换算出相应的经纬度, 实现经纬度与高程的实时查询如图 4 所示。

图 4 基于 30 m 分辨率栅格数据建立球体模型

    3.3 基于三维球体的风浪流数据显示

    在建立的基础场景三维球体模型的基础上, 对大范围的海洋环境数据产品进行显示, 通过研究OSG 开源软件 OSG Earth 中的数据格式, 编辑.earth文件, 实现在三维球体上宏观展示海洋环境信息。以海洋环境温度场信息产品显示为例: 一般情况下,当需要把 PNG, JPG 等自身不具备坐标信息的产品投影到三维球体上显示, 需要先应用 ARCGIS 等专业软件进行坐标转换 , 转换成具有相应坐标的GEOTIFF 格式后, 再加载到三维球体上进行展示。

    由于现有的海洋环境信息数据量比较大, 而且具有定时的更新, 如果用专业软件进行转换具有很大的工作量, 考虑到这方面的原因, 我们采用 XML 语言编辑.earth 文件, 对 PNG 数据(已知坐标范围)通过GDAL 库在系统后台直接进行转换, 实现对海洋环境产品实时处理, 完成坐标投影转换, 动态在三维球体上进行展示。应用 IDL 生成全球的海水温度场数据图, 并通过 GDAL 库与 osgearth 结合在球体上进行全球海水温度场数据三维展示如图 5 所示; 

图 5 全球海洋温度场数据图

    对基本 earth 格式文件的编辑如下: 

    <map name="Clouds" type="geocentric">
     <options>
     <profile>
     <srs>+proj=latlong +a=6610000+b=6600000</srs>
     </profile>
     </options>
     <image name="test" driver="gdal">
     <url>data/tmp.png</url>
     <profile>global-geodetic</profile>

    3.4 矢量数据分层加载

    为在系统中更加全面的展示海洋环境信息, 系统引入了 GIS 数据层的概念, 实现在系统中动态连接多种类型的矢量数据, 丰富海洋环境信息的表达,如可根据需要加入海岸线层、海岛名海域注记层等。
    
    应用 OSG 提供的插件 osgdb_shp 直接读取全球主要铁路干线矢量数据, 并把其作为一个单独的图层加载到三维球体上, 如图 6 所示。在具体的操作中可以根据需要利用函数 dynamic_cast<osgSim:: ShapeAttributeList*>(getUserData())获取 shp 文件的属性数据。

图 6 加载铁路干网 SHP 数据

    4 结语
    
    本系统主要研究了利用 OSG 及相关开发包构建三维球体模型, 并在模型上对海洋环境数据产品进行宏观展示, 对现有的高程、水深、卫星云图等数据进行初步处理, 实现高程模型、云层等效果, 为以后的研究提供大的背景场环境, 为用户提供一个直观、动态、可交互的可视化浏览系统。目前系统还存在一些不足, 有待进一步完善。如海洋环境数据主要是依据观测数据生成的海洋环境产品, 可考虑在以后直接读取观测数据进行处理并在三维球体上动态显示; 在现有系统基础上应用 Activex 等插件技术, 实现海洋环境可视化系统的网络发布; 针对目前卫星云图只是做了简单的处理, 可以把体积云的概念引入系统提供逼真的效果等。

    参考文献: (略)

标签:OSG海洋
上一篇:一种全球尺度三维大气数据可视化系统下一篇:加拿大CAE在广东成立飞行模拟器合资公司
网友评论:基于 OSG 的海洋环境三维可视化系统研究
留名: 验证码:
最新评论
查看全部评论0
暂无评论
您可能还需要关注一下内容:
·水域模拟三维可视化技术研究
·基于GIS的海洋观测数据虚拟仿真研究
·洪水淹没虚拟仿真三维可视化技术研究
·GL STUDIO虚拟仪表在OSG中的集成和应用
·三维虚拟地球的海洋信息适用性分析及原型研究
·海岛礁及周边复杂环境动态三维建模
·电力集控站仿真培训系统的虚拟现实技术实现
·基于有限元分析和虚拟现实的桥梁垮塌场景模拟
·上海海事大学航海模拟仿真实验教学中心
·首个“数字海洋”实验室在津揭牌
☏ 推荐产品

小宅 Z5 2018青春版
商家:小宅

杰瑞特运动平台
商家:杰瑞特智能

Dikalis眼动追踪
商家:赢富仪器

魔神 Hawk
商家:魔神运动分析

5DT Binoculars
商家:四维宇宙

Christie DS+750
商家:四维宇宙

Zalman M220W
商家:四维宇宙

全息360°
商家:四维宇宙

PD F10 AS3D
商家:四维宇宙

PHANTOM系列
商家:四维宇宙
☞ 外设导航
☏ 企业名录
【上海】霍尼韦尔(中国)有限公司
【北京】科视Christie-中国
【北京】北京华如科技股份有限公司
【北京】北京乐卡仕技术有限公司
【广州】广州弥德科技有限公司
【上海】刃之砺信息科技(上海)有限公司
【北京】北京度量科技有限公司
【北京】北京小鸟看看科技有限公司
【北京】北京视科创新科技有限公司
【北京】德可达科技有限公司
关于本站联系我们融资计划免责声明网站建设广告服务咨询策划行业推广
北京第三维度科技有限公司 版权所有 京ICP备15051154号-3
2008-2020 Beijing The third dimension Inc. All Rights Reserved.
Email:d3dweb@163.com  QQ:496466882
Mob:13371637112(24小时)
关注虚拟现实
关注第三维度