VR的三维虚拟场景漫游系统的设计与应用

来源 :卫星电视与宽带多媒体 | 被引量 : 0次 | 上传用户:shaoyan_8
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】当前VR技术广泛流行,VR在众多领域得到了广泛应用。建立三维虚拟场景,将其应用到场景漫游之中,使用户足不出户就能得到身临其境的体验。本文基于Unity3D引擎,在windows平台和安卓平台,设计并实现了一个“三维虚拟场景漫游系统”,实现了具体的校园路径查询。实践证明,该系统使用户在陌生环境下也能获得良好的出行体验,因此论证了在Unity3D平台下,建立三维虚拟场景漫游系统的可行性。
  【关键词】VR;智能校园;场景漫游;Unity3D
  【基金项目】本文系2020年度湖南省大学生创新创业训练计划项目《基于VR的三维虚拟场景漫游系统的设计与应用》(项目编号:湘教通〔2020〕191号)
  中图分类号:TN929                            文献标识码:A                           DOI:10.12246/j.issn.1673-0348.2021.08.026
  随着交通的不断便利,人们的出行机会越来越多。准大学生在选择心仪院校的时,也会因此更有可能前往实地游览,来明确自己的选择。在完全陌生的环境下,如何快速去了解周围环境,并在最短时间内以正确的路线,移动到目的地,显得极为重要。在科技的飞速发展下,三维的虚拟场景漫游得到了广泛应用,使得这一系列问题得到改善。本文正是在此背景下,以作者母校"湖南涉外经济学院"为原型,设计出来的一款基于Unity3D平台面向PC端和安卓端开发的"虚拟仿真智慧校园"系统。本系统与当下盛行的VR技术相结合,以三维的形式,向用户展示了一个仿真的虚拟校园场景,摆脱了空间上的束缚,让用户能够轻便而又切身的享受到对于学校场景的漫游,从而达到宣传学校,方便新老师生的目的。
  1. 虚拟场景漫游系统的设计
  利用计算机建模软件所构建的基本三维模型是生成虚拟场景的根本。根据现实建筑情况以及周遭环境布局,设计一个使人身临其境的虚拟场景,并在此基础上引入较优的路径寻址算法,最后完成系统的多平台移植。以此规划处了"三维虚拟校园漫游系统"的总体设计流程,如图1所示,由四大步骤完成:
  第一步:本应用系统以湖南涉外经济学院作为场景漫游环境,参考学校官方建筑模型和作者实地观察,使用Probuilder进行模型建设。基于Probuilder所提供的三维基础模型,在其3D、点、线、面上进行延伸、扩展、修改,在场景中实现UV控制,从而构建所需的校园建筑与景点基础模型模块,在此基础上,获取学校特色的贴图素材,制作材质球,对基础模型根据场景特色进行贴图,使得模块更加贴近真实场景建筑。
  第二步:在Unity3D工程中,设立场景基底,将已经建立好的建筑模型,根据学校平面图,进行区域规划,位置布局,并贴合网格功能,实现完整的仿真校园地图,进而达到更加真实的3D可视化环境。
  第三步:设计系统所附带的功能模块。其中简要分为核心功能和辅助功能。
  核心功能是以Navigation组件出发设计的校园寻址导航功能(自动计算与目标点之间最短路径并显示该路径,以该路径前往目标点),采用了自动导航和NPC寻路的双导航模式,让用户能够了解路线并跟随路线行走。
  辅助功能包含了校园信息介绍,小地图,背景音乐等功能,提供了有关场景的多项信息,并在使用本程序時,有着更良好的人机交互,使得系统更加完善。
  第四步:将系统进行集成化,适配PC端和安卓端应用环境。对于不同平台所具有的特有输入设备,撰写相关对应处理的脚本,以便于适配应用环境,并将其打包发布到对应平台供用户使用。如图2所示
  2. 三维虚拟场景漫游系统的实现
  2.1 三维虚拟学院场景的构建
  Probuilder简介:ProBuilder是一款免费的编辑器扩展插件,其所附带的多项工具可以在Unity编辑中实现无缝的构建,自定义化构建几何体,应用纹理贴图对几何体美化,具有非常流畅和直观的工作流程。是一款结合老式"BSP树构建风格"的功能齐全的3D建模和UV展开工具。
  利用Probuilder的多项主流使用工具,对学校的建筑进行快速建模:
  利用Shape Tool构建基本几何体模型,在Probuilder所提供的四大模式Object、Vertex、Edge、Face(即3D对象、点、线、面)下进行图形的修改,制作出校园场景所需要的基础模块。
  利用Merge组件对所构建的基础模型进行拼接整合,该组件会将所选择的所有Probuilder对象合并到一个Probuilder对象,从而合并了网格降低了Draw calls,对场景的移动漫游进行了优化。
  将一部分具有对称性的教学楼、寝室楼、花坛等建筑,利用Mirror工具,选取好需要镜像反转的轴,进行镜像复制,完成规模较大的教学楼、寝室楼模型构建。
  创造Materials材质球,将所需贴图贴到材质球上,将制作好的材质球加入Material Edito中进行管理。
  选择之前构建好的Probuilder对象,将材质球上的材质附着在对象上,并进行调色,通过贴图操作,从而使模型更加贴合现实环境。
  管理已经建立好的模型,在Unity3D以网格为基底作为参考单位,建立学校地基,将建筑物参照学校实际布局和"湖南涉外经济学院平面图"(如下图3),进行摆放,完成三维虚拟学院场景的构建,并以FBX格式保存,方便适配多种引擎进行后续开发。   构建完的三维虚拟学院场景如图4所示:
  2.2 系统场景漫游功能实现
  2.2.1 校园导航寻址功能实现
  Unity3D内置了Navigation导航组件,具备了基本的Bake(烘焙),NavMesh(导航网格)和NavMashAgent(导航代理)等基本导航功能,实现了烘焙地图,将可行走区域显示化,实现在可行区域内的最短路径寻址计算。
  使用NavMesh导航网格对地形进行烘焙设置,对禁止通行区域的NavMeshArea类型设置为NotWalkable,将所要设置的可行区域设置为Navigation Static,并打开Bake页面,通过属性设置,对边缘属性(Agent Radius),通行高度(Agent Height),下落距离(Drop Height),跳跃距离(Jump Distance等属性进行设置,完成烘焙地形。
  使用NavMeshAgent寻路组件,创造引路NPC,并对其基本属性如移动速度上限(Speed),加速度上限(Acceleration)进行设置,并导入常用的API,SetPath(设置路线),Move(移动到目标点),CalculatePath(计算到点路径并进行存储)等使之符合物理原理,依此来增强NPC的虚拟仿真性。
  为特殊路段以及地形即上坡、下坡、小路、台阶等,通过NavMeshArea进行路径消耗值(Cost)的设置,方便导航组件对路径值进行计算比较,进而得到最适合的路径输出反馈给用户。
  制作映射表,將学校校园建筑名称和坐标以键值对的形式存储,即哈希表,用来实现名称与坐标相互转化,从而实现用户通过名称实现路径导航。
  以C#为语言工具,撰写NPC寻路、用户可控角色寻路和人机交互的脚本。获取用户操控的交互菜单(DropDown组件)所传输的数据,进行人机交互,处理用户需求。如利用NPC寻址功能,根据所获取的学校校园建筑名称,在所创造的哈希表中,利用键值对映射关系,得到具体的三维坐标,使用NPC所挂载的NavMashAgent组件中的SetDestination方法进行路径寻址,设置Move函数判断是否达到目标坐标(目标建筑附近),当所需坐标和NPC所处位置小于0.5f时,判断NPC成功达到目的地。
  2.3 跨平台移植实现
  2.3.1 PC端
  使用Unity3D自带的File菜单下的Build Settings菜单命令,选择PC端进行打包,随后设置PC端有关参数。选取合适的应用程序图标,鼠标样式,分辨率和程序,完成PC端的打包和发布。
  2.3.2 安卓版本
  Unity3D的Build Settings菜单命令支持其程序发布到多个平台,本系统如要发布到安卓平台,需要增加适配安卓平台的对角色的移动进行控制的部件(如摇杆,陀螺仪),并通过实现C#和Android工程的协调工作,将C#脚本能在Android工程中被调用,进而使得程序适配与安卓平台环境。
  添加摇杆功能。将摇杆功能作为安卓端的移动控制功能,来代替PC端的键鼠输入控制。设计一张固定的方向贴图作为背景层和一张可移动的摇杆贴图作为控制层,使用UGUI的三个事件接口OnPointerDown()、OnPointerUp()和OnDrag()用来注册相关的事件委托,设计一个返回值为Vector2的GetPositions()方法,来获取未进行标准化的摇杆偏移量和方位,将返回值传到事件委托之中进行处理,以供安卓端的角色移动类进行调用进行调用。
  C#和Android工程交互。由于安卓端不兼容C#脚本程序,因此我们必须设计一个实现C#和Android工程相交互,相互协调工作,以此来达到移植的工作目的。
  在C#脚本之中利用系统类com.unity3d.player.UnityPlayer获取当前Android工程中的静态成员currentActivity,以此来调用Android函数。
  在Android工程之中使用Java代码,调用Unity3d的AndroidCallBackUnlockGame方法,写下被Android工程调用的C#代码。
  3. 辅助功能
  若仅有漫游寻址功能,会使得系统显得单一乏燥,因此添加了一系列的辅助功能,使系统更加完善。
  "登录功能"(登录系统,对登录系统的用户进行区分),"校园地点介绍和人物介绍"(对校园建筑所蕴含的建设目的、历史意义、设施配备进行介绍,对所属学院的老师和风采学子进行介绍),小地图功能(展示用户当前所漫游场景位置的缩略图,让其知晓当前所在位置以便对周围地理信息进行分析,了解其所处的真实环境的周边布局),景点背景音乐功能(对景点音乐进行设置,调节景点音乐的音量大小)。
  3.1 校园地点介绍和人物介绍功能
  编写多个Button控件如hieu_Histroy()(学校历史)、hieu_Engineering ()(工学院信息)、hieu_TeachingBuilding(教学楼信息)等,方便用户和机器之间进行良好的信息交互,并将获取的用户所需信息,于资料库中进行查找,通过一个text控件进行输出,反馈给用户详细信息。
  构建UGUI控件,创建Canvas画布和EventSystem事务系统
  将用户所接触的Button控件,写入DropDown下拉菜单之中。
  利用用户操控的交互菜单,对用户所需要的操作与机器相交互,获取输入数据。
  创建Text和RawImage控件,根据输入数据,输出相对应的信息,利用RawImage所限制的图片格式为Texture,对图片进行纹理贴图坐标处理,控制图片行列展示。   3.2 小地图功能实现
  通过利用OnGUI()方法,撰写C#脚本,实现在场景右上角绘制一个基于当前用户角色位置的实时动态小地图的功能。
  定义小地图和用户的贴图,角色控制器,角色位置。
  编写Start()方法,获取角色控制器,从而获取角色初始位置,由于是小地图所展示的空间为二维,故此仅需获取平面两位坐标即可。
  编写OnGUI(),在屏幕上创建小地图贴图,并在上面显示角色贴图,作为角色所在附近地理信息的缩略图。
  编写Update()方法,实时获取被刷新的角色位置,从而改变小地图情况。
  3.3 背景BGM功能
  本系统中的音效效果,主要使用Unity3D自带的三个类进行实现。
  通过Audio Clip类导入音频文件进入Unity3D环境之中。
  在第一人称视角上添加Audio Listener组件,用于接收BGM。
  在所需要切换BGM的特色景点建筑附近,添加碰撞器,利用Audio Sources类控制音频的播放与否,并设置相关的播放参数。
  编写C#脚本,通过Audio Sources的返回值进行判断,实现不同场景的音乐播放。
  4. 总结
  "三维虚拟校园漫游系统"主要创造出了一个虚拟仿真的校园环境,促使人能够更加身临其境的在系统之中进行场景漫游。系统的界面简单明了,操作轻易上手,在模型建立上,颇有学校特色,具有分辨性。其所附带的多项功能,即便是初来乍到的用户,也可以在学校中轻车熟路,前往目的地,并且获取多项学校详情信息,进而使得更多对于本校或部分校园建筑景点较为陌生的新老师生,进一步的了解和浏览学校。本系统积极影响着学校的展示宣传、聘师招生等事项,推动学校特色魅力发展。
  由于技术和时间上的缺陷,本系统仍然存在大量优化空间等待提升,如可以采用CAD对校园在2D平面上以比例尺进行构建,3DMax对模型进行进一步精密设计,引入SteamVR插件,配合HTC头戴显示器和HTC VIVE手柄进行更真实的虚拟环境模拟。
  参考文献:
  [1]李芳,肖洪,杨波等.三维数字校园的设计与实现[J].系统仿真技术,2010(1):71-75.
  [2]亚峰,于复兴.Unity3D游戏开发技术详细与典型案例分析[M].北京:人民邮电出版社,2009.
  [3]宣雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012.
  [4]张青峰,姚红生,燕慧婷,等.基于MultiGenn Creator & VRP构建校园虚拟现实平台的理论与实践[J].测绘科学,2010,35(1):192-194.
  [5]陈伏龙,于旭永,王京,等.三维电子地图的设计开发与研究[J].石河子大学学报(哲学社会科学版),2011(S1):11-12.
  [6]常志坚.虚拟3D旅游景观系统的设计及实验研究[J].电子设计工程,2016,24(16):131-133,136.
  [7]刘发久.基于Unity3D的虚拟校园[J].2016,第24卷(第12期):37-39.
  [8]刘国柱.Unity3D/2D游戏开发从0到1(第二版)[M].北京:電子工业出版社2018.2.
  作者简介:张国强(2000.3.4-)男,汉族,浙江省温州市,研究方向:计算机视觉,图象处理
  李军(1980.9-)湖南邵阳,男,汉族,硕士,湖南涉外经济学院副教授。研究方向:图形学、计算机视觉
其他文献
【摘要】近年来随着我国科学技术的发展,卫星广播也开始逐渐走进人们的生活当中,卫星广播的应用范围越来越广泛。相较于其他广播形式而言,卫星广播具有的优势更强大,它可以覆盖大面积的地理位置,而且还不受一系列的自然环境条件的制约,因为在一些地理位置特殊的地方,传统广播是接收不到信号的,但是基于卫星接收机基础上的同步广播可以完美地解决这一问题。而且在我国未来的发展当中,科学技术的应用范围会越来越广泛,卫星接
【摘要】本文介绍了大型融媒体直播节目《中国一日》贵州地区的直播系统技术方案。本方案为多路由、全方位、立体式呈现直播节目的丰富内容,体现我国在决胜全面小康,决战脱贫攻坚,消除绝对贫困这个具有特别重大历史意义的一年,为超时长直播提供了优质的技术支持。  【关键字】联合大型直播;公网传输;5G;SRT;卫星;总控调度  中图分类号:TN929 文献标识码:A
【摘要】当今世界正处于数字化飞速发展的时代,科学技术不断进步,数据化也不断地得到增强。由于大数据的发展,为很多行业都提供了便利。出现了很多大数据融合性的差异,大数据技术与电视新闻采编的融合也越发的紧密,这就为新闻采编的发展提供了很大的便利,促进了新闻行业的发展优化了新闻采编行业的运作模式,不断地对新闻采编行业和数据进行深度融合,促进新闻采编业的发展。  【关键词】大数据技术;电视新闻采编;深度融合
【摘要】随着信息技术的迅速发展,传统广播节目制作中的问题也凸显无疑,但在此过程中也因科技成果的诞生给广播节目制作带来了发展机遇,即当下数字化在各行各业中都有广泛的应用,通过采用数字音频处理技术,转换音频信息的处理质量,也能够将音频信息与视频信息进行同步,对于加强广播节目的整体制作质量具有实效作用。  【关键词】广播节目制作;数字音频处理技术;应用  中图分类号:TN94
【摘要】随着当前科学技术的蓬勃发展,大量的先进技术在生产生活被大范围应用。不但给人们的生活带来的极大的方便,还推动了人们物质水平的不断上升。娱乐行业的发展势头越来越猛烈,同时广电领域也为人们带来了各种娱乐平台,使人们的思想和生活都得到了明显丰富。而在互联网的发展下,把光电技术和互联网技术相结合也成为一个重要话题。  【关键词】广电技术;互联网技术;结合;方法策略  中图分类号:TN94
【摘要】本文分析了广播电台总控机房精密空调报警系统的设计需求,详细介绍了精密空调的功能特点、主要部件、运输和储藏环境要求、精密空调控制器与后台报警系统之间的通讯协议规范,设计了一款精密空调报警系统,保障了安全播出,节约了运维成本。该系统已运用于湖南人民广播电台播出机房,大大减轻了安全播出管理人员负担,提高了播控系统的可靠性,实现了总控机房的科学管理。  【关键字】总控机房;精密空调;报警系统  中
【摘要】融媒体的不断发展和进步,对新闻采写提出更高要求。因此,新闻从业人员要积极加强自我提升,不仅要积极优化选题和选题策略,也要积极加强对信息技术的掌握,这样才能有效推动新闻业积极发展,也能利用新闻采写保持较好的舆论导向。本文首先,讲述新闻采写中选题和选题策划的形式;其次,分析选题和选题策划在新闻采写中的重要性;最后,阐述新闻采写中优化选题和选题策划的策略,期望新闻从业人员加强对选题和选题策划的关
【摘要】科技的发展促进了信息时代的发展。借助于数字电视技术,有线电视网络正在迅速发展,并为媒体发展提供了強大的技术支持。数字电视技术具有稳定的信号传输,强大的可操作性和高分辨率,可以满足各种用户的需求。随着电视媒体产业的兴起和发展,数字电视技术在信号传输过程中的优势正在逐渐显现。电视技术的飞速提高得益于数字电视技术的普遍应用,其技术方案也在逐渐完善。本文根据数字电视技术的应用,阐述其技术特点、目前
【摘要】随着我国社会科技的迅速发展,越来越多的高科技进入到人们的生活中。电视是大多数人了解世界与国家的渠道,采编部門作为一个时效性的新闻部门要提高自身的采访能力以及编辑能力。采编部门的新闻与采编记者息息相关,一个好的采编记者必然会让人们了解到事件发生的情况。根据这些情况进行新闻采编部门能力的探究,不断提高电视台新闻记者新闻的编写能力以及采访能力。  【关键词】电视台;新闻记者;采编能力  中图分类
【摘要】GIS技术在公众生活、生产建设、城市管理、科学研究、宏观决策等领域中发挥巨大作用。在生活条件日渐改善,却有更多的人进入亚健康行列的社会背景下,通过分析现今应用市场上各类美食系统的优点与不足,结合GIS技术及计算机网络技术,提出基于GIS的美食推荐系统。本系统设计了“菜谱提供”、“美食地图”、“大众社区”等子系统,具备菜谱推荐及搜索、多形式烹饪教程、地区特产菜介绍、菜市场推荐及导航、用户展示