VR虚拟仿真实验开发初探
2020-12-29钟宇虹
钟宇虹
摘要:近年来,虚拟现实技术与教育的结合在当下就是一个比较热门的应用,由于其仿真度高、运行成本低、教学效果好、同时还增强了实验的安全性、降低了实验的成本等,受到了广大师生的欢迎和喜爱,因此,在广大院校尤其是中小学中应用比较普遍。但对于职业院校来说,由于其课程的专业性和实践性都要求非常强,使得虚拟仿真实验的开发难度和成本就非常高,很少有企业愿意开发相关的产品,导致这块在职业院校应用的不是很理想。作为职业教育人,我们不应该一味地等、靠、要,而应该主动承担责任,利用自己专业知识,整合相关专业的优秀教师资源,开发一个适合于职业院校的虚拟仿真实验平台,为提升教学质量,促进职业教育发展做一些有意尝试。
关键词:三维虚拟仿真;Unity3D;网络布线
中图分类号:G718 文献标识码:A
文章编号:1009-3044(2020)32-0211-03
1 引言
近年来,随着芯片制造工艺的不断提升,计算机的体积在没有扩大的前提下性能得到的飞速提高,这也就为虚拟现实技术的推广普及提供了前提条件。虚拟现实技术因其可以创造逼真的现实环境,并为体验者提供与场景良好的交互等特点,使其在教育、游戏、医疗等方面得到较快的发展。虚拟现实技术与教育的结合在当下就是一个比较热门的应用,由于其具有良好的三维交互性、可操作性和场景逼真等特点[1],同时还增强了实验的安全性、降低了实验的成本等,受到了广大师生的欢迎和喜爱,因此,在广大院校尤其是中小学中应用比较普遍。但对于职业院校来说,由于其课程的专业性和实践性都要求非常强,使得虚拟仿真实验的开发难度和成本就非常高,很少有企业愿意开发相关的产品,导致这块在职业院校应用的不是很理想。作为职业教育人,我们不应该一味地等、靠、要,而应该主动承担责任,利用自己所掌握的专业知识,整合相关专业的优秀教师资源,开发一个适合于职业院校的虚拟仿真实验平台,让所有学习计算机网络知识的学生都有实验实训的机会,而不仅仅是走走看看,为有效提升计算机网络布线课程的教学质量,促进计算机网络技术专业人才的培养做一些有意尝试。
三维虚拟仿真技术是以计算机图形技术来模拟现实环境中的视听感受,并根据相应的操作进行交互。三维虚拟仿真技术有以下特点。
1)沉浸性。人通过使用虚拟设备使视觉和听觉进入到虚拟环境当中,原有的各种生理感受被虚拟环境中的感受所替代,身体会随着虚拟环境的变化做出物理反应,这些反应发生时能够被虚拟设备中的传感器检测测到,进而传输给计算机系统,改变虚拟环境里的物体状态,给参与者带来近乎真实的感受。
2)交互性。参与者借助专门的虚拟设备和反馈设备,接收虚拟环境中的变化信息,并根据虚拟环境的变化做出相应的动作,使用专门的输入设备对将动作反应输入到虚拟系统中,以便获得最真实的体验,比如用手拿捏一个虚拟物体时,手指可以感受到这个虚拟物体的硬度和重量等。
3)想象性。人沉浸在虛拟的仿真环境中,与虚拟环境进行交互,从综合集成的环境中得到感性和理性的认识,进而产生丰富的想象。想象性是一种高级表现形式,是在沉浸性和交互性的作用下而产生的一种抽象性思维。
计算机网络布线是职业院校计算机网络技术专业一门实践性非常强的技能型课程,实验实训在学生学习和掌握课程知识的过程中起到至关重要的作用。建设一个真实的计算机网络布线实训场所投资巨大,而且使用率不高,对于大多数职业院校来说都难以承担,因此,使用三维虚拟传真技术开发一个接近真实的计算机网络布线实验实训环境就显得很有必要。
三维虚拟仿真技术在计算机网络布线实验实训中的开发应用,是虚拟现实技术、三维建模技术、多媒体技术、软件开发技术、计算机网络技术等领域的新技术在教育领域的综合应用,是信息化教学的重要内容,它改变该课程以往实验实训难的局面,以较少的投入,较真实的模拟自然环境、工作环境、生活环境等,使得学生人人都可以得到实验实训的机会。同时,它可以大大地减少耗材的使用,学生可以反复操作而不要担心没有实训器材。三维虚拟仿真技术还可以让学生远离高空作业、高危环境作业,减少了发生事故的概率,学生在进行实际操作前必须通过虚拟仿真系统的考核才能上岗作业,真正做到虚拟与现实无缝衔接。
本文通过使用通用游戏引擎Unity3D、C#编程开发、平面制图软件Auto CAD和三维建模软件3ds Max,以计算机网络布线实验实训环境为背景,研究了三维虚拟仿真技术的可行性,并初步实现了计算机网络布线简单项目的实验实训项目。
2 需求分析
计算机网络布线是职业院校计算机网络技术专业一门实践性非常强的技能型课程,实验实训操作对学生较好地掌握计算机网络布线知识是非常重要的。现在,大多数职业院校进行计算机网络布线实训基本上是以下几种方式。
1)通过观看视频、动画、图片等多媒体资源的方式,把操作步骤和要领熟记于心,并通过笔答的方式把操作流程和操作细节描述出来。这种方式以笔试代替实际操作,完全没实践过程,这不符合职业院校学生的教学特点和认知特点,不利于学生掌握操作要领。时间一久,学生就掌握了具体的操作步骤和要领。
2)通过参观楼宇现场,对网线布线有一个比较直观的认识,但由于这些楼宇的网线布线系统都在使用中,学生无法进行实际操作,因此,这次实验实训对学生来说只是看看而已,而没有任何动手实践。
3)通过物理仿真实训系统,用一个小型的金属框架结构来仿真建筑楼宇,学生在此金属框架上进行实际操作,对学生的实践操作有一定的帮助。但由于这种物理仿真实训系统规模小,无法进行大型工程的施工,实验项目简单,无法完成复杂项目的操作。而且实训工位有限,每次实训要分组分批依次进行,实训器材损耗较大。因此,这种物理仿真系统只在少数条件较好的职业院校有使用,并没有大面积覆盖。
从以上情况不难看出,大多数职业院校需要一种能模拟真实计算机网络布线的环境,并能带来较好实训效果的仿真实训系统:
1)要能非常逼真的模拟现实环境,让学生有种身临其境的感受,真正做到虚拟与现实无缝衔接;
2)要能模拟真实的交互效果,学生可以根据操作结果做出判断和反应,进而决定后面的操作;
3)教师可以通过分析统计数据,可以掌握学生实验实训中的情况,及时调整教学策略,改进教学方法,有针对性地开展教学;
4)降低实验实训的成本,可以一次性安排大批量学生的集体实训;
5)实验实训效果较好,能帮助学生学习和巩固理论知识、掌握实操技能;
6)建设和维护成本合理,使得绝大多数职业院校都能够承担得起。
因此,把三维虚拟仿真技术运用在计算机网络布线实验实训中,可以较好实现大多数职业院校对实验实训的要求,为培养实践技能型人才发挥作用。
3 系统设计
开发虚拟实验的流程可分为虚拟实验建模、虚拟实验场景搭建以及虚拟实验程序设计3个阶段[2]。
3.1 虚拟实训场景的构建
虚拟实训场景的构建要以真实环境为依据,以真实的物体为参照。在构建虚拟物体之前,需要对真实物体进行相关数据的采集,如物体的具体尺寸、数量、形状、结构及位置、并拍摄物体的相关图片,为后期的3D建模做好准备工作。虚拟实训环境的制作是一个非常繁杂的过程,且涉及较多的计算机相关技术[3]。
在制作虚拟实验实训场景时,首先要根据真实物体的具体尺寸,使用AutoCAD绘制出整个实训大楼、实验室的平面空间图,以确定建筑物内房间的平面布局和位置。绘制好平面图后,接下来就可以将AutoCAD平面结构图导入到三维建模软件3DS MAX,并根据设计要求进行三维建模,完成虚拟实训场所的创建。有了三维模型后,接着就是要对模型进行贴图、渲染,需要将建筑物的不同部分根据需要进行材质、纹理、色彩、光反射等物理属性的设置,以达到较为真实地反映现实环境的效果,这样才会让学生有一种身临其境的感受。
2.2 虚拟网络设备的构建
虚拟网络设备的制作与建筑物的建模过程差不多,但是建模的对象要更多、更复杂,因此,在建模前要统计好各种网络设备的尺寸、型号、数量、安放位置等。由于这些虚拟网络设备在实验实训过程要具有一定的交互作用,因此,必须把网络设备上的各种接口和功能模块进行单独建模,最后再将这些模块组合到网络设备的模型内,实现具有虚拟通信交互功能的网络设备。
虚拟网络设备的建模过程与前面实训场所的建模过程相似,因此就不再具体化介绍了。
通过使用3DS MAX完成实训场所和网络设备的建模工作之后,需要把这些模型分别导出为兼容的 fbx格式,并导入到Unity3D开发环境,完成在游戏场景中的建模,并根据相互坐标位置进行安放。
3.3 虚拟交互实现
交互性是衡量虚拟仿真系统效果的重要方面,它能将物体的真实反馈通过相关的设备传递给操作者,让操作者得到与真实设备近乎一致的感受。因此,交互性的设计与开发要贴近现实环境,并能根据物理设备的工作原理来进行交互,这样才能达到逼真的效果。在Unity3D中的交互效果实现上,将使用C#语言进行开发。
1)自主漫游的實现
为模仿人物在实训系统中的行为,在Unity3D开发环境中加入代表用户的第一人称对象,把该对象的行为与相应的脚本代码进行绑定,脚本程序能够根据对象的行为做出逻辑判断,进而改变物体的物理状态。一个脚本就是对象的一个组件,只要把脚本拖曳到相应对象的Inspector区域即可实现与对象的绑定。学生可以通过操作键盘上的光标键、鼠标等输入设备来控制学生的走动行为,部分关键代码如下:
2)碰撞检测的实现
虚拟物体在虚拟场景内运动过程中难免会发生相互碰撞,当碰撞发生时,虚拟物体应当发生相应的物理变化,以反映现实环境中的物体的物理变化。碰撞检测技术可以对虚拟物体的运动状态进行实时检测,目的是避免碰撞发生时产生一些违背常理的现象出现,比如:可以避免运动物体穿墙而过、穿过地面等现象的发生[4]。
在Untiy3D中,虚拟物体在运动过程中会调用其父类中的OnControllerColliderHit()方法检测是否与其他对象发生碰撞。如果发生碰撞,就可能通过使用hit.gameObject引用得到碰撞后的游戏对象。部分关键代码如下:
3)网络设备交互功能的实现
在实训过程中,虚拟网络设备具有独立的构件属性、功能、端口[5],它要对学生的操作做出响应,比如说,当网络设备通电时虚拟设备要有指示灯闪烁、当有网线连接到虚拟交换机的接口上时,交换机就要给指定的接口发送数据,接口收到数据后就发送给RJ45接头,RJ45接头把数据发给连接的网线,网线再把数据传给另一头的RJ45接头……,虚拟网络设备的所有行为都要模拟真实设备工作行为,这样才能达到较好的实训效果。部分关键代码如下:
4 结论
本文对三维虚拟仿真技术在计算机网络布线实验实训中的应用进行了初步的研究和实践,通过使用游戏引擎Unity3D、C#编程开发、平面制图软件Auto CAD和三维建模软件3DS MAX等完成了场景的搭建、设备的模拟,交互的实现,研究了虚拟仿真系统实现所要用到的一些关键技术,并初步实现了简单的《计算机网络布线》实训项目,更复杂、更逼真的实训内容还将在以后的研究过程中逐步实现和完善,争取为《计算机网络布线》的课程实训创建一个优良的虚拟仿真环境,让更多职业院校都能够实现自己的计算机网络实训环境。
参考文献:
[1] 葛岩,冯婉婷,刘红岩.基于Unity3d的虚拟实验设计与开发[J].黑龙江科学,2018,9(24):36-37.
[2] 张嘉璐.基于Unity3D的VR化学虚拟实验开发[J].电脑编程技巧与维护,2018(6):169-170,173.
[3] 韩博.基于Unity3D的综合管廊管理系统研究与实现[D].阜新: 辽宁工程技术大学,2017.
[4] 王丽.基于Untiy3D的三维虚拟校园漫游仿真系统设计与实现[J].中国教育信息化,2016(9):60-63.
[5] 阚研,何岭松,谢道旺,等.Unity3D下构件化虚拟仪器功能实现方法[J].软件导刊,2020,19(1):186-190.
【通联编辑:谢媛媛】