基于Unity的中学化学实验虚拟现实系统

2020-06-12 07:31李谷伟
电子技术与软件工程 2020年3期
关键词:虚拟现实粒子火灾

李谷伟

(浙江东方职业技术学院数字工程学院 浙江省温州市 325000)

1 引言

中学化学实验室里普遍存放着大量的化学物品,具备易燃、易爆、腐蚀性强的特点。在化学实验过程中,由于学生对实验过程不熟悉,操作不规范,往往极易造成火灾、爆炸、腐蚀人体皮肤等安全问题。除此之外,化学实验器具的老化、实验室自身条件简陋、供电线路老化、恶劣的天气等因素也会带来众多的安全隐患问题。

针对这些问题,本文提出一种基于Unity的化学实验虚拟现实重现方法。采用Maya对实验环境进行三维建模,采用Unity对实验过程中的交互功能进行设计,采用Visual Effect Graph技术、Shader Graph技术等方法,实现各种化学实验特效仿真。凭借这一方法,开发了中学化学实验虚拟仿真原型系统。实例表明,该方法可以形象、逼真的再现化学实验中的各种仿真效果,解决了传统化学实验过程中存在的中毒、腐蚀皮肤、火灾或爆炸等安全隐患问题。

2 基于Unity的化学实验虚拟现实系统

基于Unity的化学实验虚拟现实系统,采用Maya对实验环境进行三维建模,采用Unity对实验过程中的交互功能进行设计,采用Visual Effect Graph技术、Shader Graph技术等方法,实现各种化学实验特效仿真。同时,该系统将发布2个平台,一个是VR平台,一个是移动平台,学生可以借助VR头盔,配合手机,体验丰富的化学实验交互功能,能够在确保实验安全性的同时,增强了课堂实验的趣味性。

2.1 化学实验虚拟现实系统开发流程

根据基于Unity的化学实验虚拟现实系统的开发方法,提出该方法的总体流程如图1所示。

开发VR火灾隐患排查系统,首先需要了解宿舍发生火灾的全部隐患,将这些隐患点信息存储起来,用3dsMax为宿舍场景进行建模以及纹理贴图,对应所有的隐患点特别有针对性的建立精致模型,导入Unity引擎,在Unity引擎中,开发隐患点排查交互功能模块,利用相交球检测技术、添加爆炸点技术等为每个隐患点添加火灾特效、爆炸特效,设计醒目的UI,为体验者提供清晰的体验感,最终将生成的系统发布到HTC VIVE。

2.2 Maya技术

Maya是Autodesk公司出品的一款功能强大的三维动画软件,它在三维建模、影视动画、影视特效领域有非常多的应用。它最常用的建模方式是多边形建模,开发者可以通过捏泥人的方式去对模型的每个点进行精细的控制,建模的操作方式非常新颖,新版软件升级了UV模块,展UV非常方便,特别适合VR应用。因此,本文选用Maya对宿舍场景进行建模、UV处理与贴图制作。

图1:开发化学实验虚拟现实系统总体流程

图2:VFX Graph编辑界面

2.3 Unity技术

化学实验虚拟现实系统对三维场景的真实度要求非常高,所以需要一款能够制作3A级画面的引擎来制作。除此之外,还需要添加很多交互功能以及UI界面的制作,而这些功能与效果的实现,都需要Unity来完成。

Unity是一款开发三维游戏的引擎,特别是手游市场,占据了很大的比重,而开发语言使用的是C#语言,它是基于面向组件开发的一个引擎,兼容所有平台。本文采用Unity实现特效展现和交互功能。

Unity开发都是面向组件的开发,而本项目主要使用的是Visual Effect Graph模块,这个模块的强大效果以及掌控力是我们实现逼真特效的关键所在。而Shader Graph模块也是我们实现物理渲染效果的必要方法。

3 Visual Effect Graph技术

化学实验中存在着大量的实验效果,而这些实验效果靠传统的CG技术很难实现,尤其是接近于照片级的效果,同时还要考虑到运行效率的问题。采用Unity最新的Visual Effect Graph技术可以确保系统流畅运行,并实现接近于照片级的效果。

Visual Effect Graph技术是在Unity 2018.3之后推出一项新技术,它其实是一种新的特效工具。它与原本的粒子系统相似,但它最直观的特点是可视化的节点,支持编程,运行在GPU之上。这些特点让它能够支持更庞大的图形运算量以及对开发者、创作者提供了更加灵活的开发空间。因此,可以用来制作游戏里大量的3A级特效。例如:本系统中所需化学实验中发生的各种化学反应特效。

Unity中使用Visual Effect Graph技术的方法:

3.1 安装与配置

Visual Effect Graph需要通过Package Manager来安装,目前只支持HDRP,所以还需要安装HDRP。安装完之后,需要在Project窗口的Create菜单创建HDRP的配置文件。

3.2 创建于编辑VFX Graph

先创建一个VFX Graph资产,拖到场景中后会自动生成一个GameObject,Unity会自动添加一个Visual Effect组件,并引用到之前创建的VFX Graph资产,打开可以编辑它,如图2所示。

System:虚线包裹的几个Context的集合叫做System。一个System包含Initialize,Update和Output。一个VFX Graph可以包含多个System。

Spawn:这个Context定义了生成粒子的数量以及生成的时机。

Initialize:这个Context类似编写脚本时的Start方法,用来对粒子进行初始化操作,它需要以Capacity和Bounds开始。

Capacity定义同一时间可以存在的粒子最大数量。这个值很重要,决定了初始分配多少内存,应该根据生成粒子的数量来设置数值。一般可以通过公式计算:Rate × Max Lifetime=Capacity。

Bounds:定义粒子的模拟区域

Update:这个Context类似编写脚本时的Update方法,设置粒子随着时间的变化。它可以使用力,比如添加碰撞、力场等。

Output:用来渲染粒子,它决定了生成粒子的类型、纹理、颜色、朝向等。一个System可以有多个Output输出。

3.3 运行测试

设置适当的参数值,可以得到如图3所示效果。

4 Shader Graph技术

4.1 创建与设置

使用Shader Graph,需要安装Shader Graph包和Universal RP包(Unity 2019.3之前的名称为LightWeight RP)。创建并配置SRP(可编程渲染管线),然后新建PBR Graph。打开PBR Graph文件即可开始设置基于物理渲染的材质效果了。

4.2 测试PBR渲染效果

图3:简单火焰测试效果

图4:测试爆炸效果

图5:化学实验虚拟现实系统总体设计

通过各种节点的连接,调试参数,可以得到如图4所示的边缘发光效果。

5 系统总体设计

针对现有的VR重现系统的功能模块以及存在的缺点,改良设计了化学实验虚拟现实系统,如图5所示。

功能模块如下:

(1)实验室再现:创建化学实验室场景模型,添加各种实验过程中发生的特效,添加实时更新的UI界面。

(2)VR核心模块:VFX Graph技术、Shader Graph技术。

(3)实时模拟:实时更新实验数据、实时显示交互过程中的特效。

6 实例研究

图6:实验过程重现

场景中添加了由Visual Effect Graph技术实现的火焰和火星效果,所有的材质渲染都是基于Shader Graph技术实现的。加上了实时交互的UI界面,以及实时显示的数据信息,如图6所示。根据研究,此系统能够让学生使用VR手柄来操控实验仪器和设备,并实时产生预设的化学效果。学生可以利用此系统完成所有的化学实验,效果非常逼真。

7 结语

为了解决化学实验过程中极易造成火灾、爆炸、腐蚀人体皮肤等安全问题,本文研究了一种基于Unity的化学实验虚拟现实系统,给出了化学实验虚拟现实系统的总体设计、开发流程以及技术解决方案,探讨了Visual Effect Graph、Shader Graph等关键技术,实现各种化学实验特效仿真,开发了中学化学实验虚拟仿真原型系统。实例表明,该方法可以形象、逼真的再现化学实验中的各种仿真效果,解决了传统化学实验过程中存在的中毒、腐蚀皮肤、火灾或爆炸等安全隐患问题,并且增加了化学实验课堂的趣味性,提高了学生学习积极性。

猜你喜欢
虚拟现实粒子火灾
基于粒子群优化的桥式起重机模糊PID控制
基于粒子群优化极点配置的空燃比输出反馈控制
REALITY BITES
虚拟现实技术向科幻小说借灵感
掌握火灾逃生知识
基于Matlab的α粒子的散射实验模拟
基于两粒子纠缠态隐形传送四粒子GHZ态
浅谈虚拟现实