马超,徐守祥,赵文勇,韩丽屏
(深圳信息职业技术学院数字媒体学院,广东 深圳 518172)
虚拟现实技术是近几年来的研究热点,受到广泛关注[1-3]。它以计算机技术为核心,结合相关科学技术,生成与一定范围内的真实环境在视、听、触感等方面高度近似的数字化环境,用户借助必要的装备与数字化环境中的对象进行交互作用、相互影响,可以产生亲临对应真实环境的感受。虚拟现实通过实时三维计算机图形技术,广角(宽视野)立体显示技术,对观察者头、眼和手的跟踪技术,以及触觉和力觉反馈、立体声、网络传输、语音输入输出等技术手段,给体验者营造出一种高沉浸性与交互性的虚拟环境[4-5]。在产业界,将虚拟现实定义为三类技术应用方式:虚拟现实(Virtual Reality, VR)、增强现实(Augmented Reality, AR)和混合现实(Mixed Reality, MR),本文虚拟现实主要是基于VR和AR技术来实现的。
虚拟现实技术能够通过设备实现用户与模拟环境进行自然交互,有以下几个特点[6]:
(1)感知性,可以提供人所具有的感知功能,包括视听感知、运动感知等,除了可以体验真实感觉外,还能模拟某些不可能发生的环境。(2)沉浸感,通过创建和模拟虚拟环境,让用户以第一视角存在于虚拟环境中去体验真实程度[7]。(3)交互感,用户操作虚拟物体和从虚拟环境中得到反馈。虚拟现实技术强调人机交互的自然性,不再局限于传统操作体验,可以通过先进的硬件设备进行交互[8]。
虚拟现实技术在医疗、教育、工业等方面得到了广泛的关注和应用,在教育方面的应用包括教育研究和虚拟仿真实训等。
根据使用目的以及对象的不同,虚拟现实技术的分类大体如下[9]:
(1)非沉浸式虚拟现实系统。也叫桌面式虚拟现实系统,它是基于普通电脑呈现模拟环境的小型虚拟现实系统,这种系统属于非沉浸式,并且无需其他特殊硬件及设备,价格较为低廉,很适合普通用户的需求,因此较为常见。
(2)沉浸式虚拟现实系统。它是桌面虚拟现实系统的增强版,是一种非常注重沉浸感的虚拟现实形式,具有实时、高效并且支持多种交互设备集成工作的特性,但是成本较高,不太适应于普通用户。
(3)分布式虚拟现实系统。它是基于网络虚拟环境,通过网络将分布在不同地理位置的多个用户进行连接,从而实现信息交换以及信息共享。
(4)增强式虚拟现实系统[10]。也称为AR虚拟实境系统,它需要一些特定的设备来让其使用者产生较强的浸入感和更自然的交互,通过特定设备将信息叠加到真实场景中。
本文以Unity3D作为主要开发载体,基于微软HoloLens眼镜设备设计和开发了一个具有沉浸感和交互性的虚拟校园规划沙盘。以深圳信息职业技术学院作为研究对象,通过对校园场地地形和建筑的还原,让体验者能够身临其境地感受,对学校有更直观的了解。
研究可以实现的功能包括:
(1)实现沙盘功能展示,将三维校园地图真实直观地展示在用户眼前,用户可以实现对校园规划沙盘的位置拖动以及旋转操作。
(2)可以对校园规划沙盘进行语音控制,即用户通过说话直接与沙盘进行交互操作,也支持手动操作。
(3)用户可以直接进入到具体建筑物内,进行直观地参观和漫游,让用户有身临其境的感受。
(4)用户对沙盘的操作通过手势完成,无需借助其他硬件设备。
(1)建立模型
三维模型是整个校园规划沙盘的基础,模型的好坏直接影响运行以及展示效果,本文采用3DsMax三维建模工具对校园进行全景建模[11],利用设计以及可视化性能,对场景中的每个模型都进行了精确的构建和优化,然后根据校园建筑的三维视图和尺寸比例,实现各个建筑物的三维虚拟建模,形成一个完善的校园建筑物三维模型库,其中所有的建筑物三维模型都保存为.FBX格式的文件,并保存到Unity的Package文件夹中,导入的信息包括三维模型的模型、纹理材质。
(2)优化模型
在校园规划沙盘模型完成后,为达到更理想的场景渲染效果,需要对大规模三维场景模型进行进一步优化。本文采用的是LOD(Level of Detail)多细节层次优化[12],它是一种采用不同细节存储对象的模型管理方法,使之能有效地表现不同程度建筑物模型的真实感。其流程为:(a)为建筑物模型构建一组详细程度不同的模型;(b)根据建筑对象离视点距离以调用相应的模型。主要是通过移除被绘制对象中的不必要细节,即减少模型的三角面数量来精简模型提高渲染速度。
通过LOD技术在模型构建中根据视点到目标对象的距离远近,以及对象视距变化,实时减少对象模型的三角面片数量,实现对象的动态优化。
本文校园规划沙盘场景主要以静态建筑对象为主,并行模型数量较多,具有较多重复性。首先对场景中模型内容进行分类,然后根据模型精细程度加以分类,采用关联复制方法构建多个模型,当模型导入到Unity引擎中时,在当前场景中只需调用依次模型即可完善大量模型设置,减少模型加载量。
基于Unity3D引擎平台,在微软HoloLens眼镜设备上进行设计开发。
首先配置好开发环境,安装SDK,所有配置准备完毕,可以进行制作。新建项目后Unity会显示出三维场景,将3DsMax建好的三维模型导入到Unity编辑器中,摆放模型在场景中,设置好使用者视角,在场景布置完成后,需要发布应用并利用模拟器进行测试。由于HoloLens只能与Windows Store应用商店发布的平台相兼容,根据提出访问相应目录,双击安装下载文件。
在指定生成目标平台后,需要选择应用商店中的一些功能,例如空间感知可以使用空间映射功能,话筒可以使用语音作为输入,通过语音输入使用户进行模型交互操作,但需要注意的是HoloLens只支持英语的语音识别,而中文语音识别技术尚未能很好地支持,将讯飞的Windows SDK嫁接到Unity3D中进行开发,HoloLens无法正常运行,原因可能是讯飞的SDK不支持Windows10。网络客户端应用通过网络连接实现功能,最后点击生成Visual Studio解决方案。
在用户设置面板中,添加Windows Holographic的SDK,演示界面如图1所示。打开.sln文件启动Visual Studio 2015,创建可以提交到Windows应用商店的项目包,启动后即可看到之前创建的模型并通过鼠标箭头以及键盘进行交互操作。图中的圆点即为用户的目光聚集点。
利用Windows10系统提供的应用程序HoloLens对设备进行连接,连接Wifi后,在Settings ->Network&internet -> AdvAnced options -> ipv4 address设置相应的IP地址,实现HoloLens的网络连接。
图1 Windows HoloLens的SDK添加设置Fig.1 Windows HoloLens SDK Add Settings
为了更好地满足校园规划沙盘的展示效果和需求,结合AR技术在HoloLens全息眼镜设备上实时展示校园沙盘的场景位置移动,旋转,可从多角度展示局部效果图;设置根据声控进行实时交互操作以及漫游的功能。流程图如图2所示。
图2 交互操作流程图Fig.2 Flow chart of interactive operation
交互设计和导航设计说明具体如下:
(1)Place mode。单击模型后,会出现导航网格,此时可将模型放置在任意平面,确定要放置的位置后,再次点击模型,即可实现定位,同时导航网格消失;
(2)Rotation mode。准星对焦到模型后,长按左右拖拽可旋转沙盘Y轴,此模式下除了改变大小无法定位无法演示;
(3)Demo演示模式。在加载完进度条后,在模型右上方会出现“点击进入传送门”的按钮,对焦后,单击场景会进行跳转(羽毛球馆),在羽毛球馆这个场景,无法响应沙盘场景的任何口令及手势。在观赏完毕,通过口令(Go back)返回到沙盘场景,或者在羽毛球馆的中心位置寻找一个有着红色字体“退”的圆柱体,准星对准后,单击,也可以返回到沙盘场景;
(4)通用口令。Smaller放小沙盘、Bigger放大;按钮共有5个,分别是大、小、放置、旋转、内部,大/小对应Bigger/Smaller;
(5)放置对应Place mode、旋转对应Rotation mode、演示对应Demo,按钮只能在沙盘场景内使用,无法在羽毛球馆场景使用。
图3 校园沙盘导航界面Fig.3 Campus sand table navigation interface
操作系统:Windows10 64位专业版,编辑环境:Visual Studio 2015,Unity3d版本为Unity 5.6.1f1,以及HoloLens Emulator,CPU处理器为Intel Core TM i5-3470 @ 3.2GHz,内存16GB,硬盘1TB,显卡Direct X 11.0以上,并通过HoloLens全息眼镜进行调试和发布。
展示界面如图所示。界面中提供放大、缩小、旋转、放置和内部导航菜单功能。根据功能的设计,校园沙盘展示平台,虽然未提供大量素材模型,但可以调用模型库文件,随时添加新模型。在校园场景漫游中,使用者以第一视角观察场景并与场景进行交互,用户可以在场景中随意走动、前进、后退等,并可以看到场景的任意角落和细节。
同时在校园场景设计中,使用光照系统和Shader材质着色器来渲染三维模型,在渲染时候,为了更好更逼真地将场景光照效果呈现出来,通过光影贴图实现,光线遇到障碍物会有多次反射折射,呈现出自然光的感觉。场馆内演示效果如图4所示。
图4 羽毛球馆内部场地演示图Fig.4 Interior of a badminton hall
本项目实施方案设计流程如下:
图5 设计流程图Fig.5 Flow chart of designing
图6 程序架构图Fig.6 Program architecture diagram
HoloLens中显示效果包括实体加全息高亮和添加特效。分配操作方式有手势加语音、对操作方式进行穿插、在设计流程的时候控制操作之间的间隙等。
实现所需的资源及标准设置如下:
(1)图片为PNG格式;(2)HoloLens应用的图标(465*465);(3)HoloLens启动面板的图片(930*450);(4)程序中的UI设计实现;(5)模型为FBX格式;(6)贴图为Tga;(7)音频为mp3。
同时在设计模型应注意以下几方面:(1)需要低面模型,实时光照同场景控制在10W面以内,不用实时光照同场景控制在20W面以内,建模阶段的单位尺寸和Unity保持一致使用米为单位。(2)HoloLens中使用光照贴图,贴图种类尽量少一些,Shader最好使用Microsoft HoloLens官方实例中提供的Shader视频及音频。
在对沙盘进行空间定位时具体实现如下:
(1)增加空间映射让HoloLens扫描并读取空间网格数据(Spatial Mapping);
(2) 增加默认光标,以凝视的方式确定选中的物体;
(3)增加输入管理器,用来管理凝视、手势等输入方式(InputManager);
(4)给游戏对象添加空间定位脚本(Tap To Place);
(5)增加空间锚点管理器以优化物体在空间中的定位(空间锚点)。
(1)使用共有函数编写语音控制的具体内容:
(a)启用旋转模式函数:关闭Tap To P、BillBoard,开始Rotation。
(b)启动定位模式函数:开启TapToPlace、BillBoard,关闭Rotation。
(2)使用关键词管理器Keyword Manager定义语句内容并制定具体函数。
本文以虚拟现实技术中的AR技术为基础,详细介绍了利用3DsMax构建虚拟校园沙盘中的三维场景模型库,将三维模型和语音系统结合,基于3DsMax三维建模工具、Unity3D技术以及微软HoloLens全息眼镜实现校园规划沙盘的交互式漫游变换、三维校园场景多功能导航、语音交互、多平台功能部署,让用户通过使用电脑以及HoloLens全息眼镜可以感受到虚拟现实技术带来的身临其境的体验。本文的模型还有部分问题,例如当从体育场馆中退出返回到校园规划沙盘界面后,旋转模式会失效,无法再次使用该导航功能,等等。后继模型还需要进一步完善和优化,让用户具有更好的体验。