• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 应用文书 > 正文

    基于虚拟仿真技术(VR)的校园地震演练实训系统

    时间:2021-01-27 16:01:29 来源:达达文档网 本文已影响 达达文档网手机站

    曾文辉

    摘要:因为人力、场地和时间等因素的限制,举办一场全校师生的地震实训演练的成本是十分高的。而传统的视频教学、书籍授课和板报宣传又达不到理想的教学效果,所以虚拟仿真技术的引入正好解决了以上问题。校园地震演练结合虚拟仿真技术将校园模型和地震演练交互进行数据模拟化,可以输出基于不同VR平台的虚拟仿真实训系统。该虚拟仿真实训系统将会与传统地震演练相辅相成,达到深化师生避震、逃生等知识的作用。

    关键词:地震;虚拟仿真;相辅相成

    中图分类号:TP311    文献标识码:A

    文章编号:1009-3044(2020)23-0061-02

    地震是一种破坏力极大的自然灾害,我国的地震活动表现为震源浅、分布广、频度高、强度大,我国是一个震灾严重的国家,人民的性命和财产因此受到极大的威胁。诸如1976年的唐山大地震、2008年的汶川大地震,其造成的死亡人数和财产损失是极其巨大的,这给遭受地震灾害的人民带来了极为沉重的损失。

    而高校是人流非常密集的地方,当发生地震时会有大量的学生进行避震和逃生,所以必须定时举行全体师生地震演练,现场地震演练所需成本高,不宜长时间和频繁举行,所以虚拟仿真技术的引入,恰好能弥补这方面的缺点。利用虚拟仿真技术进行灾难场景建模,使用Unity 3D引擎里进行烘焙渲染,利用动画系统将角色避震和逃生的过程模拟出来,最后使用程序将整个仿真系统进行交互开发。

    1 系统的整体设计

    本仿真系统是基于Unity 3D引擎进行开发,以头戴式仿真头盔(HTC View或者Oculus rift)作为输出平台。头戴式仿真设备作为输出平台的仿真系统在操控上是区别于传统鼠标和键盘的,是使用手柄设备进行交互。所以在交互设上必须匹配手柄上的交互控件,模拟正常人类双手进行设计(参考图1)。在设计上分为场景设计、UI设计两个部分。

    1.1 场景设计

    本系统的场景设计使以我校为背景进行设计和建模。根据地震的等级强度,地震场景分为两种,第一种是1~4级地震所造成的出现裂纹的场景建筑,第二种是4级以上地震所造成的崩塌的场景建筑。

    利用3ds Max等三维建模软件进行建模,第一种模型主要是因为地震等级不高,破坏程度小,所以建筑仅出现了裂痕。在地震时,建筑的裂痕是渐变出现的效果,所以建模时需要裂痕从不同的方向进行渐变出现。在正常的开发流程中,应该使用3ds Max等建模软件将场景模型创建出来,然后调整模型的线条和点,呈现出建筑模型的裂痕效果,这样做的优点是真实程度高,视觉效果好,但是缺点同样非常突出,模型三角面数量增加,交互成本高,效率低。由于建筑对于仿真系统本身视觉来说是远景,所以采取了模型叠加裂痕效果图片的方式进行效果呈现(效果参考图2)。由于Unity的UGUI系统Image组件具备3D模式和渐变参数,所以裂痕效果将采用Image组件进行呈现。那么只需在Photoshop中行进裂痕效果的透明背景图片制作,然后导入Unity中进行开发。将Canvas组件的渲染模式Render Mode修改为World Space模式(3D模式),Image组件Image Type参数修改为Filled,最后使用程序将控制Fill Amount参数进行裂痕效果的渐变出现(参数修改参考图3)。

    第二种场景模型主要是地震等级高,破坏程度高,对建筑造成崩塌、脱落等损坏效果。在开发的过程中就需要在3ds Max等模型软件中对完整的建筑模型进行切割,将建筑在地震中呈现出破碎或者崩塌效果。在建筑崩塌的效果中不但要呈现出破碎效果,还需要处理好破碎后,建筑碎片的贴图问题,破碎的切面必须粗糙,贴图符合水泥等材质,以求达到真实的效果。在Unity中破碎效果是可以使用破碎插件进行开发的,因为Unity商店具有非常丰富的插件资源。本系统之所以不使用插件,是因为手动破碎能让建筑的切面变得更加真实,能更好地处理切面的材质问题,而且能让系统的运行效率更高,所以在开发中首选了手动破碎(破碎前后的效果参考图4和图5)。

    1.2 UI设计

    本仿真系统是以头戴式仿真头盔(HTC View或者Oculus rift)作为输出平台,在显示模式上是区别于传统显示器的。头戴式仿真头盔视觉角度有110°,模拟人类真实的第一人称视角,所以显示的空间是三维的。Unity官方给这个新的UI系统赋予的标签是:灵活、快速和可视化。简单来说,对于开发者而言,就是有三个优点:效率高效果好,易于使用、扩展,以及与Unity的兼容性高。本系统将会采用官方的UGUI系统的World Space渲染模式进行开发,该模式是3D UI的渲染模式。整个仿真系统主要的UI界面有主标题UI界面和手柄提示UI界面。

    主标题UI界面是整个仿真系统的开始场景,和游戏里的进入游戏的主UI界面一样,主要的区别是在于普通的UI界面是二维的,而本仿真系统的UI界面是三维的。创建一个Canvas画布,设置Render Mode渲染模式为World Space,将画布的Scale的X、Y、Z值设置為0.001,这样能将3D UI的尺寸缩放到正常大小。在Canvas画布中创建一个Image组件作为背景面板,然后分别创建Text文本组件和按钮组件,分别设置图片和文字参数,最后进行界面排版(效果参考图6)。

    手柄提示UI界面是交互操作的步骤提示。该UI界面需要将Canvas画布创建到控制角色的手柄对象下作为子物体,让UI提示面板就可以跟随手柄移动。和主标题UI界面一样,创建相应的UI组件,设置参数,最后进行界面排版。当按下手柄的菜单按键时弹出提示UI界面(效果参考图7)。

    2 交互实现

    Unity是使用C#脚本进行交互开发的,本仿真系统是基于头戴式虚拟设备进行开发的,所以在开发的过程中所使用的大部分功能API都是基于SteamVR Plugin插件进行调用的。交互的实现主要有摄像头震动,模拟地震时的震动效果,通过调节不同的参数,进行地震等级的模拟。还有就是手柄与UI,手柄与物品模型的交互开发。

    2.1 摄像机震动

    头戴式头盔设备的显示主要是通过摄像机Canera进行渲染,所以在模拟地震震动的过程中需要分别控制摄像机Camera的Position和Rotation两个参数。摄像机Camera的Postion和Rotation参数的控制并不是简单的变化,而是需要根据参数和随机时间有一个变化的过程,模拟真实地震的震动过程和人眼在地震是视觉效果。想要达到这种效果,代码上使用了Update方法,该方法是每一帧都执行,那么参数的变化也会每一帧都变化,达到一段时间内变化的过程,代码片段如下:

    void Update()

    {

    Vector3 posAddShake = Vector3.zero;

    Vector3 rotAddShake = Vector3.zero;

    posAddShake+=CameraUtilities.MultiplyVectors(c.UpdateSha

    ke(), c.PositionInfluence);

    rotAddShake+=CameraUtilities.MultiplyVectors(c.UpdateSha

    ke(), c.RotationInfluence);

    transform.localPosition = posAddShake;

    transform.localEulerAngles = rotAddShake;

    }

    2.2 手柄交互

    傳统的仿真系统主要是鼠标和键盘作为交互工具,而以头戴式仿真头盔(HTC View或者Oculus rift)作为输出平台的仿真系统是基于SteamVR Plugin插件进行开发,使用手柄进行交互的机制,模拟真实人类的手。

    头戴式仿真头盔手柄和Unity UGUI的交互是区别于传统的鼠标的,需要用到SteamVR Plugin插件所提供的API进行手柄交互操作。选择所需交互的UI控件,例如Button,然后挂载SteamVR Plugin插件提供的Interactable.cs脚本,该脚本是手柄与所有对象交互的基础脚本,所以手柄与对象交互,就必须挂载该脚本。手柄交互的API主要有OnHandHoverBegin(Hand hand):当手柄触碰到相应对象时触发该方法,OnHandHoverEnd(Hand hand):当手柄停止触碰相应对象时触发该方法,HandHoverUpdate(Hand hand):当手柄触碰到相应对象时每帧调用,以上三个方法都是操控HTC View手柄时相对应的方法。具体的UI交互代码片段如下:

    private void HandHoverUpdate(Hand hand)

    {

    if(hand.GetStandardInteractionButtonDown()||((hand.controller!=null)&&hand.controller.GetPressDown(Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger)))

    {

    }

    }

    3 展望

    自然灾害的实训在现实演练中是成本非常高的,而虚拟仿真技术的诞生恰好能解决此类问题。但虚拟仿真设备的高昂价格、技术开发的成本高、开发时间长等问题让普通用户望而却步。所以随着技术的发展,必须降低虚拟现实设备的成本,大力发展可视化开发,降低软件的开发难度。

    参考文献:

    [1] 李梓涵,吴鸿岳,张明璐,等.虚拟仿真技术在中学灾害教育培训中的应用研究[J].电子元器件与信息技术,2020,4(3):153-155,160.

    [2] 张佳佳,梁锴,张广智,等.三维地震勘探虚拟仿真实验设计[J].实验技术与管理,2020,37(2):128-131.

    [3] 王汉杰. 地震灾害应急救援仿真演练系统的设计与实现[D].武汉:华中科技大学,2019.

    [4] 史双双,赵强.虚拟仿真在地震应急演练中的应用[J].山西建筑,2017,43(26):52-53.

    [5] 赵晶,李建亮,李福海.虚拟现实技术在地震应急救援训练基地中的应用[J].华北地震科学,2016,34(2):63-66.

    【通联编辑:梁书】

    相关热词搜索: 仿真技术 演练 实训

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网