王紫涵 付崢
【摘要】本項目采用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屆三小課題。