基于Unity的校园漫游VR系统设计与实现

  • 格式:doc
  • 大小:22.00 KB
  • 文档页数:5

基于Unity的校园漫游VR系统设计与实现作者:张耀来源:《数字技术与应用》2018年第11期摘要:随着信息技术的高速发展和互联网的快速普及,媒体信息的呈现方式经历了由纯文字信息到图像、音视频,由二维静态的图片到动态三维的图像变换。

本文研究的虚拟校园漫游VR系统,是以苏州工业园区服务外包职业学院为虚拟空间,基于3D游戏引擎制作开发的虚拟校园漫游系统。

用户随时随地借助计算机设备浏览校园,进行查询信息、互动观察。

关键词:虚拟现实;虚拟校园;Unity3D中图分类号:TP391.9 文献标识码:A 文章编号:1007-9416(2018)11-0124-030 前言虚拟现实(VR, Virtual Reality)是一种充分利用计算机硬件与软件资源的集成技术,综合了计算机图像、数字媒体、人机交互、网络通信等多种学科技术而发展起来的计算机领域新技术[1]。

虚拟校园(Virtual campus)是虚拟现实技术在教育培训中最早的具体应用。

它将校园信息以三维可视化的形式在计算机上呈现,并可以在线的方式通过互联网,用户远程访问校园空间。

1 Unity3D游戏引擎Unity3D是时下十分热门的一款3D游戏引擎,对DirectX和OpenGL拥有高度优化的图形渲染管道,提供了具有柔和阴影与烘焙Lighting maps的高度完善的光影渲染系统。

凭借着其独特的性能和华丽的3D处理效果以及在视角等方面的优势,得到了越来越多游戏、虚拟现实开发者的好评。

其最新版本支持以WBGL格式发布输出,更是解决了众多Web3D虚拟现实制作软件需要下载浏览器插件运行的问题。

2 虚拟校园系统的技术分析目前在网络上看到的虚拟校园系统,基本上是基于两种技术实现的。

一种是基于全景摄影技术制作开发,也称为720全景浏览。

一种是基于三维模型实时渲染制作开发。

2.1 基于全景摄影技术的展示设计基于全景摄影技术的展示设计,是以实景拍摄的照片(或3D渲染效果图)为素材,通过这些素材组合而成球形视图。

导入至相关软件平台中,实现动态交互,用户能用鼠标控制环视上下左右四周。

全景浏览具有较强的真实感、沉浸感、成熟的技术平台等优势。

但是基于全景摄影技术的缺点也很明显,比如说对硬件的投入和依赖度很大,拍摄720实景照片的摄影器材除了要有专业单反相机以外,需要特定的8mm鱼眼镜头,甚至还要有全景云台辅助拍摄。

只能移动视角,无法真正实现自由走动,不能实现真正意义上的互动,后期更新和改动相当麻烦等。

因此,严格来说它只能算是技术含量相对较低的伪三维虚拟展示形式。

2.2 基于三维模型实时渲染的展示设计基于三维模型实时渲染的展示设计,是指根据项目需要,通过各种3D建模软件(3Ds Max、MAYA等),以几何模型来构建各种3D虚拟场景物件。

通过绘制纹理材质、烘焙贴图、渲染处理,导入虚拟现实制作软件进行场景的拼接、设定交互操作,并将文字、图像、声音、视频等多媒体信息整合,最终打包输出应用。

目前主流的虚拟现实制作软件有:Unity3D、Unreal 4等等。

受软件技术的制作门槛和硬件设备条件的限制等因素,目前基于三维模型的实时渲染效果制作技术难度较高,普通人很难在短时间内掌握整套制作流程。

这也是720全景浏览的展示方案能够与之并存的原因。

但由于基于三维模型的实时渲染技术实现的效果立体感、空间感和互动感都更强烈,所以它才是最有发展前景的虚拟现实制作方向。

2.3 开发平台的选择考虑到以往的虚拟校园漫游系统大多采用Virtools、Quest3D、中视典VRP等软件平台开发,无论是在交互性、沉浸感等方面都或多或少的存在一些缺陷。

由于游戏引擎技术的不断发展成熟,特别是Unity3D其独特的性能和华丽的3D处理效果以及在视角等方面的优势,其运行环境稳定性和可操作性比Virtools要强,复杂模型和地形的展示效果也比Quest3D好,交互性的优势也非常明显。

所以本项目决定选用Unity3D来实现该系统。

3 虚拟校园系统的构建虚拟校园系统包括一个高度仿真的特定区域的虚拟环境。

它是对人的肉眼所看到的学院景物进行的高度拟真,通过计算机形成的三维模型再现了真实校园的景物。

它使用先进的计算机图形图像技术,形成了一个高度拟真的3D视、听觉的感官世界,用户借助某些设备对这些生成的虚拟校园进行浏览和交互。

有效地实现具有虚拟现实沉浸感的三维虚拟校园[2]。

如图1所示:3.1 数据的收集和整理为了尽可能真实的展现校园环境中的楼宇建筑,地形地貌,规划布局,植被绿化,实现写实逼真的拟真效果,必须收集获取现实环境中的数据和参考素材。

首先,根据校园规划图纸,掌握整个校园的建筑楼宇布局,有条件的话,借助专业测绘仪器进行实地测量,获取更为精准的数据。

这个对校园中各部分的空间构成十分重要。

其次为了了解较为精细的局部情况,使用数码单反相机在现场拍摄数码照片,对于楼宇建筑物,花卉,绿植和附属设施来说,纹理贴图主要来自照片的后期加工处理。

在Photoshop中对数码照片进行必要的处理,例如图像的尺寸大小调整,去除噪点杂质,调节亮度,对比度和锐化等效果,按制作规范形成模型的纹理贴图,按命名规范进行存放汇总。

3.2 场景模型的数据库组织对前期收集的资料和数据进行规整后,整个场景中的数据模型按照一定的逻辑规则进行组织,数据模型以模块化结构的形式组织,有利于模型的构建、场景的整合、优化等维护和管理。

模块化结构根据对象的类型划分,相同类型的物件归为同一个模块,并且可以在每个模块中再细分。

例如,整个场景可以由楼宇建筑,附属设施和配件,绿植地形等组成。

同时楼宇建筑又可以教学楼,实训楼,图书馆,行政楼、宿舍楼等。

以此规范组织数据库,层次结构清晰,一目了然。

如图2所示。

3.3 三维模型的建立即通过计算机,按真实的尺寸比例将校园中的各楼宇建筑和绿化景观等物件建立三维模型并绘制材质贴图。

形成虚拟校园三维模型库,主要包括楼宇建筑、地形绿化、桥梁景观和路灯等其他物件模型等等。

建模步骤主要有模型布线—拆分UV—贴图处理—材质渲染等步骤。

以下将以行政楼为例介绍具体制作流程。

首先是采用单反相机进行拍摄的整栋楼宇的正面视角图像,为了提高系统的运行效率,必须在保证建筑物形状的情况下最小化多边形的数量,例如基本在同一平面内的门和窗,可以采用贴图来表现效果。

突出建筑的四面必须遵循建筑的原型进行建模布线。

拍摄的照片主要用来参考制作纹理贴图的素材,根据楼宇的对称特性以及表面装饰的颜色纹理与材质,经过Adobe Photoshop软件处理后导出为贴图文件。

根据前期获取的参考素材和数据,按大楼的长宽高比例,在3DS Max中进行建模布线。

校园环境复杂,物件种类繁多,虚拟校园中的场景模型是一个比较复杂的3D模型资源库,这些资源对系统内存的占用较高,当模型资源消耗了大部分计算机硬件的内存空间后,就会拖慢整个系统的运行速度。

如果在3Ds Max中进行建模时不注意控制模型资源,在进行相应的接口转换时就容易导致系统崩溃。

在建立模型时一般采用单元分割的方法来提高系统运行的实时性。

贴图方面,需要使用标准的纹理尺寸,如128×128、128×256、1024×1024等2的倍数,并且分辨率越小占用显存资源越少,两者的关系如表1所示。

由此可知,显存的占用随着贴图分辨率的提高也大幅增加。

因此,对于一些远景物体或者显示效果要求不是很高的物件,可以使用低分辨率的图像进行纹理处理。

3.4 用Unity3D实现漫游3.4.1 模型的导入与设置参数由于3Ds Max与Unity3D使用的3维坐标体系不同,3Ds Max中是Z轴向上,而Unity3D 中是Y轴向上,如果不注意导出格式的话,导入后会出现模型错位的问题。

注意导出格式选用FBX格式可以规避出现此类问题。

导出的时候,可以将模型简单的分类,如地面、植被、楼房等,也可以将模型分为几个区域,如教学区,宿舍区,操场等等分开导出。

(1)将包含FBX文件和Textures文件夹的文件夹拷贝到Unity3D项目的Assets目录下,启动Unity3D编辑器。

选择刚才拷贝进来的文件中的FBX文件,修改其中的Meshes下的Scale Factor和Generate Colliders。

点击其他FBX文件或者单击其他区域将弹出对话框。

点击Apply即可,类似的方式设置其他FBX文件。

注意,其中植物/植被类的FBX文件不需要设置Generate Colliders项。

(2)鼠标左键点选FBX文件拖拽到Hierarchy窗口区域,点击Hierarchy区域中的GameObject对象,如需近距离三维显示目标区域,则点击键盘F键,该对象自动适配显示到三维区域中心。

将全部三维模型的FBX文件导入完成后,可以调节场景灯光亮度。

单击Ambient Light调整设置合理的参数即可设置完成。

(3)设置第一人称浏览。

首先导入Standard Assets资源包,然后将资源包目录Prefabs下的First Person Controller拖拽到Hierarchy窗口区域中。

点选First Person Controller,通过Inspect窗口中的Transform属性值,调整到场景中合适的坐标位置,同时调节其高度位置在场景地面以上,数值的合理区间一般在1.6到2.2左右。

(4)完成模型的导入后,加载SteamVR资源包,调用VR相关组件,调整好参数设置后。

点击运行按钮,即可运行场景,连接HTC VIVE虚拟现实头盔设备,可进行真机测试。

3.4.2 场景的技术优化在Unity3D中每一个被展示的独立的部分都被放在了一个特别的包中,称之为“描绘指令”(draw call),然后这个数据包传递3D部分在屏幕上呈现出来。

通过CPU来完成包装和传递这些过程,同时会消耗很多的带宽,所以最终分配好这些关键性资源很重要。

为了降低CPU 和网络带宽的占用。

就需使用Culling(剔除)技术来有效减少“描绘指令”(draw call),以大幅提高系统的网络传输速度和系统运行的流畅性。

Culling(剔除)技术目前主要分为两种:视锥体剔除(Frustum Culling)和遮挡剔除(Occlusion Culling),前者Unity3D系统已自带,为默认的优化功能。

Unity 3专业版内置了一个免费的强大的Occlusion Culling 插件Umbra。

遮挡剔除(Occlusion Culling)是Unity中被用于游戏场景后期优化的一种有效手段,它的具体作用是只将摄像机能看到的物体渲染出来,而摄像机无法看到的物体,将会被计算机自动从内存中除去,不进行渲染。

如此便极大地提高了计算机的运行效率。

4 结语本文从前期收集资料和素材整理,到中期使用3Ds Max和Photoshop进行三维建筑模型制作,后期运用Unity3D整合模型资源,建立场景,用C#脚本语言实现人机交互,最终实现了一个完整的虚拟漫游系统。