计算机系统应用  2018, Vol. 27 Issue (3): 258-262   PDF    
基于Unity3D的地铁三维虚拟漫游设计
周信文1, 俎晓芳1,2, 罗津1,2,3, 李鑫1, 兰美玲1, 许隽晗1, 钟爱平1     
1. 江西师范大学 地理与环境学院, 南昌 330022;
2. 鄱阳湖湿地与流域研究教育部重点实验室, 南昌 330022;
3. 流域生态与地理环境监测国家测绘地理信息局重点实验室, 南昌 330022
摘要:随着虚拟现实技术的飞速发展, 如何利用计算机展示现实场景的三维漫游效果, 已成为当下研究的热点. 以Unity3D为平台, 利用3DMax软件进行场景建模, 结合Unity3D自身强大的界面交互技术, 完成整个南昌地铁一号线虚拟漫游系统的开发. 最后通过地面站点全景的外链衔接, 实现了地铁站内三维模型场景与地铁站外全景的一体化漫游功能. 实践研究结果表明, 整个虚拟漫游系统能够给用户带来直观的地铁漫游体验.
关键词: Unity3D    虚拟漫游    三维建模    全景    地铁    
Design of Three Dimensional Virtual Roaming of Metro Based on Unity3D
ZHOU Xin-Wen1, ZU Xiao-Fang1,2, LUO Jin1,2,3, LI Xin1, LAN Mei-Ling1, XU Juan-Han1, ZHONG Ai-Ping1     
1. School of Geography and Environment, Jiangxi Normal University, Nanchang 330022, China;
2. Key laboratory of Poyang Lake Wetland and Watershed Research, Ministry of Education, Nanchang 330022, China;
3. Key laboratory of Watershed Ecology and Geographical Environment Monitoring, National Administration of Surveying, Mapping and Geoinformation, Nanchang 330022, China
Abstract: With the rapid development of virtual reality technology, the way we use the computer to display 3D models of realistic scene has become a research hotspot. The system based on Unity3D platform is constructed by using 3DMax to build the scene, combining Unity3D's prominent interface interaction technology to form Virtual Roaming System of Nanchang No.1 Metro Line. Finally, through the external link about ground station panorama, the system has integrated function of roaming subway station both inside and outside. The result shows that virtual roaming system can bring users intuitive roaming experience.
Key words: Unity3D     virtual roaming     3D modeling     panorama     subway    

1 引言

虚拟漫游在建筑、旅游、游戏、航空航天、医学等多种行业发展很快. 其中虚拟建筑场景漫游是虚拟漫游的一个代表性方面, 它是虚拟建筑场景建立技术和虚拟漫游技术的结合, 前者是基础, 后者是系统运行方法. 与传统漫游手段相比, 虚拟漫游更具有沉浸感、交互性和构想性. 传统的文字介绍已经无法满足人们对新事物认知的需要, 能够身临其境地去体验事物已经成为一种使用习惯. 通过虚拟漫游技术可以异地随时漫游新建筑, 真实三维体验感, 操作的交互性实现了人机关系的跨越, 使漫游体验更有趣味[1]. 国内有诸多学者将该技术应用于火车站、地铁站等复杂建筑的三维仿真, 并进一步开展相关研究工作. 如王淑嫱利用虚拟建筑场景建立技术, 构建了地铁车站三维模型, 为地铁信息管理提供三维信息平台[2]. 杜霄利用三维视景仿真技术描述了列车动态运行过程[3]. 结合虚拟漫游技术, 翁武文以车站建筑三维模型为载体, 基于Unity3D虚拟现实平台, 设计并实现虚拟车站漫游系统, 达到了展示车站内外环境的目的[4].

本文以南昌地铁一号线为例, 设计了地铁车站的地上地下一体化三维虚拟漫游系统, 将传统的三维建模技术与当下实用的全景技术结合, 可以方便地为本地乘客导乘, 也可帮助外地游客了解地铁沿线站点的主要景观.

2 总体设计思路与技术路线

按常规的地下实体三维建模方式, 构建地铁站点地上地下一体化三维模型, 需要采集沿线40公里的地下站点几何拓扑结构和地面景观的庞大数据, 工作量巨大. 考虑到地下站点构造大体相似性和地面出入口的差异性. 本文提出一种新的技术实现思路: 地下通过3DMax实现精细化的三维地下建模, 地面采用360度全景技术展示出入口周边主要街道和建筑景观; 两者基于Unity3D实现联动和漫游, 并在线发布, 以满足大众化的导乘需求. 相比于专业建模的技术要求和较高的人工成本, 本文的建模过程相对轻松, 而且实现效果不亚于精细化建模的导乘作用. 因此, 南昌地铁一号线的虚拟漫游设计需要解决的问题包括:

(1) 地铁地下三维模型构建的主体内容;

(2) 地铁地面站口全景图像的制作与呈现;

(3) 三维模型与全景图像如何集成化管理漫游.

上述设计思路可以按如下技术路线和步骤实现:

(1) 构建地铁站点地下三维模型. 通过现场考察拍照, 获得需要的南昌地铁内部实景图像, 然后利用Photoshop对地铁内部图片进行裁剪与编辑, 转换成3DMax最终需要的三维模型纹理贴图, 同时还需要地铁各站点精确的平面图层数据, 才开始三维模型的构建. 经过渲染烘焙后, 将建成的模型导入Unity3D平台, 实现地铁三维场景的简单漫游.

(2) 制作地面站口的360度全景图. 首先通过专业相机拍摄南昌地铁一号线沿线站点出入口周边街道和建筑景观的照片, 然后将其制作成方便用户浏览的全景图.

(3) 地面全景的展示. 利用百度地图API生成地铁线路、站点、出入口的布局图, 将百度地图上的地铁站点出入口与开始制作好的全景图对应关联, 并发布到互联网生成URL.

(4) 用户交互界面设计. 模型导入Unity3D实现简单地下漫游的同时, 还可以利用其按钮交互功能访问地面站点全景的URL, 最后生成可执行文件形成完整的虚拟漫游系统.

3 关键技术与实现 3.1 地铁站点地下场景的三维建模

如前文所述, 构建地铁地下站点的三维模型时, 需要利用3DMax软件对南昌地铁一号线站点场景进行建模, 贴图及模型烘焙, 然后将地铁三维模型转换为. fbx格式, 导入Unity3D中为下一步工作做准备.

整个地铁运行系统包含多个场景, 地铁场景的三维建模也包含了大量的内容. 根据地铁空间的层次结构, 可以大致划分出整个地铁三维场景的模型, 主要分为地铁入口、站厅台、站层台、隧道. 地铁模型结构如图1所示.

图 1 地铁三维场景模型结构

为了提高建模效率、减少互相牵制和干扰因素, 将地铁候车空间和隧道场景分开建模. 同时对于整个地铁场景的三维建模, 需要尽可能掌握地铁场景中各实体的空间信息. 通过 AutoCAD 图形构建获取地铁候车层, 隧道、轨道的结构尺寸, 为3DMax三维建模提供准确的轮廓数据. 同时, 为弥补南昌地铁场景AutoCAD二维图形数据难以表述建筑、设备外观上具有表象性的局部特征信息的局限性, 采取实景照片加以辅助来建立三维模型. 人工拍摄的地铁站点内部场景实景照片, 经过Photoshop软件对亮度、色调、饱和度处理之后, 通过贴图纹理应用到建好的模型中, 不仅能表现地铁场景中各实体的具体位置关系信息, 还能制作出在3DMax中用于表现虚拟模型外观的颜色, 更加贴近现实场景的真实感. 例如, 地铁站内部的广告牌无需进行建模, 只需将处理好的广告牌实景贴图放置于模型墙体表面, 同样能够达到真实的漫游效果. 地铁站厅层与站台层的漫游效果如图2图3所示.

图 2 站厅层场景漫游效果图

图 3 站台层场景漫游效果图

3.2 沿线站点全景发布与VR漫游

全景图(panorama)是一种具有固定视点和大范围视角的广角场景图像, 包括360度水平视角视和160度以上的垂直视角[5]. 南昌地铁出入站口全景图的获取, 需要使用数码相机实地拍摄连续的图像序列, 然后通过软件拼接得单个站点一个出入口的完整全景图.

为了方便用户结合百度地图使用导乘功能, 各个站点和出入口之间需要实现灵活的场景切换, 即需要将单个站点的全景图与百度地图中对应的地铁沿线站点进行关联, 并针对单个站点不同出入口提供关联跳转功能. 为此, 本文设计了南昌地铁一号线24个站点对应的24个全景网页, 其中首页面如图4所示: 每个页面包含当前站点的多个出入口跳转链接、前一站点和后一站点的跳转链接, 以及页面缩放和方向控制等功能.

图5所示, 奥体中心站C口全景效果. 图中箭头指示前后站点的跳转链接, 鼠标点击全景图中预设的热点, 触发同站点内各出入口间跳转的操作[6]. 页面底部控制面板亦可实现前后站点和不同出入口跳转, 相应功能支持键盘控制, 用户还可以通过点击VR按钮切换VR状况, 达到更好的场景漫游体验.

图 4 南昌地铁一号线地面站点全景首页

图 5 南昌地铁一号线地面站点全景网页

4 地下站点场景与地面全景的交互

Unity3D内置的组件将物理引擎、声音引擎、碰撞检测、动画组件、场景管理等模块封装得非常易用, 可视化的编辑器, 可以帮助开发者实时预览场景效果, 其界面交互技术也正是实现三维模型与全景图像集成化管理漫游的关键.

程序主界面主要通过Unity3D的NGUI插件搭建, 包含功能控制按钮, 及小地图显示区域.

(1) 小地图的实现方式, 即创建一个小地图相机跟随第一人称主相机一起移动, 其实就是让小地图相机和主相机的相对位置不变即可. 这里需要使用代码来控制两个对象之间的相对位置, 使其保持不变. 在Unity3D中, 用transform 组件来获取一个物体的位置, 将小地图相机与第一人称主相机关联, 那么只要主相机进行运动, 其transform属性的值就会传递到至小地图相机上, 小地图相机的位置就等于主相机位置+运动偏移量, 关键代码如下:

 void Start () {

 offset=transform. position-fpstransform. position;

 }

 // 初始化时计算出两者之间的初始偏移量

 void Update () {

 transform. position=offset+fpstransform. position;

 }

(2) 地下站点场景漫游, Unity3D中自带第一人称视角控制相关代码, 手动漫游按钮的代码可以直接调用, 用户通过鼠标和WASD键盘按键在第一人称视角下进行三维漫游, 还可通过界面右上角小地图观察在地铁站中所处相对位置.

(3) 地下场景至地面全景跳转, 首先需要通过NGUI菜单创建响应全景网页跳转事件的按钮, 目的是通过点击按钮实现C/S端至B/S端的网页跳转, 网站链接的设置需要按钮子集下的标签来完成. 其过程大致可以简述为:

1) 在按钮中添加Lable;

2) 在Lable的Inspector中设置全景跳转的网页链接.

(4) 运行系统时, 点击全景跳转按钮即可自动弹出相应网页进行地面全景漫游功能体验. 地面全景漫游功能设计主要是能够在由拍摄的全景图像所构建的南昌地铁各个站点的全景空间里进行场景切换, 达到浏览各个不同出入口场景的目的, 方便乘客进出站点. 具体设计实现过程如下:

1) 将处理好的全景图用全景处理软件制作成可以自动旋转, 和具有放大缩小, 控制旋转方向的全景图格式文件.

2) 通过百度地图API创建地图, 初始化地图元素, 加载地图操作基本控件, 同样利用百度地图API在地图中全景图对应点添加控制按钮.

3) 将之前制作好的全景图文件嵌入加载好的百度地图网页中, 通过使用JavaScript语言对应设置地铁各站点及出入口的控制按钮, 显示每个地铁站的ABCD出入口, 然后通过鼠标点击即可查看对应站点出入口的全景图.

5 结语

本文通过南昌地铁一号线站点地下场景的三维建模及站点地面出入口的全景图, 基于Unity3D+百度地图平台, 实现了南昌地铁一号线地下地面一体化三维虚拟漫游, 为地图导乘和沿线站点景观漫游提供了一种简单易行的解决方案. 相比于地下地上真三维建模, 在技术层面, 节省了大量的研发时间和人工成本, 在表现形式上达到了预期效果, 希望对同行研究具有一定的参考意义. 随着南昌地铁其他线路的陆续开通, 未来还可以扩展成南昌市轨道(地铁)交通网络三维虚拟仿真平台, 则会具有更大的实用价值.

6 致谢

本文研究得到江西省人力资源与社会保障厅博士后择优资助项目, 国家自然科学基金(No. 41461083), 国家科技支撑项目(2015BAH50F02, 2015BAH50F03), 江西省重大生态安全问题监控协调创新中心项目(JXS-EW-00), 鄱阳湖湿地与流域研究教育部重点实验室主任基金(ZK2014002), 流域生态与地理环境国家测绘地理信息局重点实验室经费资助.

参考文献
[1]
黄颖. 基于Unity3D虚拟现实技术的岳麓书院3D漫游设计[硕士学位论文]. 长沙: 湖南大学, 2016.
[2]
王淑嫱, 王乾坤, 何辰琛. 地铁车站三维辅助建设与管理系统的构建. 武汉理工大学学报(信息与管理工程版), 2012, 34(3): 289-292, 321.
[3]
杜霄, 唐涛. 地铁列车运行仿真系统中三维视景建模和简化. 系统仿真学报, 2006, 18(6): 1724-1728.
[4]
翁武文. 基于Unity 3D的虚拟车站的设计与实现[硕士学位论文]. 厦门: 厦门大学, 2016.
[5]
Oettermann S. The panorama: history of a mass medium. New York, NY, USA: Zone Books, 1997.
[6]
王磊, 高珏, 金野, 等. 基于Web3D无插件的三维模型展示的研究. 计算机技术与发展, 2015, 25(4): 217-220.