时间:2024-05-04
吕策 杜江岳
摘要:在输水工程沿线居民对于水资源需求不断提高的今天,其水资源的质量保障对于每一位沿线居民的生活有着十分重要的影响。在应急演练方面,虚拟现实在表达语言文字难以理解的动态过程中有着得天独厚的优势,文章以管涌险情为例,采用blender对输水工程主要模型进行建模渲染,使用unity3D进行交互设计与实现,表现了输水工程管涌险情展示方法,提出一种基于虚拟现实技术的输水工程应急演练培训系统,帮助输水工程工作人员学习输水工程发生管涌险情时的应急抢险方法,对保障输水工程安全运行具有重要意义。
关键词:输水工程;应急演练;虚拟现实;unity3D
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)08-0106-03
随着生活居民的用水标准不断提高,输水工程的水质对于沿线居民的生活十分重要,所以输水工程能否安全运行对沿线居民的生活质量而言起着决定性作用。因此,做好险情应急演练从而保障输水工程的安全运行对于输水工程的每一位工作人员和沿线居民用水安全非常必要。传统的输水工程险情应急演练方法需要投入大量的人力和物力,演练效率也十分低下。
在计算机图形学高速发展的今天,虚拟现实技术在表达语言文字难以准确描述的动态过程中有着不可比拟的优势。通过blender进行三维建模并进行贴图渲染,然后将模型放在unity3D进行交互设计与开发,可以很好地表达一些语言描述晦涩难懂的动态过程,并给用户带来良好的体验[1]。基于虚拟现实技术的输水工程应急演练培训系统可以很好地解决输水工程工作人员演练培训效率低下的问题,工作人员只需戴上虚拟现实设备即可融入虚拟环境进行沉浸式体验完成应急演练培训。
1 输水工程管涌险情应急演练仿真方法
管涌险情对于输水工程而言,发生概率很小,但危害性极大。要实现基于虚拟现实技术的输水工程管涌险情灾变仿真,首先要对输水工程地形进行建模。灾变仿真方法首先要对输水工程渠道进行建模,结合AutoCAD工程图纸数据,使用blender三维建模软件对渠道进行建模,并在现场采集渠道模型贴图对模型进行贴图渲染,提高虚拟环境的真实感,然后利用unity3D引擎结合C#编程语言对管涌形成过程进行仿真,并进行交互设计与实现,提出一种基于虚拟现实技术的输水工程管涌险情应急演练仿真方法。
1.1开发流程
在应急演练培训系统开发之前,需要对系统进行功能设计和需求分析。对管涌险情灾变过程和应急演练培训过程所需的灾变模型和抢险物资进行三维建模,然后放在unity3D结合C#语言对险情发生特征和应急抢险过程特征进行仿真。结合输水工程应急抢险流程,设计的应急演练培训系统中的流程有发现异常、险情上报、应急抢险,其中发现异常主要以建模渲染的方式展现,险情上报主要以虚拟人物语音播报的形式展现,应急抢险则主要以用户交互的形式进行体验和学习。结合上述抢险流程,可以设计有语音播报子系统、动画子系统、交互子系统等系统架构在系统中进行实现,子系统之间的关系如图1所示。
1.2 blender技术
blender是一款开源免费的三维建模软件,提供了一系列三维制作功能,如:建模、动画、材质、视频剪辑。其基于OpenGL的图形界面可以在任何平台跨平台支持,自带插件更是可以帮助用户更好地实现三维制作流程[2]。Blender可以进入编辑模式对模型进行点面线编辑,这样可以帮助用户更加准确地进行模型尺寸修改,再结合材质和纹理编辑,可以很好地展示输水工程的灾变演变效果。blender技术通过分析输水工程实体的各项数据,在计算机建模软件最大程度地还原输水工程原来的形态,实现输水工程的高精度可视化。例如高填方渠道的具体模型如图2所示。
在對输水工程进行三维建模构造虚拟环境时,为了高度还原真实输水工程原貌,需要对输水工程进行实地调研并采集纹理贴图,然后在blender软件将贴图纹理贴在输水工程模型上,以便于用户再进行交互时有身临其境的沉浸感,高填方外坡纹理如图3所示。
1.3 unity3D技术
在blender三维建模软件中完成贴图纹理工作的渠道模型,需要放到unity3D中进行实时渲染,并结合C#语言完成灾变过程仿真和应急演练交互的实现。Unity3D是一款用于虚拟现实内容创作和运营的平台,用户可以用unity3D来开发游戏、影视制作、可视化仿真等,其应用领域十分广泛。Unity3D开发主要使用C#语言进行功能开发,用户可以根据unity用户手册进行所需功能的设计与实现[3]。Unity常用的命名空间有:UnityEngine、UnityEditor等;常用的类有:Transform、MonoBehaviour、Application、 GameObject MonoBehaviour等;常用的函数有:Start()、Update()、Awake()等,可以用来控制一些动画播放和交互功能的实现。
2 管涌险情灾变仿真
管涌险情的形成过程总体需要两个因素,第一个因素是输水工程的水下的土壤粗颗粒之间存在孔隙,且孔隙直径较大,可通过土壤细颗粒,输水工程的水下防渗工程存在缺陷,导致渠道内渠水外出,带动土壤细颗粒在孔隙间流动,土壤细颗粒被带出渠堤外坡,长此以往形成管涌通道[4]。在通过虚拟现实技术制作管涌形成过程关键动画时,需要对管涌通道进行建模,并将模型置入渠道高填方模型,在unity3D中结合C#语言实现管涌形成过程灾变仿真。
2.1 管涌险情灾变仿真
在unity中,管涌形成过程可分为两步来表现,第一步为管涌渗土过程,第二步为水土流失过程。两个过程可通过遮罩动画的方式来表达。在技术路线上,第一步管涌渗土过程动画需要在管涌通道模型上添加一层遮罩层,且能够透过该遮罩层看到“被遮罩层”管涌通道对象及其颜色变化属性,使其表达管涌形成过程第一步;第二步水土流失过程可通过粒子系统拖尾来模拟水流带动土壤细颗粒流动过程。最终对形成机理动画进行录屏,输出离线动画放置在场景中进行播放。管涌形成过程视图如图4所示。
2.2 unity渲染管线
完成输水工程模型的构建和贴图后,为了更好地提高虚拟场景中渠道和其他模型的真实感,需要在unity中通过渲染管线对模型进行渲染。在unity中,渲染管线按是否可以进行编程改动又分为固定渲染管线和可编程渲染管线。其中固定渲染管线的模型表面光的反射、折射算法固定,这会影响到不同模型表达不同物体的质感[5]。根据输水工程虚拟场景的特殊性,我们采取可编程渲染管线对输水工程虚拟场景中的不同模型进行渲染和着色。可编程渲染管线中顶点着色和片元着色部分可通过编程实现,顶点着色的输出是片元着色的输入,其中顶点着色程序主要是对模型表面对顶点进行矩阵变换得到模型的轮廓,获取顶点的位置信息,然后对模型轮廓上的像素点进行线性插值处理。片元着色在得到顶点着色变换后的模型轮廓后对模型表面每个像素点的颜色进行检测,获取当前位置的色差变化,输出当前像素点的颜色信息,来决定是否修复当前像素的颜色。渲染管线的技术路线图如图5所示。
2.3 应急演练培训交互设计与实现
为了保证用户更好地学习管涌险情应急抢险过程,需要在unity3D中对培训过程进行交互设计与实现。在场景中,我们给用户设定工程巡检人员的角色,并为其添加移动交互功能和语音提示功能,巡检角色移动控制的部分脚本如下:
void Update () {
float vertical = Input.GetAxis("Vertical");
float horizontal = Input.GetAxis("Horizontal");
if (Input.GetKey(KeyCode.Left))
{
rigidbody.velocity = Vector3.forward * speed;
}
if (Input.GetKey(KeyCode.Right))
{
rigidbody.velocity = Vector3.back * speed;
}
if (Input.GetKey(KeyCode.Up))
{
rigidbody.velocity = Vector3.left * speed;
}
if (Input.GetKey(KeyCode.Down))
{
rigidbody.velocity = Vector3.right * speed;
}
}
在用户角色和输水工程三维模型身上添加碰撞检测机制,用户在培训系统中漫游进行工程巡检时可以通过人物与建筑物的碰撞检测实现交互的触发机制,以及让用户有更好的工程巡检体验,触发检测触发机制的视图如图6所示。
为了让用户在应急演练培训中学到更多知识,我们采用更多的交互知识问答形式来帮助用户进行抢险方案的选择和预演。在unity3D中,通过在用户摄像机视角摆放UI画布填写抢险方案文本内容,设定正误判断来帮助用户进行管涌险情应急演练培训知识的学习。在用户体验应急演练培训系统时,需要用户通过交互进行选择管涌应急抢险方案。用户需要进行的交互有:险情上报流程的选择、管涌出水口抢险物资的选择、入水口抢险物资的选择。例如进行管涌入水口应急抢险物资选择的UI效果图如图7所示。
3 应急演练培训系统集成与调试
在完成管涌险情灾变仿真和应急演练培训系统交互设计与实现工作后,开始进行系统的集成,这是系统开发的最后一步。在系统的集成与实现中,选择合适的虚拟现硬件平台,将桌面式的虚拟现实沉浸化。实现最终的系统开发。本系统选择虚拟现实设备 HTC vive focus plus作为开发设备,该款设备是一种具有六自由度的头戴显示器,其内置六自由度控制器可以精准捕捉用户手部移动,并对用户手部力量进行感知,使用户体验更加沉浸和真实。
3.1 设备调试
在完成管涌险情灾变仿真和应急演练培训交互设计与实现工作后,可在unity中把完成交互开发工作的应急演练培训系统打包为安卓apk,然后对头戴式显示器进行调试,将应急演练培训系统植入头显进行交互体验,通过头戴显示器进行三维成像,通过定位基站实现位置追踪,通过手柄开发,实现主要的交互功能[6]。具体流程如图8所示。
3.2 系统集成与发布
完成头戴显示器的调试后,需要在unity3D中对应急演练培训系统进行集成和打包。在打包之前,需要对unity3D进行安卓环境配置,包括JDK、SDK和NDK的安装和环境变量配置,然后在unity的偏好设置中选中安卓资源包的安装路径即可完成培训系统的集成和打包[7]。
4 结语
本文主要介绍一种基于虚拟现实技术的调水工程应急演练培训系统的设计与实现流程,技术路线主要包括输水工程的三维建模、模型渲染、动画制作、管涌险情灾变仿真和交互设计与实现,最后将前面所有工作进行系统地集成打包安装入HTC vive focus plus头戴式显示器供用户进行沉浸式体验。基于虚拟显示技术的应急演练培训系统可以帮助培训人员快捷完成应急演练培训任务,对于培训人员来讲是一种形象逼真的表现方法,对于输水工程应急演练培训方式的创新具有重要意义。
参考文献:
[1] 汪子涵,董维华.淤地坝水资源调控三维仿真系统[J].电脑知识与技术,2021,17(6):205-208.
[2] 刘和彬,廖剑斌,李华川,等.Blender虚拟现实环境下的工业机器人建模[J].轻工科技,2017,33(5):77-78.
[3] 马振勇.基于Unity3D的应用关系架构可视化系统的设计与实现[D].北京:中国科学院大学(中国科学院沈阳计算技术研究所),2021.
[4] 刘紫蕊,江克证.堤防大坝管涌问题的研究[J].中国水运(下半月),2017,17(5):197-199.
[5] 马明星.VR系统中图形渲染和视觉传达研究设计[D].杭州:杭州电子科技大学,2018.
[6] 刘传.500kV GIS变电站虚拟现实仿真系统研究[D].郑州:郑州大学,2020.
[7] 冯骁.基于安卓系统终端的虛拟现实全景展示平台的研究与实现[D].济南:山东大学,2015.
【通联编辑:梁书】
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!