基于Unity引擎的VR游览系统——以罗布林卡为例

2022-05-30 06:15杨佗索南尖措谭涛张国能
电脑知识与技术 2022年29期
关键词:虚拟现实

杨佗 索南尖措 谭涛 张国能

摘要:近年来,传统意义上的2D视角的地图浏览或图片浏览,已经不能很好地满足用户沉浸式游览的需求。文章以罗布林卡为例,利用Unity引擎制作虚拟浏览平台,让更多的用户可以游览了解罗布林卡。

关键词:VR;漫游系统;Unity3D;虚拟现实

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2022)29-0057-03

1 引言

西藏得天独厚的自然环境和地理位置创造了其独特的历史文化。罗布林卡直译为宝贝园林,为全国重点文物保护单位,地理位置位于西藏自治区拉萨市西郊。由达赖七世建造于18世纪40年代,全园占地36万多平方米,其中主要建筑有格桑颇章、金色颇章、达登明久颇章等宫殿,房屋370多间,是西藏园林现存中规模最大、历史文化古迹最多的园林。同时罗布林卡内也保存着大量珍贵的文物和典籍,具有十分重要的历史意义和文化意义。2001年11月,联合国教科文组织批准罗布林卡列入世界文化遗产—拉萨布达拉宫历史建筑群(布达拉宫、罗布林卡及大昭寺)的扩展项目[1]。利用虚拟现实技术可以将保护罗布林卡的手段提高到新的阶段,同时可以更好地发挥出自身的文化价值,在互联网中成为更好的资源,真正做到“共享资源”。

2 相关技术及发展应用

虚拟现实技术是一种有效地模拟生物在自然环境中的视、听、动等行为的交互技术, 其概念是发展的和变化的[2]。随着VR(虚拟现实)技术、AR(增强现实)技术及处理器,显卡等硬件的快速普及和发展,虚拟现实技术在社会上已经有着极为广泛的应用,同时发展空间巨大。VR技术近些年来飞速发展,在科学计算、航空航天、影视旅游、游戏娱乐、军事训练等诸多领域得到了一定的应用,同时为旅游、教育、文娱、零售等行业带来了新的活力和营销模式。

3 项目实现的意义

西藏地处高原,地理位置比较特殊,对于许多想要来西藏旅游,却因为各种原因无法到来的人来说,虚拟旅游是一个很好的选择。使用虚拟现实技术构建起虚拟三维仿真世界,可以使更多的人认识从不同角度了解认识罗布林卡,可以更好地保护和宣传历史文化古迹,以减轻旅游人数过多对景区的压力。同时虚拟现实技术下的旅游可以满足特殊旅游群体的需求,例如一些残障人士或一些追求不同体验的游客,他们对于旅游的要求较高,而虚拟旅游可以很大程度上满足这些特殊旅游者的愿望,解决特殊人群的旅游需求[3]。

4 系统实现思路

系统开发过程中以软件工程方法学为基础, 以实际需求为导向, 设计系统内各模块的功能。系统大致实现流程图如图2。

4.1 资料收集

虚拟游览平台建立在现实中的真实场景基础之上。因此获得真实可靠的景点的三维空间数据信息十分关键。

首先对景点进行测量画图,拍照记录等操作,在计算机上制作出景点的平面CAD图像,为后期的建模工作提供最基础的信息。同时,利用Adobe Photoshop等图像处理软件对拍摄的图像进行修剪,精细化处理,为后期景点模型的贴图制作做好准备。

其次准确记录景点的地形地貌,利用相机等对景区进行拍摄测绘留存,在建立建筑物景点的三维模型时会简单很多,拥有可参考的数据则对于制作景区的三维模型更加方便。对自然景点进行场景计算机重绘比较困难,因此将会花费更多时间来进行三维模型的建立。

最后在收集景点的三维空间资料的同时,收集各个罗布林卡各个宫殿建筑的历史资料及事迹等。对各份资料进行处理,为后面制作景区的交互内容打下基础。再利用Photoshop、Premiere Pro等图像处理和视频处理软件来处理好所需的音频MP3文件、视频MP4等讲解文件,并规范命名,打包处理。

4.2 模型制作

根据绘制的平面CAD图像等收集的资料,在3ds Max、Zbrush和Cinema 4D等三維模型制作软件中利用不同的软件特性进行三维模型的建立。其次建立好材质和贴图后,再将贴图重新烘焙为RGB、法线、alpha、置换等图像。由于需要实时加载,文件不能太大[4]。减少模型面数,同时要求模型所表现的整体效果也与高面数模型相差不大,从而实现计算机资源消耗的平衡,使系统运行得又快效果又好。园区三维模型的构建包括地形、建筑物以及环境。地形和建筑在有了具体的地形数据和建筑物数据之后,可以在Cinema4d、3ds MAX等三维软件中根据景点实际数据进行构建。环境部分主要包括天空背景、树木和花草,这些在 Unity 3D中有自带的多种模型可以选择,也可以通过其他三维软件制作。

虚拟重建的一大难点在于建模逼真度和渲染速度之间的矛盾[5] 。一个景点漫游系统模型的三维模型面数可能很多,太复杂的模型对于系统的流畅运行很不利,对模型充分地优化可以减轻系统运行对计算机的压力,以此方便用户快速浏览。

4.3 导入Unity及搭建场景

将制作完成的模型及交互资料按分类导入Unity3D引擎中进行场景的搭建,将模型和人物的比例按照比例进行组合。在基本的场景搭建好处理细节部分,如建筑之间的间隔,各个场景模型之间的碰撞,天空盒的按时轮换等。

4.4 导入Unity搭建场景及调试

实现人物的移动,人物与场景的交互等功能,完成UI设计。在功能实现以后调试系统漏洞,仔细检测人物与场景的模型碰撞,人物与场景的交互等是否有问题,防止出现穿模,无法交互等。

4.5 导出可执行文件

点击Unity页面左上角File菜单,点击Build Setting选择导出设置,进行快速导出或使用快捷键Ctrl+Shift+B,再选择本场景导出,即可获得可执行文件。

5 场景三维模型的创建

5.1 前期准备

通过对罗布林卡的走访和勘察并部分采像,根据园区的平面图像和采集的数据,对景点的后期建模进行初步规划。在园区内进行录像、部分拍照留存,绘制基本的地形图等方式采集园区内的建筑资料。对于特殊建筑,如格桑颇章、金色颇章、达登明久颇章等主要宫殿,要采集更加清晰的图片,为以后制作贴特做好前期的基本准备。其次,对于主要建筑要做好不同分类的留存资料,除了基本的三维空间数据以及花纹材质以外,还包括其历史文化资料,包括建造目的、主要用途、历史记录资料、特殊事件经历、文化历史记录等资料。为将来制作系统交互提供基础。

5.2 各个部分模型的建立

首先将园区的平面图导入Cinema 4D中规划好园区的各个部分,建立基本的组成部分模型,包括道路地形、草地植被、部分普通设施等。将主要宫殿的位置进行规划。将道路与主要建筑的区域进行规划,同时将各个位置中的精细三维模型比例规划好;再根据采集的资料建立出单独的主要建筑精细模型,特别注意建立模型时按规划的比例建立,为建模型提供便利。同时使用品质质量较高的贴图,以更好地还原场景。在模型建立后,将其进行优化以增强系统的运行速率,让玩家可以拥有更好的体验。同时收集好各个建筑文物的历史文化资料并分别进行导入。建好的模型需导入Unity3D实现交互[6]。

5.3 整体场景的组建

在各部模型建立完成以后,将素材规范打包导入Unity引擎中,在引擎中将模型素材进行按规划进行组建,同时再次调整模型之间的比例,让整个场景调整得更加还原真实的场景。组建完成后将模型根据不同的需求加入刚体、网格碰撞器等不同的物理组件。同时在主要光照光源中插入C#脚本模拟天气效果,用以模拟更加真实的场景。

6 系统主要功能的实现

人机交互是虚拟现实的核心之一[7] 。在Unity3D中编写C#脚本,实现人机交互,包括导航点跳转、信息显示等功能[8]。

6.1 人物移动

在导入Unity引擎中自带的characters包,使用在Standard Assets-Characters- FirstPersonCharacter-Prefabs文件夹下的FPSController即可,同时在Unity资源商店中下载导入SteamVR包,在FPSController下的摄像机加入可以在HTC VIVE中摄像机脚本SteamVR_CameraHelper以及渲染左右手柄的脚本即可。

6.2 小地图功能的实现

在Unity中创建一个新的Camera对象,将其命名为MapCamera。然后将该相机拖入玩家物体下方设置为玩家的子对象,并将该相机设置在玩家物体正上方合适位置,把相机对准玩家模型,以正y轴向玩家照射。此时可以该相机对象可以在显示出实时运行场景,需要渲染至UI层,需要利用Render Texture来实现设置,再创建出新的Render Texture,命名为MapUI,在属性中将Target Texture字段设置为Map Texture。同时在Asset中新建Canvas来添加UI元素。新建Raw Image,然后命名為Map Image,在检视面板中将Texture字段设为Map Texture即可以显示。再将制作好的遮罩物体导入Unity作为自身遮罩,利用Tags and Layers遮蔽玩家。在MapCamera中设置摄像机在浏览界面中合适的渲染位置即可。

6.3 寻路功能的实现

Navmesh(导航网格)是3D游戏中动态物体实现自动避障寻路的一种技术,在场景中把除了人物和目标点以外的所有物体设置为静态模式Static,选中玩家添加上Nav Mesh Agent组件,在目的地执行Navigation窗口下Bake面板下的Bake命令。在需要导航的位置添加物体作为目标点,可以利用Mesh Renderer组将目标点的模型设置为不渲染状态,再编写脚本挂于玩家物体上,部分核心代码如下:

public Transform targetpos;

private NavMeshAgent nav;

void Start ()

{nav = GetComponent();

nav.SetDestination(targetpos.position);}

6.4 模拟天气

利用Unity中天气系统插件UniStorm模拟较为真实的天气系统。在将UniStorm插件下载完成并导入后,在场景中创建一个UniStorm System,具体步骤为在工具栏中点击 Window→UniStorm→Create Weather System,创建完成后场景中将出现一个UniStrom System 的预制体,通过更改预制体的参数,可以对天气进行控制,模拟不同的天气、不同时间下的状态。

7 结束语

当今社会的飞速发展,人们也越来越追求更加深刻沉浸的文化体验,虚拟现实技术可以很好地满足人们足不出户就可以体验到不同地区文化的需求。同时虚拟漫游技术可以帮助各地更好地保护文化遗产,达到了对濒危历史建筑遗产科学、精准与永久性地保存的目的[9]。

参考文献:

[1] 孙丽娟.关于西藏罗布林卡最早的建筑——乌尧颇章的研究[J].文物鉴定与鉴赏,2022(5):145-147.

[2] 邹湘军,孙健,何汉武等.虚拟现实技术的演变发展与展望[J].系统仿真学报,2004,16(9):1905-1909.

[3] 许红云.VR技术在虚拟旅游的应用研究[J].电脑与电信,2016(7):36-38.

[4] 蔡金玲.基于unity的校园虚拟漫游系统设计与制作[J].广东技术师范学院学报,2015,36(5):131-135.

[5] 周宁,王家廞,赵雁南,等.基于虚拟现实的中国古建筑虚拟重建[J].计算机工程与应用,2006,42(18):200-203.

[6] 王平,杨继爽,魏峰,等.浅析人机交互技术的发展进程与专利概貌[J].中国发明与专利,2013(5):39-43.

[7] 张凤军,戴国忠,彭晓兰.虚拟现实的人机交互综述[J].中国科学:信息科学,2016,46(12):1711-1736.

[8] 戴龙利.基于WorldViz虚拟现实平台的建模和互动研究[D].南京:东南大学,2017:21-23.

[9] 姚美康,吴尧.虚拟仿真技术在建筑遗产保护中的研究与实践[J].遗产与保护研究,2018,3(5):66-70.

【通联编辑:谢媛媛】

猜你喜欢
虚拟现实
论虚拟现实艺术的“沉浸”
REALITY BITES
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
虚拟现实:另一个真实世界
浅谈虚拟现实