王紫涵 付峥
【摘要】本项目采用swift语言,利用iOS的ARKit框架,以Xcode等为开发工具,设计出一款App,通过三维建模定义虚拟景象在现实世界的成像信息,辅以场景解说等真实还原天体系统全貌图,通过对ARKit框架添加内容增加球形模型,加上图片渲染形成“掌上银河”,点击AR生成的虚拟图像后会进行场景解读,提升用户体验。全程除移动手机设备无额外硬件负担,仅对模型进行更迭即可,易于维护和扩展内容。
【关键词】掌上银河 ARKitswift
一、引言
增强现实技术(Augmented Reality,以下简称AR)是指通过手机,平板等多媒体设备辅以三维建模、实时视频显示以及传感器的融合,达到真实世界信息和虚拟世界信息“无缝”融合的技术。未来AR将在很大程度上改变人类生活,是科技发展的必然趋势。人们对现实与虚拟的融合的探索充满着热情,同时,也渴望探索神秘的宇宙。因此,我们通过三维建模定义虚拟景象在现实世界的成像信息,辅以实时视频,场景解说等真实还原天体系统全貌图。以AR这门新兴技术融合神秘的宇宙学,不但形象立体地展现了太阳系,也满足了人们对宇宙的好奇。
二、实现原理
先捕捉现实世界,获取摄像机拍摄的一帧一帧的图像序列,将获取的图像序列进行处理,输出包含有现实世界场景的所有信息。接着进行世界追踪,ARKit 使用视觉惯性测距技术,对摄像头采集到的图像序列进行计算机视觉分析,并且与设备的运动传感器信息相结合。ARKit 会识别出每一帧图像中的特征点,并且根据特征点在连续的图像帧之间的位置变化,然后与运动传感器提供的信息进行比较,最终得到高精度的设备位置和偏转信息,检测出现实世界的水平面,当摄像机不断移动时,检测到的平面也会不断的变化。当点击屏幕时,ARKit会发射一个射线,将射线遇到的所有有用信息返回,返回结果以离屏幕距离进行排序,离屏幕最近的排在最前面,获取当前捕捉到的图像中某点击位置有关的信息。然后基于当前捕捉到的图像的曝光等信息,给出一个光照强度值,将摄像机捕捉到的真实世界的视频作为背景,将世界追踪到的相机状态信息实时更新到AR world中的相机,处理光照估计的光照强度,实时渲染虚拟世界物体在屏幕中的位置。
三、实现方法
本作品包括基于ARKit的场景搭建模块、设置文稿解说内容、三维建模和服务器架构四个模块。
(一)AR场景搭建
即首先使用加载AR的3D场景视图ARSCNView,并且初始化节点,再通过管理会话追踪配置ARSessionConfiguration实现场景的追踪并且返回一个ARFrame,根据2D坐标点搜索3D模型,它主要目的就是负责追踪相机在3D世界中的位置以及一些特征场景的捕捉。SCNScene是AR场景中的场景,场景中是由许多SCNNode节点组成,一个SCNScene可以包含多个SCNNode子节点,一个子节点SCNNode可以有多个childNode,而一个节点就是一个3D模型,然后将节点即3D模型添加到Scene中,初始化完成后开启AR会话,相机开始捕获真实世界,通过camera获取真实世界的信息,将获取到的真实世界信息进行理解,基于场景理解,将虚拟世界渲染到真实世界的指定位置,在屏幕上展示增强现实的世界,通过点击屏幕的方式和虚拟世界进行交互,虚拟世界响应交互后,重新渲染,移动设备时,捕获到真实世界的变化,重新理解场景、重新渲染AR世界。
(二)设置音乐与解说内容
针对航天文化做出概述,设计AR模式为,第一次打开App时自动弹出,可选择关闭。针对每一个天体做出解释性文字,在屏幕点击天体时弹出解说内容,可选择播放语音解说内容或者视频,播放背景音乐,可选择关闭。
(三)三维建模
利用SceneKit进行3D模型创建,它是iOS中用来开发3D模型的引擎,包含了如光照、模型、材质、摄像机等高级引擎特性,可以基于它做出很多逼真的3D物理模型。为节点增加相应的贴图,设置三维坐标,利用SceneNode提供的8种属性用来设置模型材质,例如为地球贴图时,为地球节点的diffuse、emission、specular属性分别提供一个对应的图像,建成一个趋近真实的三维地球模型。添加动画,即星球节点的自转以及公转动画,并且为太阳添加光晕、为地球添加云层,为其它星体也添加对应的特性动画,将公转与自转剥离开,使用节点之间的层级结构处理旋转。
(四)服务器架构
在阿里云上搭建Apache,MySQL环境。设置存储服务器和计算服务器,创建云端数据库资源包,将航天文化知识导入知识数据表,将背景音乐导入音乐数据表,以及将天体解说内容导入解说数据表,移动终端将捕获的信息进行分析计算,识别匹配后从数据库中下载数字信息进行虚实融合。建好服务器后将程序编译进移动端开始运行。
四、小结
从神舟十号任务以后,中国的载人航天技术已经成熟,已成航天大国,这时为国人普及太空的知识显得尤为重要。而随着智能设备的普及,人们对于获取信息的方式已经不满足于传统的二维模型。相较于书籍,增强现实技术能为学习者提供近乎真实的虚实相融合的学习场景,以交互现实世界的方式更能满足用户的体验感与趣味性,在青少年教育方面效果更佳,能达到弘扬航天文化的目的。在国内AR起步比较晚,前期大多是以高校研究生,因而从开始开发到初步完成,由于这门技术并不是很多人都会,可参考的资料很少,只能搜集一些零零散散的资料进行整合学习。值得庆幸的是ARKit 提供了设备动作追踪、相机场景捕获和高级场景处理,并让 AR 元素的展示变得极为便利,从而大大简化了建立 AR app的开发难度。增强现实技术作为一种沉没式的学习方式,可以将丰富的资源信息和其他数据整合到用户能够观察到的现实场景中,为师生提供身临其境的学习环境,激发学生的学习兴趣,提升主观积极性。实时交互的特点削弱了位置、空间的限制,教师可以在课上或远程指导学生,弥补了现实环境中设备的不足,实现资源共享。帮助青少年换种新方式认识新世界,亲身感受原本只能靠想象的事物。
参考文献:
[1]員凯.ARKit开发实战[M].电子工业出版社:北京,2018.
[2]刘明阳.Swift语言实战精讲(第二版)[M].人民邮电出版社:北京,2016.
[3]王涌天,陈靖,程德文.增强现实技术导论[M].科学出版社:北京,2015.
基金项目:课题资助:南昌航空大学第14届三小课题。