登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 电子信息类 > 通信工程 > 正文

基于OpenSceneGraph的城市湖泊的虚拟视觉模拟外文翻译资料

 2022-07-22 13:31:58  

英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料


基于OpenSceneGraph的城市湖泊的虚拟视觉模拟

摘要

随着虚拟现实在各行业的迅速发展和广泛的应用,三维虚拟视觉仿真技术已经成为水利工程信息管理的重要组成部分之一。在GIS与Remotesense计算机图形学和水渲染等相关支持技术深入研究之后,本文提出了大型城市湖泊三维虚拟视觉仿真系统(3D VVSS)的开发框架。结合湖北省武汉市东湖大型生态水网调度项目和OpenSceneGraph平台,构建了城市湖泊3D VVSS,可提供虚拟漫游,信息查询,水质显示实时监控信息等等功能。最后,讨论了一些优化措施来提高VVSS的运行速度和效率。

关键词:OpenSceneGraph;虚拟现实; 视觉模拟;数字湖;三维可视化

1介绍

湖北省首府武汉市位于中国中部,以数百个湖泊而闻名。这些湖泊具有巨大的社会影响力,经济影响力和环境影响力。但近几十年来,武汉湖泊水污染已成为严重问题。幸运的是,地方政府意识到这些问题的严重性,并采取了一些积极的措施来解决问题。特别是2010年4月起,实施了大型水利工程,提高湖泊水质,恢复生态环境,保障饮用水供应。该项目将在六个主要城市湖泊中挖掘转运渠道,并从长江转水,通过水循环提高湖泊的水质。为了配合大型水利工程,提高输水效率,优化水循环线,基于水流调度和水动力计算的多目标调度优化算法,需要有效的决策支持系统(DSS)。此外,具有直观交互界面和逼真的可视化效果的3D VVSS也是为政策制定者或相关官员提供有用信息所必需的。基于OpenSceneGraph(OSG)的3D渲染引擎和实际项目背景,使用3DS Max和Visual Studio 2010软件开发了城市湖泊的3D VVSS。开发的系统不仅适合展示城市湖泊的地理环境, 也可以动态展示合理经济的调度方案,污染程序,监测实时水质信息。本文的其余部分安排如下。第二节介绍场景图的概念,以及如何构建主要包括地形,建筑物和湖水的节点。第三节描述了系统架构和系统功能。 第四节开发实施关键技术; 仿真结果如本节所示。最后,第五节给出了结论。

2场景图的构造

作为强大的3D图形引擎,OSG在科学可视化,虚拟现实,游戏等领域得到广泛应用.OSG使用场景图来组织,管理和渲染所有数据集。

如今,一部分高性能的软件已经使用了 OSG 来渲染复杂的 2D 和 3D 场景。 虽然大部分基于 OSG 的软件更适用于可视化设计和工业仿真,但是在使用 3D 图形的每个领域, 都已经出现了 OSG 的身影。 这其中包括了地理信息系统( GIS), 计算机辅助设计( CAD),建模和数字内容创作( DCC),数据库开发,虚拟现 实,动画,游戏和娱乐业。

OpenSceneGraph是一个开源的场景图形管理开发库,主要为图形图像应用程序的开发提供场景管理和图形渲染优化功能,它使用可移植的ANSI C 编写,并使用已成为工业标准的OpenGL底层渲染API,因此OSG具备跨平台性,可以在Mac OS X、Windows和大多数类型的UNIX和Linux操作系统上运行。在OpenSceneGraph中,大部分的操作可以独立于本地GUI,但是OSG也包含了针对某些视窗系统特有功能的支持代码,这主要是源于OpenGL本身的特性。

OpenSceneGraph是源码公开的,它的用户许可方式为修改过的GNU宽通用公共许可证。

2.1场景图形的概念

在OSG中,场景图是组织用于高效渲染的空间数据的分层树数据结构,它封装了最低级别的图形原语和状态,以便可视化通过低级图形API创建的任何内容。场景树通常包括各种类型的节点,并且三种基本类型的节点是组,节点和Geode节点。应用程序使用组节点来组织和排列场景中的几何形状。场景图树由顶层根节点指向。在根节点下方,组节点组织几何和控制其外观的渲染状态。因此,我们首先需要设计场景图,并构建开发前所需的所有模型。

场景图形采用一种自顶向下的,分层的树状数据结构来组织空间数据集,以 提升渲染的效率。场景图形树结构的顶部是一个根节点。从根节点向下延伸,各个组节点中均 包含了几何信息和用于控制其外观的渲染状态信息。 根节点和各个组节点都可以有零个(有零个子成员的组节点事实上没有执行任何操作)或多个子成员。在场 景图形的最底部,各个叶节点包含了构成场景中物体的实际几何信息。
OSG 程序使用组节点来组织和排列场景中的几何体。想象这样一个三维数 据库:一间房间中摆放了一张桌子和两把一模一样的椅子。你可以采用多种方法 来构建它的场景图形。表示一种可能的组织方式。根节点之下有四个分支 组节点,分别为房间几何体,桌子几何体,以及两个椅子几何体。椅子的组节点 为红色,以标识它们与子节点的转换关系。椅子的叶节点只有一个,因为两个椅 子是同样的, 其上级组节点将这把椅子转化到两个不同的空间位置以产生两把椅的外观效果。桌子组节点只有一个子节点,即桌子叶节点。房间的叶节点包括 了地板、墙壁和天花板的几何信息。

场景图形通常包括了多种类型的节点以执行各种各样的用户功能,例如,开 关节点可以设置其子节点可用或不可用,细节层次( LOD)节点可以根据观察者 的距离调用不同的子节点,变换节点可以改变子节点几何体的坐标变换状态。面向对象的场景图形使用继承的机制来提供这种多样性, 所有的节点类都有一个共 有的基类,同时各自派生出实现特定功能的方法。

大量定义的节点类型及其内含的空间组织结构能力,使得传统的底层渲染
API 无法实现的数据存储特性得到了实现。 OpenGL 和 Direct3D 主要致力于图形 硬件特性的抽象实现。尽管图形设备可以暂时保存即将执行的几何和状态数据 (例如显示列表和缓冲对象),但是底层 API 中对于上述数据的空间组织能力在 本质上还是显得过于简单和弱小,往往难以适应大部分 3D 程序的开发与应用需 求。

2.2模型的建立

模型建设是一个重要且沉重的基础工作,因为大部分设计任务是整个系统开发过程中的3D建模。建立3D模型的工具很多,例如3DS Max,Google,SketchUp和MultiGen Creator。

本文采用3DS Max 2010创建了特殊或标志性的建筑物,并将其导入到OSG中使用。图1显示了东湖风景区磨山上的一座标志性建筑,称为朱德石碑亭。对于普通建筑物和树木,我们使用ArcGIS和Terra Vista软件批量自动生成。

图1.磨山的石碑馆

2.3地形模型节点

3D VVSS是在具有广泛区域和高分辨率的真实地形的基础上实现的,因此必须对地形节点进行一些优化处理。首先,数字高程模型(DEM)数据和数字正射影像(DOM)被注册,剪辑以获得目标区域。然后将普通建筑和道路模型附加到地形,并以tif格式输出。最后,使用VirtualPlanetBuilder(VPB)获得了ive格式的地形。VPB是一个开源地形数据库创建工具,用于创建兼容OSG的大规模分页数据库,它能够读取广泛的地理空间和高程数据,并从小地形数据库建立到大规模的整个星球分页数据库。图2给出了该系统中包含普通建筑物的地形节点的截图。 使用VPB,可以设置地形模型的细节级别(LOD)级别,以获得高渲染效率。

图2运行场景截图

2.4湖景场景节点

水的现实仿真更为困难,因为它涵盖了许多自然特征,如反射,折射,变形,眩光,波动,波浪传播和风的影响,特别是对于水模拟需要实时交互。考虑到渲染效率和现实感,本文基于OsgOcean模块(一种基于OSG和OpenGL着色语言(GLSL)的开源软件)定义了一个名为WaterSceneModel的C 类。OsgOcean采用统计波动模型进行模拟并使用GLSL进行渲染。 OsgOcean图书馆包括许多现实的效果,如泡沫帽,折射/反射通道,神射线,表面眩光,水下景深,水下/雾化,模拟光吸收和散射,淤泥效应,屏幕变形效应[6]。 湖水的最终渲染结果如图2所示。

3 系统框架与关键技术

为了更好地支持顺利实施,为大型生态水网调度水利工程提供有效的信息管理,我们研究组正在开发一个集城市三维VVSS为一体的DDS。 对于3D VVSS,其框架和系统功能如下所示。

3.1 系统功能

根据需求分析,3D VVSS主要具有以下功能。

(1)漫游。通过使用定制的操纵器和OSG的操纵器,并且满足各种漫游体验,该系统提供了五种免费漫游功能:轨迹球,地形,驱动,飞行和定制漫游方式。 用户可以在虚拟场景中使用鼠标和键盘漫游。同时,还提供了可以沿着预定路线播放漫游动画的路径漫游功能。 此外,用户可以通过鼠标和键盘操作来定制漫游路径和播放路径动画。图3是创建自定义路径的截图。

(2)监控数据实时显示。 通过无线传感器,监测数据如水位,温度,风向和风速,以纯文本格式收集和存储。 本文开始一个线程来监视监视数据文件的变化,并在3D虚拟场景中动态显示。

(3)污染介绍。 通过利用有限体积法和正交网格求解大湖水质二维数学模型,可以得到水质数据。 然后在计算结果数据处理后,可以动态显示湖水质变化过程

(4)信息查询等功能。 水泵,水闸等水利设施的信息查询包括在系统中。还有很多功能,如天气现象模拟,天空背景变化,由于空间有限,不详细讨论。

图3 自定义漫游路径(绿色框是路径点)

3.2系统框架

根据系统分析和系统设计的结果,系统框架可以设计,如图4所示。

图4 主要的实施技术

高运行速度和效率对于3D VVSS至关重要,因为它可以为操作员提供良好的用户体验。 同时,应用软件也需要直观的用户界面。因此,系统效率的主要关键实施技术如下:

  1. OSGWidget。作为一个优秀的跨平台图形渲染引擎,OSG可以在所有操作系统上运行,并与大多数框架集成,包括Windows下的MFC和.NET,Linux下的GTK ,Mac OS X下的Cocoa,以及像Qt和wxWidgets这样的跨平台系统。虽然这些框架具有强大的GUI创建能力,但也增加了开发和系统负载的难度。 OsgWidget库是OSG的轻量级核心NodeKit,并为3D应用程序提供了一个2D GUI小部件集。使用OsgWidget可以提高系统的运行速度,使用OsgWidget,必须单独创建和维护一个窗口管理器,因为它定义了整个UI系统的大小和基本属性。窗口对象的数量,如osgWidget :: Boxand osgWidget :: Canvas,可以添加到管理器中以显示和接收用户事件[8]。 在这项研究中,我们定义了一个标签类和一个菜单类来构建用户菜单。 然后,通过定义一个NodeCallback类来实现菜单功能。 图5显示了VVSS的设计菜单。

图5 OsgWidget菜单

  1. NodeVisitor和回调机制。OSG NodeVisitor是一个强大的工具,用于快速搜索场景子树和子图。 通过这种机制,可以动态地操作特殊节点,如修改渲染状态,替换纹理图像。 例如,控制雨,雪的效果并更改HUD(平视显示)文本; 这些操作都需要NodeVisitor机制来获取指定的节点。 回调是在事件发生时执行的用户定义函数。 在OSG场景图和后端中有几种回调,如NodeCallback,UupdateCallback,EventCallback,StateAttributeCallback。 通过定制的NodeCallback类,本研究根据上述NodeVisitor类实现了OsgWidget Menu操作的所有功能。
  2. 优化。为了建立快速,实时的渲染VVSS,并以有效的方式加载,组织和渲染大量数据集,他在本研究中采取了以下措施,并获得了合理的视觉模拟结果。
  3. 使用多线程。现在,具有多处理器或多核处理器的计算机非常受欢迎,多线程程序可以充分利用处理器的容量,因为每个线程都可以占用单个处理器。OSG的OpenThreads库是一个轻量级线程API,为OSG应用程序,甚至通用的C 线程程序员提供了一个最小和完整的面向对象的线程接口。 因此,通过多线程我们可以并行化OSG任务,如CULL和DRAW任务,以加快场景渲染。例如,本文采用独立线程来监视包含无线传感器收集的气象数据的数据文件的变化。
  4. 动态场景剔除。场景剔除是因为被遮挡而不能在场景中看到的东西。通过忽略当前视图中不可见的对象,可以提高渲染效率。在我们的研究中使用了几种剔除技术:背面剔除,特征剔除,视锥截尾和剔除剔除。 本文还利用场景分页机制,采用四叉树结构对大尺度地形进行视角截尾筛选。将地形分为小块后,系统可以通过动态数据寻呼获得较高的渲染效率 (osg :: PageLode)和四叉树结构。
  5. 资源最小化。我们知道,如果分配的资源数量越少,模拟系统越快越流畅。 所以我们应尽量减少资源。为了资源最小化,我们可以通过将几何结合到一个中来减少几何和纹理对象,使用较低分辨率的图像替换纹理并使用原始集和索引机制而不是重复的顶点进行压缩,并共享渲染状态和纹理等。同时,一个好的场景不应该包含太多的这样一个只有一个孩子的父节点。此外,不要在不需要修改的节点上使用DYNAMIC标志。 最后,考虑使用缓冲池来分配和释放资源,减少加载和卸载资源的频率。通过实验,系统的帧速可以达到60 f / s,如图6所示。实验环境是Intel(R)Core(TM)2 Duo CPU T8100 @ 2.10GHz,Windows 7OS,4GB RAM和 NVIDIA Quadro NVS 135M显卡。

图6显示了我们的仿真系统中3D风力电流性能的统计数据。 在图6中,有71460个独特的原语,并且渲染了2911424个实例的基元,帧速率可以通过测试达到高达60fps。 与其他技术相比,我们

全文共6094字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[145793],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图