王文心,邓欣睿,秦永欣
(1.东南大学交通学院,南京 210000;2.东南大学计算机科学与工程学院,南京 210000;3.东南大学机械工程学院,南京 210000)
近年来,虚拟现实技术和增强现实技术发展迅速,在各个行业和领域的应用更加广泛。计算机收集各种辅助信息,使得用户与真实场景实现交互。随着交通强国战略的提出,交通基础设施建设也显得更为重要,而实验室正是基础设施建设的摇篮[1]。
虚拟实验室能提供直观的实验室场馆全貌和相应的实验仪器,方便学生获取相关实验信息,学习实验操作,实现与实验场馆设施的远程互动[2]。本文结合虚拟现实和增强现实的技术特点,将其应用于东南大学交通学院试验中心各实验室的虚拟展示和交互之中,设计与实现了一个基于Unity 3D 的实验室虚拟漫游软件,打破了空间和时间的限制,实际运用在相关教学及宣传普及领域。
虚拟现实技术(virtual reality,VR)以计算机技术为基础,综合了电脑仿真、传感器、网格并行处理、人工智能等多种技术,通过给用户同时提供多种感官信息,使用户仿佛身临其境。依靠计算机系统,用户可以自定义生成一个三维空间。用户在该环境中,借助多种输入输出设备,感知和探索客观世界。借助于虚拟现实,用户可以突破时间空间的限制,优化感官感受,提高对客观世界的认识水平。虚拟现实的关键技术主要包括:人机交互技术、传感器技术、动态环境建模技术、系统集成技术和三维图像的实时刷新技术[3]。
随着计算机水平的提高,增强现实技术(augment reality,AR)是发展来的一门新技术。它借助计算机技术,将构建的辅助虚拟信息如模型等叠加到真实世界,使虚拟的物体信息和真实的环境信息出现在同一个画面或空间。用户可以感知被呈递的信息,获得与真实世界漫游相似的体验感。增强现实系统通过分析大量输入数据,获取场景中各种位置信息,使生成的虚拟物体以合适的姿态精确地定位到真实场景中的特定位置。增强现实的关键技术主要包括:跟踪注册技术、显示技术、人机交互技术[4]。
图1 增强现实技术
3DsMax 是一款强大的三维动画渲染和制作软件,在模型制造领域有不可替代的作用。它功能种类丰富、灵活性高,可用来制作多种建筑模型、工业产品结构图及效果图等。该软件可模拟不同环境、不同风格的渲染效果,拥有强大的材质编辑功能。
Vuforia SDK 封装了底层用来图像识别的计算机视觉模块,Vuforia 为开发者提供了一系列参数设置。开发者只需配置参数,然后基于底层的识别算法便可开发出自己想要的AR 程序。Vuforia 功能丰富,如图像追踪、物体追踪、环境追踪等。
整个设计软件效果:进入软件后,调用手机摄像头,对准已导入数据库的实验室环境、实验器材或展板时,系统能够在现实场景之上出现叠加音视频、文本、3D 模型或VR 体验等增强效果。在界面指示下,用户可以多维了解试验中心相关知识和实验器材的操作方法,也能跟随导览,走近感兴趣的下一目标点,继续游览学习。
2.1.1 3D建模
建筑信息模型(BIM)现在是交通基础设施建设的新工具,3DsMax 能构建出三维虚拟、内含完整信息集成的模型。借助内置基础的模型库进行打形,对简单的几何模型进行调整与组合,可以快速对三维建模搭建一些最基本的骨骼框架,真实比例还原实验仪器。将模型转换为可编辑多面体,然后使用点、线、面的选取修改功能来细化模型,最后修改贴图和材质,赋予模型细腻有质感的外观。
图2 软件整体设计架构
图3 土体原位测试车建模
2.1.2 虚拟场景
为了达到全真模拟的效果,利用鱼眼摄像机拍摄,软件中进行图像识别特征点拼接,获取试验中心全景图。贴到Unity3D 中的天空盒上,将整个视角放置于天空盒中,把二维布局区域虚拟成为现实的三维效果,保证立体感、真实性。
图4 全景图
虚拟部分地形通过terrain 用不同笔刷加之柔化效果,绘制出山峦与河流,细节上添加树木、房屋、车辆等模型,使地形自然逼真。
光照渲染采用实时烘培,这是一种在运行时动态计算光照的渲染方式,可以让游戏场景看起来更加真实、细节更加丰富。但是通过调整发现本软件所需的计算量较大,实时渲染可能会因设备问题跟不上导览进程。因此,部分大量计算且精密程度要求不高的场景,改为了前向渲染以提高效率。
通过Unity3D 中的粒子系统,模拟实验器材操作时的环境效果,如室内操作时的粉尘、室外作业时的雨雪天气。如将单一粉尘形状作为基本粒子,设置预设脚本控制发射数目、形状、路线以及生命周期内的各种变化,最终实现仿真场景。
图5 特效渲染
2.2.1 自主漫游场景
VR 灵境模块之中,使用者通过第三人称视角进入虚拟环境中体验交通学院教学实践体系中重要组成部分——道路勘测设计实习。
图6 道路勘测设计实习
第三人称视角下,可以看到虚拟人物。人物拥有完整骨骼动画,有着丰富的动作库,在不同状态下有对应的动作效果。移动脚本挂载在人物身上,使用者通过摇杆操控方向行进,按键可跑动、跳跃。同时系统中有重力模拟器效果,从高处坠落或跳跃时,编入的g值会保证效果真实。
碰撞检测器能保证人物和物体有着真实存在感,避免出现“穿模”现象。在模型内部堆叠透明材质立方体,为其物理状态赋予刚体组件。刚体相遇即根据各自物理属性如摩擦系数、反弹性能得到不同效果。如:虚拟人物可以乘坐并操控试验车辆;在添加风组件之后,由于刚体组件及碰撞体的添加,树木等会出现随风摇曳的效果。
除人物控制外的其它物体移动可通过两种方式完成:一是通过Unity3D 中的算法,可将实习场地中复杂的山川河流、道路桥梁等关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现AI 自动寻路效果;二是通过Animation 动画控制物体的大小、坐标、方向等物理性质随时间轴不断变化或循环,将组件赋予物体,以完成实时运动变化。
由于场景较大,加之实习场地林场森林覆盖率高、地形起伏大、视野不开阔,需要获取人物周边环境信息。这就需要以小地图形式用图标来代替真实的模型。
创建一个顶视角摄像机,计算出Unity 中场景的长和宽,计算出模型在场景中的X与Y轴,然后计算X与Y的位置在场景大地图上的比例,按照比例给新创建Render Texture 小地图赋值并进行边缘锯齿状问题的优化解决。当人物运动时,缩小的图标在地图上实时变化,即可清楚地从小地图中获取地理信息。
2.2.2 UUII界面布设
为了便于用户在网络端参观实验室时实现不同场景的切换,我们利用Unity3D 软件结合C#脚本实现这一功能。当选择不同的图片时,调用添加在该对象上Button 组件的OnClick 事件,使用SceneManager.LoadScene 方法切换到对应场景。
在实验室场景漫游中,我们希望用户同时能够听到对应的语音讲解,实现首次加载进入场景时自动播放背景音乐,并且通过单击UI 界面控制音乐的打开和关闭。使用AudioSource 组件来控制音乐的播放,需要在Hierarchy 窗口中创建一个Audio Source 对象。然后在Inspector 窗口中设置AudioSource 组件的参数,例如是否在游戏开始时自动播放音乐(Play On Awake),是否循环播放音乐(Loop),音量大小(Volume)。
此外,视频可以用来在虚拟实验室中展示实验过程或者提供教学指导,用户可以通过观看视频来了解实验的步骤和注意事项。在Unity中,可以使用VideoPlayer 组件播放视频。将VideoPlayer 组件添加到一个游戏对象上,然后在运行时在游戏对象的纹理上播放视频。
当触发某个实验室物体时,系统调用弹出对话框对物体的功能进行介绍和说明。使用触发器(Trigger)来实现当物体进入触发器区域时调用事件。触发器是一个不可见的碰撞器,它可以检测其他物体是否进入了它的区域。在场景中创建一个空物体,并为其添加一个碰撞器组件(如Box Collider 或Sphere Collider)。然后在碰撞器组件的检查器面板中勾选“Is Trigger”选项,将碰撞器转换为触发器。接下来,在物体上添加一个脚本,并在脚本中编写OnTrigger-Enter、OnTriggerStay 和 OnTriggerExit方法来处理触发器事件。当其他物体进入触发器区域时,将调用OnTriggerEnter 方法;当其他物体停留在触发器区域时,将每帧调用一次OnTriggerStay方法;当其他物体离开触发器区域时,将调用OnTriggerExit方法。
图7 对话框效果
2.3.1 AARR识别
在Vuforia 系统中创建所需要识别库,可以包括图像识别、多对象识别和实物识别。将识别对象导入识别库,在比率一栏会显示出星级。为提高识别效率,多次尝试优化识别对象的特征点,最终得到交通学院试验中心的识别库。生成unitypackage 并导入Unity3D,打开Vuforia SDK,调用AR camera即可使用。
2.3.2 AARR叠加融合
在AR camera识别出对象之后,软件将展示增强效果。对于基本实验器材或试验区域,利用UI 设计部分中的Canvas 画布半透明地展现实时场景上叠加的相关音视频、文字简介,并且配有相关对话框程序,使用者可根据需求选择软件服务。对于不方便当场使用的大型室外设备,叠加原比例三维模型并配有介绍,使用者可自行放大,翻转观看学习。对于不同的课程实习中需要学习掌握的实验仪器,叠加效果将识别出对应操作阶段,根据指示箭头指向下一步仪器需要操作的部位,指导使用者学习使用仪器。同时,在识别对应部分时还可以将系统跳转到对应VR灵境模块进行虚拟实习。
图8 AR识别效果
2.3.3 导览系统
导览系统依赖的是软件内部识别库和已写入的地理信息,不存在因为室内卫星定位信号不强而导致的问题。我们试图使用AR+GPS 组件,此功能与地图框集成方向接口以创建实时增强现实路由,允许应用程序用户查看方向、导航说明、距离等。我们尝试使用此组件创建基于位置的导航AR体验,创建自定义路线Mapbox 未映射的地方,创建自定义内容脚本来构建基于软件自身的独特体验。
我们以研究虚拟现实技术和增强现实技术在室内导览系统中的应用为载体,基于东南大学交通学院试验中心,利用Unity3D 引擎开发了一款视景仿真的实验室场馆漫游系统。设计控制方便、通用性强、有广阔的应用前景,其研究成果能宣传普及交通运输相关的一批重大科研装备的线下使用与线上虚拟体验,降低了实验教学经济和时间双重成本,有着重要的实际意义和应用价值。
进一步展望,本软件的整体构架和模式可以扩展到其它实验室、博物馆、体育场馆等室内体系[5]。开发场馆设施的场景交互漫游功能,实现用户交互、视点控制、场景空间置换等功能,让人们足不出户就能感受到ARVR 所构成的灵境世界。