王紫涵 付崢
【摘要】本項目采用swift語言,利用iOS的ARKit框架,以Xcode等為開發(fā)工具,設計出一款App,通過三維建模定義虛擬景象在現(xiàn)實世界的成像信息,輔以場景解說等真實還原天體系統(tǒng)全貌圖,通過對ARKit框架添加內(nèi)容增加球形模型,加上圖片渲染形成“掌上銀河”,點擊AR生成的虛擬圖像后會進行場景解讀,提升用戶體驗。全程除移動手機設備無額外硬件負擔,僅對模型進行更迭即可,易于維護和擴展內(nèi)容。
【關鍵詞】掌上銀河 ARKitswift
一、引言
增強現(xiàn)實技術(Augmented Reality,以下簡稱AR)是指通過手機,平板等多媒體設備輔以三維建模、實時視頻顯示以及傳感器的融合,達到真實世界信息和虛擬世界信息“無縫”融合的技術。未來AR將在很大程度上改變?nèi)祟惿睿强萍及l(fā)展的必然趨勢。人們對現(xiàn)實與虛擬的融合的探索充滿著熱情,同時,也渴望探索神秘的宇宙。因此,我們通過三維建模定義虛擬景象在現(xiàn)實世界的成像信息,輔以實時視頻,場景解說等真實還原天體系統(tǒng)全貌圖。以AR這門新興技術融合神秘的宇宙學,不但形象立體地展現(xiàn)了太陽系,也滿足了人們對宇宙的好奇。
二、實現(xiàn)原理
先捕捉現(xiàn)實世界,獲取攝像機拍攝的一幀一幀的圖像序列,將獲取的圖像序列進行處理,輸出包含有現(xiàn)實世界場景的所有信息。接著進行世界追蹤,ARKit 使用視覺慣性測距技術,對攝像頭采集到的圖像序列進行計算機視覺分析,并且與設備的運動傳感器信息相結合。ARKit 會識別出每一幀圖像中的特征點,并且根據(jù)特征點在連續(xù)的圖像幀之間的位置變化,然后與運動傳感器提供的信息進行比較,最終得到高精度的設備位置和偏轉信息,檢測出現(xiàn)實世界的水平面,當攝像機不斷移動時,檢測到的平面也會不斷的變化。當點擊屏幕時,ARKit會發(fā)射一個射線,將射線遇到的所有有用信息返回,返回結果以離屏幕距離進行排序,離屏幕最近的排在最前面,獲取當前捕捉到的圖像中某點擊位置有關的信息。然后基于當前捕捉到的圖像的曝光等信息,給出一個光照強度值,將攝像機捕捉到的真實世界的視頻作為背景,將世界追蹤到的相機狀態(tài)信息實時更新到AR world中的相機,處理光照估計的光照強度,實時渲染虛擬世界物體在屏幕中的位置。
三、實現(xiàn)方法
本作品包括基于ARKit的場景搭建模塊、設置文稿解說內(nèi)容、三維建模和服務器架構四個模塊。
(一)AR場景搭建
即首先使用加載AR的3D場景視圖ARSCNView,并且初始化節(jié)點,再通過管理會話追蹤配置ARSessionConfiguration實現(xiàn)場景的追蹤并且返回一個ARFrame,根據(jù)2D坐標點搜索3D模型,它主要目的就是負責追蹤相機在3D世界中的位置以及一些特征場景的捕捉。SCNScene是AR場景中的場景,場景中是由許多SCNNode節(jié)點組成,一個SCNScene可以包含多個SCNNode子節(jié)點,一個子節(jié)點SCNNode可以有多個childNode,而一個節(jié)點就是一個3D模型,然后將節(jié)點即3D模型添加到Scene中,初始化完成后開啟AR會話,相機開始捕獲真實世界,通過camera獲取真實世界的信息,將獲取到的真實世界信息進行理解,基于場景理解,將虛擬世界渲染到真實世界的指定位置,在屏幕上展示增強現(xiàn)實的世界,通過點擊屏幕的方式和虛擬世界進行交互,虛擬世界響應交互后,重新渲染,移動設備時,捕獲到真實世界的變化,重新理解場景、重新渲染AR世界。
(二)設置音樂與解說內(nèi)容
針對航天文化做出概述,設計AR模式為,第一次打開App時自動彈出,可選擇關閉。針對每一個天體做出解釋性文字,在屏幕點擊天體時彈出解說內(nèi)容,可選擇播放語音解說內(nèi)容或者視頻,播放背景音樂,可選擇關閉。
(三)三維建模
利用SceneKit進行3D模型創(chuàng)建,它是iOS中用來開發(fā)3D模型的引擎,包含了如光照、模型、材質、攝像機等高級引擎特性,可以基于它做出很多逼真的3D物理模型。為節(jié)點增加相應的貼圖,設置三維坐標,利用SceneNode提供的8種屬性用來設置模型材質,例如為地球貼圖時,為地球節(jié)點的diffuse、emission、specular屬性分別提供一個對應的圖像,建成一個趨近真實的三維地球模型。添加動畫,即星球節(jié)點的自轉以及公轉動畫,并且為太陽添加光暈、為地球添加云層,為其它星體也添加對應的特性動畫,將公轉與自轉剝離開,使用節(jié)點之間的層級結構處理旋轉。
(四)服務器架構
在阿里云上搭建Apache,MySQL環(huán)境。設置存儲服務器和計算服務器,創(chuàng)建云端數(shù)據(jù)庫資源包,將航天文化知識導入知識數(shù)據(jù)表,將背景音樂導入音樂數(shù)據(jù)表,以及將天體解說內(nèi)容導入解說數(shù)據(jù)表,移動終端將捕獲的信息進行分析計算,識別匹配后從數(shù)據(jù)庫中下載數(shù)字信息進行虛實融合。建好服務器后將程序編譯進移動端開始運行。
四、小結
從神舟十號任務以后,中國的載人航天技術已經(jīng)成熟,已成航天大國,這時為國人普及太空的知識顯得尤為重要。而隨著智能設備的普及,人們對于獲取信息的方式已經(jīng)不滿足于傳統(tǒng)的二維模型。相較于書籍,增強現(xiàn)實技術能為學習者提供近乎真實的虛實相融合的學習場景,以交互現(xiàn)實世界的方式更能滿足用戶的體驗感與趣味性,在青少年教育方面效果更佳,能達到弘揚航天文化的目的。在國內(nèi)AR起步比較晚,前期大多是以高校研究生,因而從開始開發(fā)到初步完成,由于這門技術并不是很多人都會,可參考的資料很少,只能搜集一些零零散散的資料進行整合學習。值得慶幸的是ARKit 提供了設備動作追蹤、相機場景捕獲和高級場景處理,并讓 AR 元素的展示變得極為便利,從而大大簡化了建立 AR app的開發(fā)難度。增強現(xiàn)實技術作為一種沉沒式的學習方式,可以將豐富的資源信息和其他數(shù)據(jù)整合到用戶能夠觀察到的現(xiàn)實場景中,為師生提供身臨其境的學習環(huán)境,激發(fā)學生的學習興趣,提升主觀積極性。實時交互的特點削弱了位置、空間的限制,教師可以在課上或遠程指導學生,彌補了現(xiàn)實環(huán)境中設備的不足,實現(xiàn)資源共享。幫助青少年換種新方式認識新世界,親身感受原本只能靠想象的事物。
參考文獻:
[1]員凱.ARKit開發(fā)實戰(zhàn)[M].電子工業(yè)出版社:北京,2018.
[2]劉明陽.Swift語言實戰(zhàn)精講(第二版)[M].人民郵電出版社:北京,2016.
[3]王涌天,陳靖,程德文.增強現(xiàn)實技術導論[M].科學出版社:北京,2015.
基金項目:課題資助:南昌航空大學第14屆三小課題。