基于UE4的液位过程控制实验平台的开发

2020-10-09 02:55吴敬兵
自动化与仪表 2020年9期
关键词:蓝图液位材质

吴敬兵,范 涛

(武汉理工大学 机电工程学院,武汉430070)

目前,随着虚拟现实技术的迅速发展,高校的虚拟仿真实验已经作为高校实验教学研究的重要内容之一[1]。虚拟现实具有沉浸性、交互性及构想性等特点[2],使其成为信息化时代高校实验教学不可或缺的一项技术。液位过程控制实验是过程控制与仪表这一课程的传统实验,但受限于实验设备老旧、教学方式落后以及课时短等问题,学生无法对实验的原理和流程有清晰的认识。当前,建设液位过程控制虚拟实验平台对于完善实验教学体系,提高实验教学质量,以及培养学生的创新实践能力等,具有十分重要的意义[3]。

在此本文采用虚拟现实技术,以3Ds Max 和Solid-Works作为虚拟场景的建模软件,基于UE4 引擎,设计了虚拟液位过程控制实验平台。该实验平台目前处于试验阶段,即将在武汉理工大学虚拟仿真实验室开放。

1 虚拟实验平台开发流程

在此采用3Ds Max,SolidWorks 工具绘制三维模型,对绘制的模型进行优化以及渲染后导入到UE4 引擎,结合VS2015 编写逻辑事件来实现虚拟实验平台。具体的步骤是:三维模型的绘制,法线贴图的制作与烘焙,模型的优化与导入,虚拟场景的搭建及交互设计,光源的设定,以及打包发布到Web 端。整个实验平台的开发流程如图1所示。

图1 虚拟实验平台开发流程Fig.1 Virtual experiment platform development flow chart

1.1 三维建模

三维模型是构建整个实验平台的基础,而所建模型的质量则直接影响虚拟仿真实验的细腻度和真实感[4]。UE4 提供了例如盒体、椎体、圆柱体等几何体,用户可以自定义几何体的大小以及世界坐标,但相对简单的几何体满足不了此次的实验需求。

在该实验平台开发中,3Ds Max 软件具有上手较容易,操作简单高效等优点,符合此次三维建模软件的要求。3Ds Max 中生成的所有模型在导入UE4 后都将失去原有的材质,故在建模之初,无需给模型赋予材质。为了确保实验设备的各部分零件在导入UE4 后可以正确组装,同时也为了给连接各部件的管道的建模提供空间定位,因此需要在3Ds Max中对实验设备进行装配。

在将液位过程控制实验设备除连接管道之外的所有部件模型建立完毕之后,使用3Ds Max 的“文件”>“导入”>“合并”命令,把各部件模型组装成实验设备整体模型。根据装配的效果,对各部件的尺寸进行微调,使之趋于完善。之后,以各部件为参照,绘出连接管道的模型,完成液位过程控制实验设备建模工作。实验设备总装如图2所示。

图2 液位控制实验设备总装Fig.2 General assembly of liquid level control experimental equipment

1.2 模型的优化

初期建模都为高精度模型,而高精度模型的面数过多,会导致引擎的运行不流畅。其次,未优化的模型在后期的灯光烘焙中也会难以进行。为提高场景显示的实时性,对场景模型进行优化是非常必要的。

在不改变模型大致形状的基础上,适当地减少模型的面数,比如通过删除对模型外观效果及作用效果不明显的面[5],以及在场景中被遮挡的线和面,都可以达到减少面数的效果。通过模型的优化,提高了引擎的工作效率。

1.3 模型的导入与场景构建

模型的导入属于UE4的基本操作,在“窗口”栏中选定内容浏览器,在此可以建立文件夹,将简化后的模型通过IMPORT 导入即可,内容浏览器管理引擎的材质、动画、光源,以及视频等文件。需要强调的是,导入UE4的模型文件是ABC 格式或FBX格式。将模型导入UE4 中后,并附加贴图材质、UV,整个实验室初见成型。虚拟实验室的渲染效果如图3所示。

图3 虚拟实验室渲染效果Fig.3 Rendering effect of virtual laboratory

1.4 交互设计

虚拟实验中的交互功能设计主要在UE4 中进行,这也是整个虚拟实验设计最关键的部分。在构建好的虚拟实验室场景中,通过C++代码和蓝图技术完成对实验的水流过程仿真、水箱液位变化仿真,以及整体实验交互功能设计。

1.5 平台发布

完成虚拟实验平台的交互逻辑之后,需要将项目打包发布。当前,UE4 支持Android,Html5,Linux,Windows 等平台的项目发布。而液位过程控制虚拟实验平台将发布到Html5 平台,构建基于Web 端的虚拟实验平台。在UE4 主界面,选择“文件”>“打包项目”,在选择“Html5”后,对网页发布形式相关参数设置即可。初次发布网页端所需时间较长,对发布成功生成的文件包上传至搭建的服务器上,即可通过网络访问。

2 实验平台功能模块设计

液位过程控制虚拟实验平台应满足过程控制与检测仪表课程的实验需求,面向对象为高校的学生和老师。该实验平台中,采用模块化的设计思想,将实验平台分为四大模块:实验指导书模块、演示功能模块、操作功能模块和实验报告模块。平台功能模块如图4所示。

各模块的功能如下:

1)实验指导书模块 将液位过程控制实验的实验原理及目的、实验操作规范以及实验方法整合成PDF 文档形式,保存在UE4的内容浏览器的文件夹中。在实验操作开始前,学生可以通过学习实验指导书模块,熟悉该实验的实验流程。

2)实验演示模块 添加教学演示功能可以使学生更快地掌握虚拟实验平台的操作方法,节省时间成本。该模块的设计主要为视频演示和文字演示功能,视频演示功能使用蓝图技术实现,将原先录制好的教学视频放入UE4 所创建的 “文件媒体源”中,并打开“媒体播放器”选择该视频,最后在目标网格体上创建材质,通过蓝图技术实现此功能,视频播放功能蓝图如图5所示。文字演示功能包括内容提示、倍速播放、进度条等UI 界面功能的设计。

图4 平台功能模块Fig.4 Platform function module

图5 视频演示蓝图Fig.5 Video presentation blueprint

3)实验操作模块 该模块与实验演示模块相似,不同的是,需要学生亲自动手操作液位过程控制实验。学生亲自操作实验,可以加深对实验的理解和记忆。实验操作模块有5 个步骤:实验前的设备检查;打开电磁阀和泵前阀;打开总电源和单相2的电源开关;设定需要控制的中水箱的高度;记录实验数据和阶跃曲线。在该模块中,学生可以通过鼠标点击完成实验,亦可通过VR 眼镜和手柄完成实验。实验操作模块如图6所示。

4)考核模块 在考核模块中,学生自己撰写实验报告并将记录的实验曲线提交到系统,系统可根据操作的正确与否在后台自动计算成绩。

图6 实验操作模块流程Fig.6 Flow chart of experimental operation module

3 关键技术

3.1 Blueprint 蓝图可视化脚本

Blueprint 蓝图是UE4 特有的程序编辑器,是一类完整的脚本系统。其工作原理是通过系统中的引线将节点、事件、函数以及变量按照逻辑顺序连接[6],实现开发者需求的功能。

蓝图系统包括类蓝图、控件蓝图、角色蓝图、关卡蓝图等类型,在实现交互功能时,往往需要用到各种蓝图以及蓝图之间的通信功能。类蓝图可以看作为被定义的具有各种功能的集合体,是最为常用的一类蓝图;控件蓝图用于创建虚幻示意图形(UMG)UI,如2D 界面或3D 控件;角色蓝图中包含了对角色动作及相关数据的设置,此外,还可以在其中定义软件的运行命令等;关卡蓝图是一种特殊蓝图类型,可以充当关卡范围内的全局事件图形。蓝图之间的通信功能则可以使得各个蓝图之间的数据进行互通,相互建立联系。

此外,Blueprint 支持与C++的通信和转换[7],比如当开发者遇到复杂的事件驱动开发和一些物理模拟时,由于蓝图是在虚拟机上运行工作,需要消耗更多的CPU 性能,而将蓝图代码转化为原生C++代码进行编译和运行会解决此问题。

3.2 水流材质的实现

在虚拟液位过程控制实验中,实验现象特效的逼真程度是决定实验真实度的关键因素。而在该实验中,主要体现在对中水箱的液位变化和管道中的水流的效果分析与实现。

UE4 引擎提供基于物理渲染的材质系统,通过综合使用多种函数和材质功能节点制作形成水流材质。在实现水材质蓝图中,Lerp 函数和Panner,Fresnel 等节点有着关键作用。Panner 节点与表示涟漪的贴图互相作用,给人以一种水正在移动的感觉;Lerp 函数又称线性插值函数,用于实现2 个值之间的平滑过渡。在蓝图中的作用则是使光线在网格体上的折射自然地转变。而Fresnel 节点是指光照基于观察者的角度来形成不同强度反射的现象。

4 结语

采用虚拟现实技术,结合单回路液位控制实验教学大纲,利用UE4 引擎,开发出一套液位过程控制虚拟实验平台,实现了对水流过程和水箱液位变化的仿真。虚拟液位过程控制实验,解决了传统的液位控制实验设备少、设备老化、可重复度低等问题,充分发挥了VR 的技术优势,提高了实验教学的效率。实验平台达到了预期效果,未来将进一步完善内容以及功能,如锅炉温度变化仿真、优化对学生的考核方式等。

猜你喜欢
蓝图液位材质
蓝图
一种用于双输入双输出液位控制系统的状态估计控制器的设计
国外储罐防溢油液位的设置
五年蓝图
刚柔并济
材质放大镜电光闪耀亮片
外套之材质对比战
针织衫之材质对比战
宝马530车冷却液液位过低报警
智能液位控制器在排水系统中的应用