基于Untiy3D的三维虚拟校园漫游仿真系统设计与实现
2016-08-04王丽
王丽
摘 要:三维虚拟校园是对真实校园场景的三维仿真模拟,它是数字校园和智慧校园建设的基础,在未来的校园建设中具有非常重要的意义。文章针对目前国内的三维虚拟校园仿真效果不佳、缺乏交互性、开发周期长等问题,以山西大同大学虚拟校园为研究对象,引入了一种新的交互性强、渲染效果好、开发周期短的开发方法。文章着重介绍了山西大同大学虚拟校园漫游仿真系统的总体设计思路、相关的开发技术和实现方法,并对系统实现的关键问题和方法进行了详细说明。
关键词:Untiy3D;虚拟校园;建模;漫游
中图分类号:TP315 文献标志码:A 文章编号:1673-8454(2016)09-0060-04
一、引言
随着科技的发展,人们不再满足于以往的亲临校园,或者以视频、照片等方式了解校园风貌,再加上各大高校招生规模的扩大,人们希望用更加简洁、直观、现实的方式了解和管理校园,提高学校的知名度,促进学校的发展。这就迫切需要一种新的校园展示和规划、管理的平台[1]。在此背景下,三维虚拟校园应运而生。
三维虚拟校园是虚拟现实技术、计算机网络技术、图形图像技术、多媒体技术等领域的高新技术在教育领域的综合应用,是数字化校园和智慧校园建设的重要内容,它打破了空间的局限性,能够直观地、真实的展现交互式三维校园场景[2]。
本文针对目前国内三维虚拟校园仿真效果欠佳、缺乏互动性、开发周期长等问题,以山西大同大学虚拟校园为研究对象,以一种交互性强、渲染效果好、开发周期短的开发方法,设计并实现了一个具有视觉和听觉、交互性较强的三维虚拟校园漫游仿真系统。
系统使用3ds Max等工具进行场景构建,使用Unity3D作为开发平台进行漫游和交互的设计,实现了山西大同大学虚拟校园的自动漫游和自主漫游。自动漫游可使用户按照预先设定好的路线全方位地浏览校园的各种环境,以产生身临其境之感;自主漫游带给用户较强的交互体验和沉浸感,可使用户通过鼠标、键盘自主控制虚拟人的走向,按照自己的意愿游览建筑,通过导航地图的配合准确定位虚拟人所处位置,点击建筑物按钮实现建筑物内外场景的切换,使用户既能浏览校园户外风光,又能进入主要建筑物内部了解教学环境。场景解说和背景音乐的加入,更增加了用户游览的兴致。
二、系统总体设计
依据需求分析,系统开发主要包括两个部分,即虚拟校园场景的构建和虚拟漫游交互设计。
1.虚拟校园场景的构建
虚拟场景的构建要以真实校园为蓝本。在构建之前需要采集相关数据,即需要获取校园建筑的实际尺寸并拍摄建筑物的相关图片,为后期建模和贴图做准备。虚拟校园场景的制作过程较为复杂,涉及到的相关技术较多。
在进行虚拟场景制作时,首先根据校园建筑物的实际尺寸,使用AutoCAD绘图软件绘制整个校园平面图,以确定各建筑物的平面布局和位置。AutoCAD是建筑行业中首选的平面图绘制软件,它简单易用,功能强大。
绘制好平面图后,就可以利用3ds Max进行各建筑物及虚拟人物的建模,完成整个三维虚拟校园场景的创设。3ds Max功能完善,容易上手,具有多种建模方式,其中强大的多边形建模非常适合建筑类建模。
三维虚拟仿真校园的模型制作好后,需要为建好的模型赋予材质,以准确表达模型的色彩、纹理、对光的反射、折射等物理属性。
为了模拟真实校园场景,需要添加灯光效果以突出场景的层次感,使场景更加真实、自然。为了减少CPU的计算时间,可以采用贴图烘焙技术将光照信息变成贴图形式。
完成上述内容后,需要将最终完成的模型导出为Unity3D兼容的. fbx格式。
2.虚拟漫游交互设计
系统以Unity3D为平台对虚拟场景进行交互设计。Unity3D是一款跨平台的专业商业游戏引擎,用它创建的游戏能够发布到浏览器、个人机、移动设备等平台上运行。Unity3D功能强大,且具有很强的交互性功能,利用它可以更快、更容易地创建三维游戏、三维动画、建筑漫游等游戏类项目[3]。
将.fbx格式的模型导入Unity3D中进行校园漫游系统的设计,内容包括界面制作、自主漫游交互设计、自动漫游设计、建筑物解说和背景音乐的添加。
系统完成后还要对系统进行优化,最后打包发布成可执行文件。如上所述,虚拟校园漫游系统的总体设计与开发过程如图1所示。
三、系统的实现
1.前期准备
虚拟校园场景建立的目的是反映真实校园,为了符合建筑物实际情况,在搭建场景之前需要通过查阅历史资料和实地测量,获取建筑物的真实尺寸;为了能反映场景模型的表面质感、纹理、色彩等,需要通过高清相机拍摄建筑物表面照片,包括外墙、地面、路灯、植物等,然后利用Photoshop软件对采集的图片进行相应的处理,得到模型表面贴图。
2.绘制CAD平面图
在模型设计之前,首先根据查阅的历史资料和实际的测量数据,利用AutoCAD绘制山西大同大学整体平面图,以确定路面及建筑物的平面布局和位置,在宏观上对校园建筑进行把控,为后期整个校园场景的整合奠定基础。图2为大同大学北校区道路分布图,图3为学生宿舍平面图。
3.建模
绘制好平面图之后,就可以使用3ds Max中丰富的建模技术对室内外建筑进行建模。校园场景复杂,使用的建模方法也较多,对于不同的物体有不同的建模方法,同一物体也可能有多种建模方法。如何选择合适的建模方法,对系统的性能起到关键的作用。结合经验,将如何选择建模方法总结如下[4]:
(1)基本三维型体的直接建模:对于通过3ds Max中提供的标准几何体和扩展几何体及其相互组合便可完成建模的物体,可直接进行建模,比如日常生活中常见的规则的桌子和椅子。
(2)多边形建模:对于需以标准几何体或扩展集合体做为初始型体,但结构较复杂的物体,需将其初始型体转换为“可编辑多边形”或“可编辑网格”,并在编辑面板中选择点、面进行修改从而达到理想的建模效果。
(3)二维图形建模:对于一些形状复杂,不能使用标准几何体和扩展几何体起型的物体,可以尝试使用二维图形起型,然后通过添加相应的修改器将其转化为三维实体模型。
(4)复合对象建模:对于需要通过两个或两个以上的物体通过特定的方式结合成为一个对象的建模通常使用复合对象建模方法。需要通过两个或两个以上的相交物体进行合并、取交集部分或取差集部分实现的模型,可利用几何体的布尔运算进行建模。
(5)人物建模:对三维人物进行建模时,可采用面片结合多边形的建模方法,面片是通过点织网的方法来实现,即将许多面片按照实际需要连接起来,最终构成模型。
(6)贴图建模:对于使用常规建模方法会造成点数、面数太大的模型,在实际建模中可以根据情况使用贴图建模等方法实现。贴图建模用于植物和一些对模型要求不高、距离较远的物体的建模。
若建模过程中存在同一模型可使用多种建模方法完成时,应选用产生模型面数最少的方法。对远处物体进行建模时,由于视觉要求较低,可适当降低“分段”数以减少模型面数。
4.制作材质
建立好模型后,为了使模型达到仿真的效果,需要以真实物体为基准为模型赋予材质。材质决定了物体的表面属性。简单的说材质就是物体看起来是什么质地。它是物体材料和质感的结合。系统使用3ds Max附带的插件—VRay渲染器实现模型表面材质的制作,真实表现物体表面质感、纹理、色彩及其它物理属性,最终得到逼真的模型效果。
5.渲染烘焙
校园中的光照效果可采用贴图烘焙技术或灯光技术来模拟。使用灯光技术时,CPU会进行大量的计算,渲染速度慢。所以在实际制作时,可以采用贴图烘焙技术来实现对灯光的模拟。贴图烘焙技术可以将3ds Max中的光照信息渲染成一张贴图,然后将这张贴图再贴到场景中以模拟灯光[5]。这样处理可以很大程度上减少CPU的计算时间,加快系统的运行速度。
6.模型整合与导入
在各个场景制作完成后,需要根据前面绘制的CAD平面底图,把各模型放到对应的位置上,将各场景整合为一个完整的虚拟校园。然后将整个场景文件导出为虚拟交互平台所兼容的.fbx文件格式。然后将其导入虚拟交互平台中进行虚拟交互漫游的设计。若虚拟场景过大,不能在3ds Max中进行整合,可将整个大场景分为各个独立的子部分,将各子部分和校园CAD平面底图分别导入到虚拟交互平台中,在虚拟交互平台中进行模型整合。
7.交互漫游设计
将场景文件导入虚拟交互平台中进行虚拟场景交互设计。使用户可以通过必要的输入设备对场景进行控制,在场景中进行漫游,体验身临其境之感。为了便于使用还为不同的场景配上音频解说和文字说明。
(1)自主漫游的实现
Untiy3D中的对象必须绑定脚本才能实现逻辑判断,完成相应的功能,一个脚本相当于一个组件,绑定时只需拖拽到相应对象的Inspector区域即可。
1)导航功能的实现
系统利用KGFMapSystem插件实现导航地图的快速制作。主要步骤如下:
在Untiy3D控制面板选择“Assets-->Import Package-->Custom Packages”,在弹出框中选择已准备好的KCFMapSystem插件,并进行解压。将插件中的“KGFMapSystem”拖到Hierarchy中。将插件中的“KGFMapIcon_player”拖到“First Person Controller”下。将插件中的“KGFMapIcon_air_friend”拖到任意一个GameObject下。点击“KGFMapSystem”,将“First Person Controller”拖至“Its Target”上。在Layer中添加“mapsystem”。点击运行,生成的导航地图如图4所示。
2)碰撞检测的实现
碰撞检测(Collision Detection)也被人们称为干涉检测或者接触检测,是一种对物体在运动过程中可能出现的碰撞或者干涉进行检查的技术,主要目的是为了避免碰撞或干涉原来运动事件的发生。可以避免运动物体穿墙而过、穿过地面等现象的发生。
Untiy3D中的角色控制器可感应对象之间的碰撞,需要调用父类方法OnControllerColliderHit()进行检测。在该父类方法中,使用hit.gameObject引用,即可获取角色控制器组件碰撞后的游戏对象。
3)人机交互功能的实现
在自主漫游模式下,实现按下键盘“W”、“S”分别控制虚拟人物的前进与后退,按下“A”、“D”分别控制虚拟人物能向左、向右运动。在此基础上点及鼠标右键可以实现环绕视角,滑动滚轮可以实现视角拉近与拉远,鼠标与键盘配合使用,让漫游者更加方便快捷。
其中使用键盘控制人物的主要代码如下:
(2)自动漫游的实现
系统利用在摄像机上绑定动画组件,预先设置好游览路线,通过播放动画剪辑达到自动漫游的目的。自动漫游分为行走模式和飞行模式,行走模式能深入室内游览各个角落,飞行模式可在空中俯瞰校园全貌,这样,让用户能在短时间内对学校有一个全面的认识,是校园漫游系统不可缺少的一环。
行走模式具体流程如下:
1)在“Hierarchy”面板中选择“Main Camera”,点击菜单栏中Component-->Miscellanecous-->Animation,这样“Main Camera”的“Inspector”面板中会出现该“Animation”组件。
2)点击菜单栏中“Windows”-->“Animation”,出现动画编辑界面。
3)回到场景三维显示区域,点击动画编辑界面的录制按钮,设置“Main Camera”路径帧,每一个路径帧是一个节点。
4)设置好“Main Camera”所有路径帧,重新点击录制按钮,保存动画,运行测试。部分效果图如5所示。
飞行模式是将摄像机置于空中,通过绘制曲线路径达到俯瞰校园的目的,与行走模式步骤相同,故不在此详述。
8.系统测试与发布
系统完成后需要对系统进行测试,根据测试结果对系统进行优化,确保系统性能良好后可进行发布。可以采用代理模型对模型进行优化,代理模型可以将模型的面数减少,从而达到内存资源消耗减少的目的。在此基础上,将“Main Camera”的“Clipping Planes”的范围调小,这样做可以使可见的视野减小,有效减小处理机压力。
系统测试成功后便可进行发布。在Windows系统下,发布时需点击菜单栏中的File->Build Setting。点击之后会出现一个场景编辑列表。点击工程面板中的各个场景,将它们拖到可编辑的列表中,场景后的数字表示渲染顺序,“0”号场景第一个渲染,点击Build将开始发布。
四、结语
三维虚拟校园的构建是一项较大的工程,往往需要多人分工完成。因而模型的规范显得更加重要。如模型命名问题、模型单位匹配问题、材质命名及“归档”问题、材质制作与模型制作同步问题等都会影响到后期的模型整合及系统性能。除此之外,建模中最关键的问题就是模型面数问题,它关系到三维虚拟校园系统的正常运行,在设计中应既保证满足用户的视觉需要,又保证模型中包含的面数最少。
参考文献:
[1][3]张明明.基于虛拟校园浸游的研究与实现[D].云南大学,2014.
[2]洪德法,卢文喜,李伟等.三维虚拟校园系统的设计与实现[J].地理空间信息,2012,10(1):84-87.
[4]Li Wang.Researching of the three-dimensional virtual simulation campus scenes construction technology[J].The Open Cybernetics and Systemics Journal,2015(Volume 9):1056-1057.
[5]百度文库.3ds max烘焙贴图[DB/OL].http://wenku.baidu.com/view/dff9340abb68a98271fefa03.html,2010-07-01.