应用VR及AR技术的虚拟仿真实验设计与实现
2018-09-14张济麟张艳鹏
张济麟,张艳鹏
应用VR及AR技术的虚拟仿真实验设计与实现
张济麟1,张艳鹏2
(1. 哈尔滨理工大学电气与电子工程学院,辽宁 哈尔滨 150080; 2. 哈尔滨理工大学计算机科学与技术学院,辽宁 哈尔滨 150080)
原有2D虚拟实验教学系统存在实验效果不够形象、人机交互方式单一、系统不够智能的缺点。原有3D虚拟实验系统存在开发成本高、材质渲染失真、无法跨平台运行等不足。基于以上不足,本文应用VR及AR技术,引入高效的Unity3D游戏引擎,以大学工科专业的电工电子实验为实例,设计研发一套3D虚拟电工电子实验系统。该系统具有逼真的实验环境、多样化的人机交互方式、智能的检错评分算法以及支持多平台运行的优点。最后评估了系统的性能参数,验证了其良好的实用性。
虚拟现实;增强现实;虚拟仿真实验
0 引言
虚拟实验室的概念最早由美国弗吉尼亚大学的威廉·沃尔夫教授于1989年提出。目前,虚拟实验在物理、化学、医学等多个领域都有所应用[1-2]。首先,虚拟实验可让实验人员更安全、更高效地完成现实实验的操作;其次,虚拟实验室的规划与实现较之真实实验室更加快速、廉价;再次,虚拟实验可有效地解决实验室师资短缺问题。
国内外都在致力于虚拟实验产品的研究与开发,许多高校都开发了自己的虚拟实验室,如Wake Forest大学的CircuitMaker、MIT的iLab[3]、大连理工大学的虚拟精馏实验室[4]、中国地质大学的虚拟物理实验室等。从目前的研发状况来看,已有的虚拟实验系统以二维人机界面为主,这类虚拟实验可演示实验的基本原理,但存在着实验效果不够形象、人机交互方式单一、实验系统不够智能的缺点;现有的3D虚拟实验系统,又存在着系统研发成本高、虚拟材质渲染不够逼真等不足,且大多不支持跨平台运行。
为了解决上述存在的问题,推动虚拟实验的发展,本文提出了一套完整可行的3D虚拟实验系统设计框架。通过此框架实现的虚拟电工电子实验系统,具有高度逼真的3D虚拟环境和沉浸式的操作界面[5],能够智能地提示实验过程中错误的操作,计算出准确的实验成绩。系统的开发成本低廉,硬件平台部分仅需要普通个人计算机(PC)和Android系统移动设备;软件平台部分则采用游戏引擎Unity3D并结合AR SDK进行3D虚拟环境搭建与逻辑功能实现。该设计框架同样适用与化学、光学、力学以及数学等多学科的虚拟实验项目开发。
本文第二节介绍了Unity3D游戏引擎的特性;第三节描述了系统架构与主要功能;第四节给出了系统关键部分的技术细节;第五节评估了系统的主要性能参数;第六节对全文进行了总结。
1 Unity3D的引入
Unity3D是由美国Unity Technologies公司开发的一款轻量级3D游戏引擎,具备跨平台发布、高效能优化、高性价比以及AAA级的3D画面渲染效果等特点,是目前最著名的虚拟现实系统开发工具之一[6]。
Unity3D底层渲染支持DirectX和OpenGL专业图形API,具有强大的3D画面渲染能力。其先进的遮挡剔除(Occlusion Culling)技术、细节层级显示技术(LOD)以及多线程渲染管道技术,为高质量的3D虚拟环境提供性能保障。
在NVIDIA PhysX专业物理引擎的支持下,开发者可以模拟刚体、柔体、关节等物理效果。此外,Unity3D高性能的灯光系统,动态实时阴影、HDR技术以及镜头特效,可以满足对真实实验的各种模拟需求。例如各类光线效果、重力效果、爆破效果、齿轮传动和线路连接方式等。
2 3D虚拟电工电子实验系统描述
2.1 设计框架
图1为3D虚拟实验系统研发的总体设计框架,自下而上分别为:真实实验的基本原理、系统核心技术支持、开发环境、AR SDK、运行平台以及具体的3D虚拟实验系统。其中,实验基本原理、VR技术与AR技术作为虚拟实验系统的核心支持,提供设计向导与技术路线;Unity3D与3ds Max作为开发平台,结合AR SDK,实现系统逻辑功能与3D模型的设计制作,系统可在PC、移动设备以及Web上运行。
框架采用经典的设计模式MVC(Model-View-Controller),它将整个系统开发划分为三大模块:模型组件、视图组件和控制器组件[7]。模型组件是视图组件与控制器组件之间的通信桥梁,控制器发出的具体操作信息会被传送到模型组件中,模型组件经过一系列的逻辑计算将相关信息发送到视图组件,由视图组件接收消息并最终展示给用户。
图1 基于Unity3D与AR的虚拟实验系统总体设计框架
此设计框架具有通用与灵活性,不仅适用于本文提出的虚拟电工电子实验系统,同样适用于化学、光学、力学和数学等多学科的虚拟实验设计。
2.2 主要功能
本文提出的3D虚拟电工电子实验系统整体架构目前包含四个子系统,分别是三个虚拟电工电子实验和一个支持AR人机交互的器材浏览库。
三个虚拟实验采用了统一的实现方式,主要模块包括:实验原理介绍、教学模式、练习模式与考试模式。实验原理介绍提供对所做实验的理论基础讲解;教学模式使学生可以在3D虚拟实验环境中,分步骤地观看正确的实验操作演示,并能观察到正确的实验效果;练习模式同样基于3D虚拟实验环境,学生学习实验基本原理与观看正确实验步骤之后,可在练习模式中自主地选择实验器材,进行虚拟实验操作,系统会智能地检测出实验过程中错误的操作,并给予正确操作的提示。三个虚拟实验均可在PC、Web以及Android系统移动设备上运行。
支持AR显示的器材浏览库为用户提供了一种新颖的人机交互方式。用户使用手机的摄像头识别预定义图片后,即可在相应图片上显示逼真的3D器材模型及其参数介绍。这种AR人机交互的器材浏览库,加强了用户体验度,也降低了实验对真实器材的损耗。
3 关键技术实现与性能优化
3.1 3D模型渲染
采用专业模型制作软件设计与构建虚拟实验系统所有的3D模型。在3ds Max中按照真实实验器材的比例,对模型进行调整,统一轴心与质心位置,制作出三维结构与真实器材一致的精细模型。
为了保证虚拟实验环境的高度真实感,在3D器材结构仿真的同时,还要对器材的材质进行渲染。材质是指物体的材料、质感,即物体本身的材料属性与纹理[8]。材质渲染的步骤为建立不同材质的Shader脚本编程,模型贴图(Texture)的制作,材质球(Materials)的合成。
Shader脚本负责产生不同效果的材质,编程使用ShaderLab语言;Texture用于材质纹理的显示,主要包括纹理贴图、法线贴图、立方体贴图和高光贴图,通过3ds Max制作完成;材质球是Shader脚本与Texture的载体,最终将Material附着到对应的模型上,使虚拟实验环境达到逼真的效果。图2展示了使用Material渲染后的部分3D模型。
图2 渲染后的3D器材模型
3.2 智能检错与评分机制
为了加强虚拟实验系统的实用性与智能性,设计了一套智能检错与评分机制,并在系统的练习模式与考试模式中加以实现。本文的虚拟实验系统的最终评分主要由器材与连线这两个因素决定,图3为智能检错与评分机制的设计框架,框架由两个模块组成,分别是实验操作检测模块与实验评分模块。
图3 检错与评分机制设计框架
实验评分模块的设计,可由参与实验教学的教师提供评分标准,保证其灵活性与准确性。考虑到电工电子实验的特点,正确的导线连接是其关键考核因素,因此连线部分占据总分的70%,实验器材选择占据30%,评分标准如公式1所示,其中W表示标准导线数,w表示用户连对的导线数,A表示标准器材数,a表示用户选对的器材数。
3.3 支持AR交互的器材库
支持AR人机交互虚拟器材库的浏览,主要通过Unity3D结合Vuforia的方式实现。Vuforia[9]AR SDK是由高通(Qualcomm)公司开发的基于标识物(Maker-based)的增强现实专业开发包,它与Unity3D完全兼容。它为Unity3D添加视觉检测与跟踪算法,帮助开发者便捷地创建支持AR的应用或游戏。如图4所示,实现支持AR人机交互器材库,可以分为三部分:
准备阶段。通过Vuforia分析预定义的图像标识特征点,训练获得的特征点信息并保存到dat文件中,Vuforia提取图像边缘变化作为特征点,用户可以自定义创建丰富多样的图像标识;
运行阶段。Vuforia从dat文件中读取事先保存的特征点信息,同时在移动设备摄像头获取的RGB格式视频数据流中检测这些特征点,并对其进行特征点匹配,获取视频中图像标识的位置、形状信息;
图4 支持AR交互的器材库实现框架
匹配阶段。如果采集到的视频数据流特征点与预定义图像标识的特征点匹配成功,则更新应用逻辑,Vuforia根据图像标识在视频中的状态计算出移动设备摄像头与图像标识之间的相对位置,并在标识的中心建立目标坐标系(object coordinate system, OCS),在Unity3D中设定的3D器材模型将被绘制在该目标坐标系下,最终系统将3D模型与摄像头获取的视频叠加地显示在移动设备屏幕上。
3.4 系统性能优化
考虑到不同硬件设备的图形处理性能各有高低,为了保证虚拟实验系统在较低配置设备上也能流畅地运行,对系统作了GPU与CPU的渲染性能优化,分别从优化3D器材模型和降低运行场景绘制调用(Draw Call, DC)两方面进行优化。
Unity3D中的模型以FBX格式保存,由网格(Mesh)组成的,每个网格均由顶点(Vertex)和三角面(Triangle)构成,过多的点面会使显卡计算量增大造成相当大的开销。例如一个标准立方体的网格,具有24个顶点和12个三角面。优化模型几何体有两个基本规则:如果不是必须,不使用过多的三角面;保持UV贴图接缝和硬边尽可能的少。因此,使用3ds Max制作模型时,在保证模型外观逼真的前提下,尽量减少其点面数;在Unity3D中,使用场景优化工具Cruncher进一步对点面数进行优化。大约每1500至4000个三角面构成一个网格,优化渲染性能最合适。
4 系统运行效果与性能评估
3D虚拟电工电子实验系统的研发基于Unity3D游戏引擎,主要使用C#与JavaScript语言,借助Vuforia开发包实现AR人机交互操作。运行虚拟实验系统的PC机配置如下,CPU:Intel(R) Core(TM) i5-3470 K Processor 3.4GHz;RAM:3.47 GB;Graphics Card:NVIDIA GeForce GTX 670,操作系统为32位Windows 7旗舰版。运行本系统的手机配置如下,CPU:Snapdragon 600 1.7 GHz;RAM:2 GB;Graphics Card:Adreno 320,操作系统为Android 4.1.0。
图5为虚拟汽车灯照明电路实验在PC机上的运行效果:图(a)表示,如果导线连接正确,相应的车灯就可照明;图(b)表示,提交实验结果获得的得分,黄色导线作为正确连线提示。图6为系统在手机上的运行效果。
在研发过程中对系统进行了大量的性能优化工作,表1统计了“练习模式”下,系统优化后的主要性能参数数值。由表可以看出,经过减少3D模型点面数与降低Draw Call调用,系统的性能得到了显著提升。在PC与手机上的游戏帧数(FPS)分别为98.0帧/秒和70.0帧/秒,超过了30.0帧/秒的流畅运行标准,达到良好运行的效果。
图5 系统在PC上的运行效果
图6 系统在手机上的运行效果
表1 优化后系统主要性能参数
Tab.1 Main performance parameters of the optimized system
5 结论
基于Unity3D游戏引擎与增强现实技术开发的虚拟实验系统,可同时跨平台发布,其逼真的3D实验环境与友好的用户操作界面,准确而形象地展示了实验原理;结合功能强大的Vuforia AR SDK,将Unity3D中的3D仿真模型与真实环境完美融合,实现了更自然的AR人机交互体验。
该虚拟仿真实验系统可跨平台发布,其逼真的3D环境与友好的用户操作界面,准确而形象地展示了教育游戏的优点;结合功能强大的Android SDK,将Unity3D中的3D仿真模型与Android平台完美融合,实现了Android手机上的运行。
本文只介绍了部分电工电子实验的实例,但底层的虚拟实验系统设计框架,可以用于更多学科的虚拟实验研发。与传统虚拟实验系统相比,基于Unity3D与AR技术的虚拟实验系统不仅提供逼真的3D画面,且可在PC、移动设备和Web网页多平台上运行,有效地减少了用户在空间与时间上所受的限制,用户可更灵活自主地进行实验操作;其支持AR人机交互的特色优势,使用户在卡片上即可全方位观察高度仿真的3D器材模型。这种逼真、高效,且具有通用性的虚拟实验系统,目前已经具备了投入实际教学的条件。此外,随着类似Google Glass的AR人机交互产品的流行普及,它有望成为各类虚拟实验研发的新趋势。
[1] Geiger C, Stoecklein J, Klompmaker F,. Development of an augmented reality game by extendinga 3D authoring system[C]. Proceedings of the international conference on Advances in computer entertainment technology. Austria: ACM, 2007: 230-231.
[2] Morales C, Martínez-Hernández K, Weaver G,. Immersive chemistry video game[C].ACM SIGGRAPH. USA: ACM, 2006: 50.
[3] Harward V J, del Alamo J A, Lerman S R,. The iLab shared architecture: A Web Services infrastructure to build communities of Internet accessible laboratories[J]. Proceedings of the IEEE(S0018-9219), 2008, 96(6): 931-950.
[4] 康译友. 三维交互虚拟精馏实验室的构建技术研究[D]. 大连: 大连理工大学, 2010.
[5] Piekarski W, Thomas B H. Interactive augmented reality techniques for construction at a distance of 3d geometry[C]. Proceedings of the workshop on Virtual environments. Switzerland: ACM, 2003: 19-28.
[6] Wang S, Mao Z, Zeng C,. A new method of virtual reality based on Unity3D[C]. Geoinformatics, 2010 18th International Conference on. China: IEEE, 2010: 1-5.
[7] 宣雨松. Unity3D游戏开发[M]. 第1版. 北京. 人民邮电出版社, 2012.
[8] 朱柱. 基于Unity3D的虚拟实验系统设计与应用研究[D]. 武汉: 华中师范大学, 2012.
[9] Cheng Xiao. Implementation of Mobile Augmented Reality Based on Vuforia and Rawajali. IEEE Beijing Section. Proceedings of 2014 IEEE 5th International Conference on Software Engineering and Service Science[C]. IEEE Beijing Section:,2014: 4.
Design and Implementation of Virtual Simulation Experiment by Using VR and AR Technology
ZHANG Ji-lin1, ZHANG Yan-peng2
(1. School of Electrical and Electronic Engineering, Harbin University of Science and Technology, Harbin, 150080, China; 2. School of Computer Science and Technology, Harbin University of Science and Technology, Harbin, 150080, China)
The original 2D virtual experiment teaching system has the shortcomings of insufficient experimental image, single human-computer interaction mode, and insufficient system intelligence. The original 3D virtual experiment system has numerous disadvantages, such as high cost of the development, the distortion of texture rendering and non-cross-platform operation, etc. Based on the above deficiencies, this paper use VR and AR technology, the introduction of an efficient Unity3D game engine, taking the electrical and electronic experiments of university engineering as an example, designs and develops a 3D virtual electrical and electronic experiment system. The system has the advantages of realistic experimental environment, diversified human-computer interaction modes, intelligent error detection scoring algorithms, and support for multi-platform operation. Finally, the performance parameters of the system were evaluated to verify its good practicality.
Virtual reality; Augmented reality; Virtual simulation experiment
TP311
A
10.3969/j.issn.1003-6970.2018.08.042
张济麟(1997-),男,本科学生,主要研究领域为虚拟现实、增强现实、虚拟实验;张艳鹏(1987-),男,助教,哈尔滨理工大学计算机学院、虚拟仿真实验中心教师,助教,主要研究领域为虚拟现实、增强现实及计算机视觉。
本文著录格式:张济麟,张艳鹏. 应用VR及AR技术的虚拟仿真实验设计与实现[J]. 软件,2018,39(8):202-206