--页脚--基于虚拟现实技术的应急推演沙盘系统的设计和实现摘要:应急模拟演习是为了测试对突发性事件的应急能力和素质。在应急模拟推演中运用先进的虚拟现实技术,可以更好地满足推演的数字化、三维立体化、交互等功能要求,使人产生身临其境的感觉。本文采用Torque3D为虚拟现实工具,设计并研发了一款应急推演沙盘系统。该系统充分发挥虚拟现实技术的3D、互动等特性,可以实现应急推演过程的场景编辑、事件接报、分析研判、决策标绘、演练执行和总结等功能。本文为虚拟现实技术应用到应急模拟演习方面的研究提供了一新途径。0引言对于一些危险行业,如何确保在突发事件来临之时做到最小的损失,定期的执行应急推演是行之有效的防患方式。而传统的应急推演又要耗费大量的人力、物力和财力。这种大量的投入使得应急推演活动不可能进行频繁性的演练。随着计算机和网络技术的不断发展,虚拟现实技术的产生为应急演练提供了一种全新的实践模式,通过将突发事件现场模拟到虚拟场景中去,人为地制造各种突发情况,组织参演人员进入突发事件中,参演人员可以在模拟生成突发事件环境中获得最真实的体验,其身临其境的沉浸感和自然友好的人机交互可以直观地刺激做出响应。通过这种虚拟的应急演练,这样可以大大降低突发事件推演的投入成本,提高了应急推演的训练时间,从而保证了人们面对突发事件时的应对技能和应对决策,提高对突发事件的应对能力,并且可以打破空间和时间的限制,方便的组织各地人员对突发事件进行推演。虚拟现实技术被誉为仅次于互联网的改变世界未来的重要技术。虚拟现实技术以计算机图形学和网络技术为基础,以可视、直观、动态及网络化的方式,全方位、多角度展示突发事件所处的四周环境和各种附属设施,用其特有形象化展示功能、强大的交互性能和对现实的模拟功能,使得培训人员能够从不同的角度、不同的位置去面对应急事件,产生身临其境的奇妙体验。本文在此领域加以尝试,设计并实现了一个基于虚拟现实技术的应急推演沙盘系统。1虚拟现实技术的概念、实现和工具1.1虚拟现实技术的概念虚拟现实,英文名为VirtualReality,简称VR技术。是在20世纪80年代初由美国VPL公司创始人JaronLanier提出的。Reality的英文含义是现实世界或现实环境,Virtual英文表示为这个世界或环境是虚拟的,不真实的。有的也翻译为灵境技术。虚拟现实技术已经属于是第三代仿真技术。其综合了虚拟技术、计算机图像技术、网络技术的优势,通过整合这些技术,能够创建一个虚拟世界,并向使用者提供视觉、听觉、触觉、导航、漫游等身临其境的感受,使使用者可以在虚拟现实环境中的三维实体进行感知和交互,亲身体验在虚拟现实世界中的神秘和感受。虚拟现实技术可以分为桌面式虚拟现实技术模式、沉浸式虚拟现实技术模式、分布式虚拟现实技术模式以及纯软件虚拟现实技术模式等多种类型。与实现效果相配置的硬件有三维立体眼镜、数据头盔、数据手套、虚拟现实反馈器等。根据展示的特性,通常将其分为四种主要展示实现,即全景图像展示实现、三维显示实现、立体声效展示实现和交互展示实现。虚拟现实技术的特性包括沉浸性(immersion)、交互性(interaction)和构想性(imagination)等,同时还具有强大的网络功能、具有多媒体功能、创建三维立体造型盒场景、具有动态交互、人工智能、智能感知等。1.2虚拟现实技术的实现实现虚拟现实技术的工作主要包括四个部分。即数据收集、三维建模、场景构建、交互技术等。--页脚--1.数据收集包括收集相关的文字、地图、数据、图片、声音、视频、照片等等,这是虚拟现实技术的开始;2.三维建模是虚拟现实技术的基础,目前三维建模主要方法有两种:(1)采用几何模型的建模技术;(2)采用图像的建模技术。(3)采用几何模型和图像相结合的建模技术。3.场景构建就是对建好的成型的模型和其他内部设施和外部环境进行整合和优化。场景构建是虚拟现实技术的完善;4.交互技术是实现用户对虚拟物体的操作性。交互技术才是虚拟现实技术的关键和核心。交互技术的实现按照场景构造方式同样主要分为两种:(1)传统的基于几何建模的交互技术。(2)新兴的基于实景图像的交互技术。1.3虚拟现实技术的实现工具——Torque3D介绍Torque3D是一个由GarageGames.公司开发的游戏引擎。该引擎可以作为虚拟现实的实现技术,用Torque3D引擎可以创建复杂渲染系统,高速网络传输,实时编辑,脚本编辑系统等等并能节约开发时间。Troque3D框架是一个强大的C++游戏引擎和工具箱。其核心系统如下所示。Torque3DEngine:采用Torque3DEngine,开发人员根本不用接触底层C++代码就能开发一个虚拟场景,同时也可以通过调用底层C++代码来扩展引擎。如可以添加MYSQL函数或者整合Havork引擎。TorqueToolBox:该模块是管理工具箱的应用程序。TorqueScript:TorqueScript是Torque3D的编程语言,该语言语法与C++极其类似,但更强大灵活。TorqueEditors:这是Torque3D的程序编辑器。WorldEditor:世界编辑器是能够帮助开发人员建造游戏地图场景的工具。包括添加地形、游戏物体、模型、环境效果、灯光等等。GUIEditor:这是Torque3D的用户图形界面编辑器。该工具可以设计和编辑包括过场动画、主菜单、选择对话框、平视显示器等等。TheAssetPipeline:该工具可以导入DTS(静态模型)和DSQ(动画数据)文件来展现3D物体。包括静态模型、人物、建筑和道具。2应急推演沙盘系统的设计包括应急推演沙盘系统的实现模式,功能模块、目的和方式。2.1应急推演沙盘系统的实现模式本系统基于Torque引擎开发设计,根据系统的功能需求共划分成8个子系统(如图1所示),分别是虚拟场景组建子系统、模型子系统、角色子系统、粒子特效子系统、GUI界面子系统、场景特性子系统、声音子系统、输入操控子系统等。模拟演练的逻辑实现就是建立在这8个子系统基础之上。下面对这8个子系统进行简要介绍。(1)虚拟场景组建子系统--页脚--虚拟场景组建子系统用于搭建模拟演练场景,其子系统可以分为通用虚拟场景模块和灾害虚拟场景模块,其中前者主要是一些通用虚拟环境的构建,包括天空、地形、河水、植被等;后者主要为灾害发生环境的构建,包括发生灾害的建筑、设施等,其组成结构如图2所示。(2)模型子系统模型子系统提供虚拟演练场景中所需使用的各种模型,包括人物、车辆、建筑、设备器材等。表1为本应急推演使用的模型。(3)角色子系统该角色子系统提供客户端能够登录的角色,即参与演练的角色,包括编导、接报人员和领导三类,角色定义如表2所示。--页脚--(4)粒子特效子系统粒子特效子系统主要是通过粒子系统模拟喷射水柱、水流、烟火烟雾、爆炸以及一些特殊的光影效果,使场景和图形更接近于现实。Torque引擎的粒子系统相当强大,其粒子系统通常由三种datablock构成:ParticleData(表示粒子的数据块),ParticleEmitterData(表示粒子发射器的数据块),ParticleEmitterNodeData(表示粒子发射器节点的数据块)。本应急推演沙盘使用的粒子系统包括模拟火势发展,模拟烟雾,模拟爆炸和模拟消防队喷射水柱的粒子系统。(5)GUI界面子系统用户界面系统包括登录界面、运行界面、场景菜单以及角色视角四部分。其中,登录界面为参与演练的角色提供演练系统的登录接口。运行界面包括场景的缩略地图,场景菜单为参与演练的角色提供角色操控以及命令下达的接口。角色视角模块为参与演练的角色提供在演练场景中调整视角的接口,实现视角远近、方向等方面的调整。GUI界面子系统组成结构如图3所示。(6)场景特性子系统很多场景事件的实现需要通过区域触发器,区域触发器本质上是场景中的某一个区域,当角色进入或离开该区域时触发事件,Torque引擎会探测到该事件。本系统在消防人员救出受伤人员给医护人员时,使用的区域触发器实现伤员交接过程。另外还需要定义一些活动路径,包括爆炸起火路径,消防队、救护队、安保队车辆抵达灾害现场和撤离灾害现场的路径,被困人员疏散线路路径等。Torque引擎中路径由节点组成,活动对象沿着路径的节点活动,达到最后一个节点就执行下一步动作,如消防队抵达现场展开救援。(7)声音子系统--页脚--Torque使用AudioDescription和AudioProfile两个datablock来定义和组织系统中声音要用到的资源,其中AudioDescription用于描述声音属性,包括声音大小,最大传播距离,是否有回音等属性,而AudioProfile用于定义声音,包括声音源文件和声音描述等属性。本系统涉及的声音子系统包括爆炸声、报警声、不同车辆声、喷射水柱声等。(8)输入操控子系统Torque引擎提供了强大的输入操控功能;通过对各类输入事件(如鼠标点击、滚轮滑动、鼠标拖拽等行为)的捕获与处理,开发人员可根据需要实现不同输入操作的逻辑功能。输入操控子系统的实现可划分为两个模块:输入事件分发模块、输入事件处理模块。输入事件分发模块用于对用户的输入操作实施分类,并根据分类结果调用相应的事件处理模块,实现输入事件的分发与处理;输入事件处理模块为输入操控子系统的核心,用于实现特定输入操作的具体逻辑,并可根据具体逻辑调用相应的用户UI界面。2.2应急推演沙盘系统的功能模块应急推演沙盘系统的层次功能包括客户端界面、场景设置、事件接报、事件分析研判、决策标绘、演练执行、演练总结等。图4给出了应急推演沙盘的功能分解模块。关于应急推演沙盘功能的具体描述见表3所示。2.3应急推演沙盘系统的目的和方式采用虚拟现实技术的应急推演沙盘系统要达到的效果有三点。(1)对应急预案的处理流程进行检验和优化应急预案大都是根据以往应急处理总结的经验,对应急预案的实施效果进行检验比较困难。本系统根据应急预案的处理流程在虚拟场景中进行演练,根据演练效果可以检验出处理流程是否合适。若不合适,则可以通过虚拟场景的反复推演,找到最佳的应急处理流程,以此完善应急预案。--页脚--(2)对员工进行培训各部门员工使用本系统可以模拟单项职能训练,也可以进行应急演练的综合训练。降低实际演练的成本和危险性,将应急预案文本转化为逼真的演练场景,提高培训效果和工作效率。(3)对实际应急处理提供辅助功能根据测绘到的真实场景,依据比例进行三维建模,搭建出逼真的三维虚拟场景,结合GIS的标绘等功能,能够用于实际的应急处理。基于虚拟现实技术的应急推演沙盘系统应用方式主要是四种。分别是:(1)根据现场的灾害情况和环境情况(现场监测视频、现场情况汇报、监测仪器数据等),转化为虚拟场景中灾害产生的相关数据,在虚拟场景中产生对应实际现场灾害等级的虚拟灾害场景。(2)通过对虚拟灾害场景的演示,能够预先知道灾害的发展趋势,从而决定救援实施方案;(3)在确定救援方案后,可以在虚拟场景中同步演练,检查救援效果,从而决定后续救援实施,如出勤的救援车辆是否足够等。(4)根据现场灾害变化情况和救援情况,在虚拟场景中同步模拟,决定后续灾害发展和后续救援情况。3应急推演沙盘系统的总体流程设计本项目开发的目标主要是以应急预案为蓝本,对应急预案展开推演,以检验并完善应急预案的可行性;为员工提供形象生动的培训环境,并对实际应急处理提供辅助作用。本项目的流程主要分为七个步骤:场景设置、事件注入、事件接报、事件分析研判、决策标绘、演练执行和演练总结。在演练中涉及到编导人员、接报人员和专家领导三类角色,另外还包括救护队、消防队、安保人员、被困受伤人员和待疏散工人等五类非玩家角色(NPC),图5给出了应急推演沙盘中功能实施流程,整个演练依据该流程进行。下面分别描述这七个流程步骤:(1)场景编辑该功能是布置演练场景,包括设置演练天气及其变化情况,灾害模型、参演单位及人数和设备配置、受灾场地布局等。其中天气变化情况设置风力和风向变化情况,灾害模型通过传入的外界作用参数根据模型进行演化。包括灾害产