kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> 沉浸式虚拟校园仿真系统开发及关键技术研究
沉浸式虚拟校园仿真系统开发及关键技术研究
2017年微型机与应用第1期
李婷婷,刘石,陈发禄
大连东软信息学院 数字艺术系,辽宁 大连 116023
摘要:虚拟现实技术可以给人带来身临其境之感,传统的虚拟现实系统大多采用桌面式虚拟现实方式,沉浸感不强,交互性差,不能让体验者沉浸在虚拟系统中。综合这些因素,文章根据三维虚拟校园仿真系统需求,设计实现了基于Unity3D平台的沉浸式虚拟校园漫游系统,并研究沉浸式虚拟校园开发中所使用的关键技术。实验表明,该系统能克服虚拟漫游沉浸感不足的缺点,用户可以体验到与真实校园相近的虚拟环境,并且可以与虚拟环境进行交互。该系统具有简单和易实现等特点,拥有广阔的应用前景。
Abstract:
Key words :

  李婷婷,刘石,陈发禄

  (大连东软信息学院 数字艺术系,辽宁 大连 116023)

摘要:虚拟现实技术可以给人带来身临其境之感,传统的虚拟现实系统大多采用桌面式虚拟现实方式,沉浸感不强,交互性差,不能让体验者沉浸在虚拟系统中。综合这些因素,文章根据三维虚拟校园仿真系统需求,设计实现了基于Unity3D平台的沉浸式虚拟校园漫游系统,并研究沉浸式虚拟校园开发中所使用的关键技术。实验表明,该系统能克服虚拟漫游沉浸感不足的缺点,用户可以体验到与真实校园相近的虚拟环境,并且可以与虚拟环境进行交互。该系统具有简单和易实现等特点,拥有广阔的应用前景。

  关键词:虚拟校园;校园建模沉浸式漫游;人机交互

  中图分类号:TP391.9文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.01.024

  引用格式:李婷婷,刘石,陈发禄. 沉浸式虚拟校园仿真系统开发及关键技术研究[J].微型机与应用,2017,36(1):79-82.

0引言

  虚拟现实技术(Virtual Reality,VR)是利用计算机生成三维虚拟景象,使人沉浸在虚拟环境中,有身临其境的感觉,并可以与虚拟场景内景象进行交互,被广泛应用于娱乐、军事、医疗、教育等领域[1]。虚拟现实技术可以被划分成两类:一种是沉浸式虚拟现实系统,体验者可以通过特制的虚拟现实穿戴设备(比如头盔、数据手套等)在虚拟场景中与之进行交互,产生身临其境的感觉。而非沉浸式虚拟现实系统通常指不借助虚拟现实设备,通过电脑的鼠标、显示器、键盘等标准外设在电脑桌面上营造一个窗口式的虚拟环境,该方法价格低廉,但沉浸感差[2]。

  近年来,一些与虚拟现实技术相关联的虚拟校园开发愈发引起人们的关注[3]。其中,虚拟校园漫游系统一直是国内外研究的热点。例如,德国的 Stuttgart 大学很早以前就开始构建虚拟校园[4],并提供了校园的真实模拟。后来,浙江大学、清华大学、山东大学等也纷纷进行了数字校园的建设[5],吉林大学基于3DSMax创建校园场景,再在 DirectX 中选择专业的组件来重新生成图形并显示出来,达到校园漫游的效果[6]。传统虚拟校园的开发大多采用Quick Time VR方式,虽然精确性较高,但交互性差,沉浸感不强[7]。基于此,本文在Unity3D[8]基础上,结合Occlus dk2开发虚拟校园,使虚拟校园场景得到进一步完善,并就系统设计、三维建模、场景交互等有关技术进行了讨论。

1系统设计

  沉浸式虚拟校园仿真系统是基于传统校园景观进行建模,形成一个虚拟的封闭式校园。在分析系统需求基础上采用虚拟现实技术配合用户交互,使得用户可以佩戴虚拟现实设备在虚拟校园内漫游,参观校园内部建筑,了解校园文化历史。本文利用Unity3D技术,结合Occlus dk2虚拟现实头盔开发沉浸式虚拟校园漫游系统。首先基于3DMAX建模工具构建三维校园模型;然后用Terrain工具构建场景地形;最后将校园模型导入到Unity中加入碰撞检测,实现用户交互、虚拟漫游等功能,使用户产生身临其境的感觉,并且具有良好的交互性。系统开发流程如图1所示。

001.jpg

2关键技术

  2.1校园建模

  校园三维建模是虚拟校园搭建过程中非常重要的组成部分,虚拟校园漫游系统的体验效果与校园三维建模效果直接相关。在本文中,所有校园建筑均采用3DMAX建模软件实现,在制作建筑模型过程中,按照1:5 000的比例进行构建,然后以fbx格式保存文件,最后在Unity3D中导入所生成的 fbx文件,进行场景搭建。

  在建模过程中既要考虑模型真实感问题,又要考虑系统运行速度问题。因此,采用精细建模与简单建模相结合的方式构建虚拟的校园三维景观[9]。校园场景模型的制作分为两种:一种是复杂模型,像教学楼、宿舍楼、图书馆等,这种模型制作要求非常精细,做建模时要适当保留细节;另一种是简单模型,像道路、操场等,这种模型的制作非常简单,只需制作出大致的轮廓,可以靠贴图去实现三维效果。构建模型过程中,在不影响模型真实度的基础上,必须要减少模型的面数和分段数,删除模型相交处隐形的面数,单个模型面数最多不能超过1 000,否则会影响系统的运行,通过对整个场景中模型的优化达到最终的效果。

  2.2交互界面

  沉浸式虚拟校园漫游系统在界面设计上以简洁、直观、便于用户操作为主要目的。主要考虑界面的色彩搭配、字体搭配以及页面布局等多方面因素[10]。为了便于体验者在校园里游览,本文依照界面设计原则,为体验者预留出大片的屏幕区域,增加学校场景的开阔感,所以在页面左侧以Button形式绘制出与系统交互的功能按钮,右边大片区域用于显示校园漫游时的浏览画面及交互效果。

 2.3传送功能

  为了方便体验者在场景中漫游,本文设定传送门功能,在漫游镜头到达指定传送位置时,会出现传送对话框,可以根据需要传送到场景中其他位置,也可以通过导航图快速定位漫游到想去的地点,运行效果如图2所示。部分代码如下:

  //碰撞检测函数

  function OnTriggerEnter(col : Collider){

  //条件判断是否撞击到人,如果触发碰撞则打开传送门

  if(col.gameObject.tag == "Player"){

  Chuansongmen.ch=0;}

  }

002.jpg

  2.4白天和夜晚转换功能

  为了增强虚拟校园交互漫游中的真实效果,在场景环境构建时除了考虑校园模型,还对天空、雾及光照效果等进行了模拟和控制。白天和夜晚主要体现在天空盒、灯光、阳光的差异,用代码控制Render Setting中的天空盒选项,通过点击按钮改变天空盒6个方向的图片,来实现白天和黑夜的转变。校园场景中光线可随时间的变化增强或减弱,实现一天中的仿真效果,模拟出现实生活环境,效果如图3~4所示。

003.jpg

  2.5导航小地图

  为了使用户在漫游时可以实时获得虚拟校园的方位信息,场景中加入导航功能,系统导航可以使用户在参观校园时获得实时的位置信息,直观地浏览校园,避免用户进入虚拟校园后,由于对环境的不熟悉而迷失方向。具体实现时,采用2个摄像机,分别用于显示小地图和正常漫游场景,通过计算人物所在位置与场景的比例来定位漫游时人物的具体位置,然后采用标志点方式在小地图中显示出来,如图5所示。

004.jpg

  2.6碰撞检测

  在虚拟漫游过程中,体验者的观察视点将随着输入设备的运动不断发生变化,对于树木、楼房、路灯等建筑需要做碰撞处理,否则极易造成视点穿过建筑物,造成虚假感觉。本系统在设计碰撞检测功能时使用触发碰撞检测功能,即指定一个处于触发状态的碰撞器,将实际检测碰撞对象包含进该触发器中,这样角色与对象的碰撞检测就转换为角色与触发器之间的碰撞检测,解决了碰撞过程中的突兀、不真实的感觉,提高了系统性能和真实程度,如图6所示。部分代码如下:

  //触发器碰撞函数

  function OnTriggerEnter(col : Collider)

  //如果检测到人则进入触发器碰撞

  {if(col.gameObject.tag == "Player")}

005.jpg

 2.7虚拟漫游

  虚拟漫游是系统的重要模块,为了让体验者充分感受3D校园美景,本文采用自动漫游和自主漫游相结合的方式。当体验者对学校路况不熟悉时可以采用自动漫游方式,系统会带领体验者按照预定的浏览路线进行游览,自动对整个3D校园进行观察。在自动漫游中,由于路线是预先制定好的,所以参与者可以不受外界一切干扰,当然这也限制了参与者的视角宽度,灵活性较差。自主漫游是与自动漫游相互补的另一种方式,体验者可以通过WASD键进行前后左右走动,鼠标或是dk2头戴设备可以转换漫游视角。

  设计虚拟漫游系统时,设定体验者可以选择跑步或是走路等多种动作以便让用户获得更好的体验,具体实现代码如下所示:

  //界面功能选择

  function OnGUI(){

  //如果点击跑步按钮则进入跑步模式,并调整相应跑步速度

  if(GUI.Button(Rect(100,100,100,40), "跑步"))

  {CharacterMotorMovement.maxForwardSpeed=8;

  p=1; }

  //如果点击走路按钮则进入走路模式,并调整相应走路速度

  if(GUI.Button(Rect(100,150,100,40), "走路"))

  {CharacterMotorMovement.maxForwardSpeed=4;

  p=2; }

  }

  2.8Occlus dk2沉浸式虚拟漫游实现

  Oculus dk2 是2014年7月上市的一款虚拟现实设备,如图7所示。它有两个目镜,每一个目镜的分辨率都可以达到640×800,用户在使用过程中,两个目镜叠加产生三维虚拟沉浸感,整体分辨率可以达到1 280×800,使得用户在校园漫游时沉浸感大大提升。

006.jpg

  由于Unity Free integration for Oculus提供了与Unity Pro用户相同的Oculus特性,因此,使用Unity4.6和Oculus integration包在Rift上可以开发沉浸式虚拟现实漫游系统。首先,需要把Unity 4 Oculus integration package导入到Unity中,然后找到 OVRPlayerController prefab将其拖入Hierarchy面板中替代MainCamera。戴上虚拟现实头盔游览校园时测试效果如图8~图9所示。

007.jpg

  3系统运行效果

  如上所述的沉浸式虚拟校园漫游系统的开发及运行均在Windows7操作系统上实现,硬件环境为CPU Intel(R)Core(TM)i5-3230M,主频2.6 GHz,内存4 GB,显卡AMD Radeon HD7500M,软件环境为Unity3D4.6和3DS Max2014,运行效果如图10~图12所示。系统可以发布到PC、Web等多种平台上,并能流畅运行,获得了较好效果。由此证明,该系统具有较好的移植性,能够在多种软硬件平台下运行。

008.jpg

4结论

  本文基于3DS Max建模技术和Unity3D虚拟现实技术,将校园场景信息进行收集、整理并建立完整的三维仿真模型,结合虚拟现实头盔Occulus dk2开发沉浸式3D虚拟校园漫游系统。运行结果表明,这种方法建立的虚拟校园突破了传统的二维数字校园平面表现方式,可以实现直观、生动、逼真的校园场景,用户戴上头盔后有很强的沉浸感,可以很直观地、全方位地浏览整个校园景观,并且进行诸如漫游、传送、自动浏览等一系列操作,人机交互效果良好,具有身临其境的感觉。本文为沉浸式虚拟校园建设提供了新思路,同时可以推广到博物馆、公园景观等虚拟现实应用中。未来,随着虚拟现实技术的不断成熟,沉浸式虚拟校园将在沉浸感、真实感等方向继续向前发展,增添更加丰富的内容。

参考文献

  [1] 张典华,陈一民.基于Unity3D的多平台虚拟校园设计与实现[J].计算机技术与发展,2014,24(2):127130.

  [2] 刘航,王积忠,王春水.虚拟校园三维仿真系统关键技术研究[J].计算机工程与设计,2007,28(6): 2934 2936.

  [3] 张荣华.几何建模技术在虚拟校园漫游系统开发中的应用[J].计算机工程与设计,2008,29(28):61466148.

  [4] SCHANKRC. The virtual university[J]. Cyberpsychology & Behavior,2000,3(1):120123.

  [5] 张晓宇.虚拟校园漫游系统的设计与实现[D] .长春:吉林大学,2013.

  [6] 梁少刚.基于位置服务的三维虚拟校园系统的设计与实现[D].重庆:重庆邮电大学,2015.

  [7] 仲于姗.基于Unity的3D虚拟校园漫游系统的开发[D].昆明:云南大学,2015.

  [8] 刘柱.基于UNITY WEB3D虚拟校园的设计和实现[D] .大连:大连理工大学,2014.

  [9] 刘东江.基于GIS的虚拟校园的设计与实现[D] .北京:北京交通大学,2014.

  [10] 李玉平,徐懋琦.多媒体人机交互界面设计的适宜性[J].华东理工大学学报(社会科学版),2006,21(2):112-114.


此内容为AET网站原创,未经授权禁止转载。
Baidu
map