王文心,鄧欣睿,秦永欣
(1.東南大學(xué)交通學(xué)院,南京 210000;2.東南大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,南京 210000;3.東南大學(xué)機(jī)械工程學(xué)院,南京 210000)
近年來(lái),虛擬現(xiàn)實(shí)技術(shù)和增強(qiáng)現(xiàn)實(shí)技術(shù)發(fā)展迅速,在各個(gè)行業(yè)和領(lǐng)域的應(yīng)用更加廣泛。計(jì)算機(jī)收集各種輔助信息,使得用戶與真實(shí)場(chǎng)景實(shí)現(xiàn)交互。隨著交通強(qiáng)國(guó)戰(zhàn)略的提出,交通基礎(chǔ)設(shè)施建設(shè)也顯得更為重要,而實(shí)驗(yàn)室正是基礎(chǔ)設(shè)施建設(shè)的搖籃[1]。
虛擬實(shí)驗(yàn)室能提供直觀的實(shí)驗(yàn)室場(chǎng)館全貌和相應(yīng)的實(shí)驗(yàn)儀器,方便學(xué)生獲取相關(guān)實(shí)驗(yàn)信息,學(xué)習(xí)實(shí)驗(yàn)操作,實(shí)現(xiàn)與實(shí)驗(yàn)場(chǎng)館設(shè)施的遠(yuǎn)程互動(dòng)[2]。本文結(jié)合虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)的技術(shù)特點(diǎn),將其應(yīng)用于東南大學(xué)交通學(xué)院試驗(yàn)中心各實(shí)驗(yàn)室的虛擬展示和交互之中,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)基于Unity 3D 的實(shí)驗(yàn)室虛擬漫游軟件,打破了空間和時(shí)間的限制,實(shí)際運(yùn)用在相關(guān)教學(xué)及宣傳普及領(lǐng)域。
虛擬現(xiàn)實(shí)技術(shù)(virtual reality,VR)以計(jì)算機(jī)技術(shù)為基礎(chǔ),綜合了電腦仿真、傳感器、網(wǎng)格并行處理、人工智能等多種技術(shù),通過(guò)給用戶同時(shí)提供多種感官信息,使用戶仿佛身臨其境。依靠計(jì)算機(jī)系統(tǒng),用戶可以自定義生成一個(gè)三維空間。用戶在該環(huán)境中,借助多種輸入輸出設(shè)備,感知和探索客觀世界。借助于虛擬現(xiàn)實(shí),用戶可以突破時(shí)間空間的限制,優(yōu)化感官感受,提高對(duì)客觀世界的認(rèn)識(shí)水平。虛擬現(xiàn)實(shí)的關(guān)鍵技術(shù)主要包括:人機(jī)交互技術(shù)、傳感器技術(shù)、動(dòng)態(tài)環(huán)境建模技術(shù)、系統(tǒng)集成技術(shù)和三維圖像的實(shí)時(shí)刷新技術(shù)[3]。
隨著計(jì)算機(jī)水平的提高,增強(qiáng)現(xiàn)實(shí)技術(shù)(augment reality,AR)是發(fā)展來(lái)的一門新技術(shù)。它借助計(jì)算機(jī)技術(shù),將構(gòu)建的輔助虛擬信息如模型等疊加到真實(shí)世界,使虛擬的物體信息和真實(shí)的環(huán)境信息出現(xiàn)在同一個(gè)畫(huà)面或空間。用戶可以感知被呈遞的信息,獲得與真實(shí)世界漫游相似的體驗(yàn)感。增強(qiáng)現(xiàn)實(shí)系統(tǒng)通過(guò)分析大量輸入數(shù)據(jù),獲取場(chǎng)景中各種位置信息,使生成的虛擬物體以合適的姿態(tài)精確地定位到真實(shí)場(chǎng)景中的特定位置。增強(qiáng)現(xiàn)實(shí)的關(guān)鍵技術(shù)主要包括:跟蹤注冊(cè)技術(shù)、顯示技術(shù)、人機(jī)交互技術(shù)[4]。
圖1 增強(qiáng)現(xiàn)實(shí)技術(shù)
3DsMax 是一款強(qiáng)大的三維動(dòng)畫(huà)渲染和制作軟件,在模型制造領(lǐng)域有不可替代的作用。它功能種類豐富、靈活性高,可用來(lái)制作多種建筑模型、工業(yè)產(chǎn)品結(jié)構(gòu)圖及效果圖等。該軟件可模擬不同環(huán)境、不同風(fēng)格的渲染效果,擁有強(qiáng)大的材質(zhì)編輯功能。
Vuforia SDK 封裝了底層用來(lái)圖像識(shí)別的計(jì)算機(jī)視覺(jué)模塊,Vuforia 為開(kāi)發(fā)者提供了一系列參數(shù)設(shè)置。開(kāi)發(fā)者只需配置參數(shù),然后基于底層的識(shí)別算法便可開(kāi)發(fā)出自己想要的AR 程序。Vuforia 功能豐富,如圖像追蹤、物體追蹤、環(huán)境追蹤等。
整個(gè)設(shè)計(jì)軟件效果:進(jìn)入軟件后,調(diào)用手機(jī)攝像頭,對(duì)準(zhǔn)已導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)驗(yàn)室環(huán)境、實(shí)驗(yàn)器材或展板時(shí),系統(tǒng)能夠在現(xiàn)實(shí)場(chǎng)景之上出現(xiàn)疊加音視頻、文本、3D 模型或VR 體驗(yàn)等增強(qiáng)效果。在界面指示下,用戶可以多維了解試驗(yàn)中心相關(guān)知識(shí)和實(shí)驗(yàn)器材的操作方法,也能跟隨導(dǎo)覽,走近感興趣的下一目標(biāo)點(diǎn),繼續(xù)游覽學(xué)習(xí)。
2.1.1 3D建模
建筑信息模型(BIM)現(xiàn)在是交通基礎(chǔ)設(shè)施建設(shè)的新工具,3DsMax 能構(gòu)建出三維虛擬、內(nèi)含完整信息集成的模型。借助內(nèi)置基礎(chǔ)的模型庫(kù)進(jìn)行打形,對(duì)簡(jiǎn)單的幾何模型進(jìn)行調(diào)整與組合,可以快速對(duì)三維建模搭建一些最基本的骨骼框架,真實(shí)比例還原實(shí)驗(yàn)儀器。將模型轉(zhuǎn)換為可編輯多面體,然后使用點(diǎn)、線、面的選取修改功能來(lái)細(xì)化模型,最后修改貼圖和材質(zhì),賦予模型細(xì)膩有質(zhì)感的外觀。
圖2 軟件整體設(shè)計(jì)架構(gòu)
圖3 土體原位測(cè)試車建模
2.1.2 虛擬場(chǎng)景
為了達(dá)到全真模擬的效果,利用魚(yú)眼攝像機(jī)拍攝,軟件中進(jìn)行圖像識(shí)別特征點(diǎn)拼接,獲取試驗(yàn)中心全景圖。貼到Unity3D 中的天空盒上,將整個(gè)視角放置于天空盒中,把二維布局區(qū)域虛擬成為現(xiàn)實(shí)的三維效果,保證立體感、真實(shí)性。
圖4 全景圖
虛擬部分地形通過(guò)terrain 用不同筆刷加之柔化效果,繪制出山巒與河流,細(xì)節(jié)上添加樹(shù)木、房屋、車輛等模型,使地形自然逼真。
光照渲染采用實(shí)時(shí)烘培,這是一種在運(yùn)行時(shí)動(dòng)態(tài)計(jì)算光照的渲染方式,可以讓游戲場(chǎng)景看起來(lái)更加真實(shí)、細(xì)節(jié)更加豐富。但是通過(guò)調(diào)整發(fā)現(xiàn)本軟件所需的計(jì)算量較大,實(shí)時(shí)渲染可能會(huì)因設(shè)備問(wèn)題跟不上導(dǎo)覽進(jìn)程。因此,部分大量計(jì)算且精密程度要求不高的場(chǎng)景,改為了前向渲染以提高效率。
通過(guò)Unity3D 中的粒子系統(tǒng),模擬實(shí)驗(yàn)器材操作時(shí)的環(huán)境效果,如室內(nèi)操作時(shí)的粉塵、室外作業(yè)時(shí)的雨雪天氣。如將單一粉塵形狀作為基本粒子,設(shè)置預(yù)設(shè)腳本控制發(fā)射數(shù)目、形狀、路線以及生命周期內(nèi)的各種變化,最終實(shí)現(xiàn)仿真場(chǎng)景。
圖5 特效渲染
2.2.1 自主漫游場(chǎng)景
VR 靈境模塊之中,使用者通過(guò)第三人稱視角進(jìn)入虛擬環(huán)境中體驗(yàn)交通學(xué)院教學(xué)實(shí)踐體系中重要組成部分——道路勘測(cè)設(shè)計(jì)實(shí)習(xí)。
圖6 道路勘測(cè)設(shè)計(jì)實(shí)習(xí)
第三人稱視角下,可以看到虛擬人物。人物擁有完整骨骼動(dòng)畫(huà),有著豐富的動(dòng)作庫(kù),在不同狀態(tài)下有對(duì)應(yīng)的動(dòng)作效果。移動(dòng)腳本掛載在人物身上,使用者通過(guò)搖桿操控方向行進(jìn),按鍵可跑動(dòng)、跳躍。同時(shí)系統(tǒng)中有重力模擬器效果,從高處墜落或跳躍時(shí),編入的g值會(huì)保證效果真實(shí)。
碰撞檢測(cè)器能保證人物和物體有著真實(shí)存在感,避免出現(xiàn)“穿?!爆F(xiàn)象。在模型內(nèi)部堆疊透明材質(zhì)立方體,為其物理狀態(tài)賦予剛體組件。剛體相遇即根據(jù)各自物理屬性如摩擦系數(shù)、反彈性能得到不同效果。如:虛擬人物可以乘坐并操控試驗(yàn)車輛;在添加風(fēng)組件之后,由于剛體組件及碰撞體的添加,樹(shù)木等會(huì)出現(xiàn)隨風(fēng)搖曳的效果。
除人物控制外的其它物體移動(dòng)可通過(guò)兩種方式完成:一是通過(guò)Unity3D 中的算法,可將實(shí)習(xí)場(chǎng)地中復(fù)雜的山川河流、道路橋梁等關(guān)系簡(jiǎn)化為帶有一定信息的網(wǎng)格,在這些網(wǎng)格的基礎(chǔ)上通過(guò)一系列的計(jì)算來(lái)實(shí)現(xiàn)AI 自動(dòng)尋路效果;二是通過(guò)Animation 動(dòng)畫(huà)控制物體的大小、坐標(biāo)、方向等物理性質(zhì)隨時(shí)間軸不斷變化或循環(huán),將組件賦予物體,以完成實(shí)時(shí)運(yùn)動(dòng)變化。
由于場(chǎng)景較大,加之實(shí)習(xí)場(chǎng)地林場(chǎng)森林覆蓋率高、地形起伏大、視野不開(kāi)闊,需要獲取人物周邊環(huán)境信息。這就需要以小地圖形式用圖標(biāo)來(lái)代替真實(shí)的模型。
創(chuàng)建一個(gè)頂視角攝像機(jī),計(jì)算出Unity 中場(chǎng)景的長(zhǎng)和寬,計(jì)算出模型在場(chǎng)景中的X與Y軸,然后計(jì)算X與Y的位置在場(chǎng)景大地圖上的比例,按照比例給新創(chuàng)建Render Texture 小地圖賦值并進(jìn)行邊緣鋸齒狀問(wèn)題的優(yōu)化解決。當(dāng)人物運(yùn)動(dòng)時(shí),縮小的圖標(biāo)在地圖上實(shí)時(shí)變化,即可清楚地從小地圖中獲取地理信息。
2.2.2 UUII界面布設(shè)
為了便于用戶在網(wǎng)絡(luò)端參觀實(shí)驗(yàn)室時(shí)實(shí)現(xiàn)不同場(chǎng)景的切換,我們利用Unity3D 軟件結(jié)合C#腳本實(shí)現(xiàn)這一功能。當(dāng)選擇不同的圖片時(shí),調(diào)用添加在該對(duì)象上Button 組件的OnClick 事件,使用SceneManager.LoadScene 方法切換到對(duì)應(yīng)場(chǎng)景。
在實(shí)驗(yàn)室場(chǎng)景漫游中,我們希望用戶同時(shí)能夠聽(tīng)到對(duì)應(yīng)的語(yǔ)音講解,實(shí)現(xiàn)首次加載進(jìn)入場(chǎng)景時(shí)自動(dòng)播放背景音樂(lè),并且通過(guò)單擊UI 界面控制音樂(lè)的打開(kāi)和關(guān)閉。使用AudioSource 組件來(lái)控制音樂(lè)的播放,需要在Hierarchy 窗口中創(chuàng)建一個(gè)Audio Source 對(duì)象。然后在Inspector 窗口中設(shè)置AudioSource 組件的參數(shù),例如是否在游戲開(kāi)始時(shí)自動(dòng)播放音樂(lè)(Play On Awake),是否循環(huán)播放音樂(lè)(Loop),音量大?。╒olume)。
此外,視頻可以用來(lái)在虛擬實(shí)驗(yàn)室中展示實(shí)驗(yàn)過(guò)程或者提供教學(xué)指導(dǎo),用戶可以通過(guò)觀看視頻來(lái)了解實(shí)驗(yàn)的步驟和注意事項(xiàng)。在Unity中,可以使用VideoPlayer 組件播放視頻。將VideoPlayer 組件添加到一個(gè)游戲?qū)ο笊?,然后在運(yùn)行時(shí)在游戲?qū)ο蟮募y理上播放視頻。
當(dāng)觸發(fā)某個(gè)實(shí)驗(yàn)室物體時(shí),系統(tǒng)調(diào)用彈出對(duì)話框?qū)ξ矬w的功能進(jìn)行介紹和說(shuō)明。使用觸發(fā)器(Trigger)來(lái)實(shí)現(xiàn)當(dāng)物體進(jìn)入觸發(fā)器區(qū)域時(shí)調(diào)用事件。觸發(fā)器是一個(gè)不可見(jiàn)的碰撞器,它可以檢測(cè)其他物體是否進(jìn)入了它的區(qū)域。在場(chǎng)景中創(chuàng)建一個(gè)空物體,并為其添加一個(gè)碰撞器組件(如Box Collider 或Sphere Collider)。然后在碰撞器組件的檢查器面板中勾選“Is Trigger”選項(xiàng),將碰撞器轉(zhuǎn)換為觸發(fā)器。接下來(lái),在物體上添加一個(gè)腳本,并在腳本中編寫(xiě)OnTrigger-Enter、OnTriggerStay 和 OnTriggerExit方法來(lái)處理觸發(fā)器事件。當(dāng)其他物體進(jìn)入觸發(fā)器區(qū)域時(shí),將調(diào)用OnTriggerEnter 方法;當(dāng)其他物體停留在觸發(fā)器區(qū)域時(shí),將每幀調(diào)用一次OnTriggerStay方法;當(dāng)其他物體離開(kāi)觸發(fā)器區(qū)域時(shí),將調(diào)用OnTriggerExit方法。
圖7 對(duì)話框效果
2.3.1 AARR識(shí)別
在Vuforia 系統(tǒng)中創(chuàng)建所需要識(shí)別庫(kù),可以包括圖像識(shí)別、多對(duì)象識(shí)別和實(shí)物識(shí)別。將識(shí)別對(duì)象導(dǎo)入識(shí)別庫(kù),在比率一欄會(huì)顯示出星級(jí)。為提高識(shí)別效率,多次嘗試優(yōu)化識(shí)別對(duì)象的特征點(diǎn),最終得到交通學(xué)院試驗(yàn)中心的識(shí)別庫(kù)。生成unitypackage 并導(dǎo)入U(xiǎn)nity3D,打開(kāi)Vuforia SDK,調(diào)用AR camera即可使用。
2.3.2 AARR疊加融合
在AR camera識(shí)別出對(duì)象之后,軟件將展示增強(qiáng)效果。對(duì)于基本實(shí)驗(yàn)器材或試驗(yàn)區(qū)域,利用UI 設(shè)計(jì)部分中的Canvas 畫(huà)布半透明地展現(xiàn)實(shí)時(shí)場(chǎng)景上疊加的相關(guān)音視頻、文字簡(jiǎn)介,并且配有相關(guān)對(duì)話框程序,使用者可根據(jù)需求選擇軟件服務(wù)。對(duì)于不方便當(dāng)場(chǎng)使用的大型室外設(shè)備,疊加原比例三維模型并配有介紹,使用者可自行放大,翻轉(zhuǎn)觀看學(xué)習(xí)。對(duì)于不同的課程實(shí)習(xí)中需要學(xué)習(xí)掌握的實(shí)驗(yàn)儀器,疊加效果將識(shí)別出對(duì)應(yīng)操作階段,根據(jù)指示箭頭指向下一步儀器需要操作的部位,指導(dǎo)使用者學(xué)習(xí)使用儀器。同時(shí),在識(shí)別對(duì)應(yīng)部分時(shí)還可以將系統(tǒng)跳轉(zhuǎn)到對(duì)應(yīng)VR靈境模塊進(jìn)行虛擬實(shí)習(xí)。
圖8 AR識(shí)別效果
2.3.3 導(dǎo)覽系統(tǒng)
導(dǎo)覽系統(tǒng)依賴的是軟件內(nèi)部識(shí)別庫(kù)和已寫(xiě)入的地理信息,不存在因?yàn)槭覂?nèi)衛(wèi)星定位信號(hào)不強(qiáng)而導(dǎo)致的問(wèn)題。我們?cè)噲D使用AR+GPS 組件,此功能與地圖框集成方向接口以創(chuàng)建實(shí)時(shí)增強(qiáng)現(xiàn)實(shí)路由,允許應(yīng)用程序用戶查看方向、導(dǎo)航說(shuō)明、距離等。我們嘗試使用此組件創(chuàng)建基于位置的導(dǎo)航AR體驗(yàn),創(chuàng)建自定義路線Mapbox 未映射的地方,創(chuàng)建自定義內(nèi)容腳本來(lái)構(gòu)建基于軟件自身的獨(dú)特體驗(yàn)。
我們以研究虛擬現(xiàn)實(shí)技術(shù)和增強(qiáng)現(xiàn)實(shí)技術(shù)在室內(nèi)導(dǎo)覽系統(tǒng)中的應(yīng)用為載體,基于東南大學(xué)交通學(xué)院試驗(yàn)中心,利用Unity3D 引擎開(kāi)發(fā)了一款視景仿真的實(shí)驗(yàn)室場(chǎng)館漫游系統(tǒng)。設(shè)計(jì)控制方便、通用性強(qiáng)、有廣闊的應(yīng)用前景,其研究成果能宣傳普及交通運(yùn)輸相關(guān)的一批重大科研裝備的線下使用與線上虛擬體驗(yàn),降低了實(shí)驗(yàn)教學(xué)經(jīng)濟(jì)和時(shí)間雙重成本,有著重要的實(shí)際意義和應(yīng)用價(jià)值。
進(jìn)一步展望,本軟件的整體構(gòu)架和模式可以擴(kuò)展到其它實(shí)驗(yàn)室、博物館、體育場(chǎng)館等室內(nèi)體系[5]。開(kāi)發(fā)場(chǎng)館設(shè)施的場(chǎng)景交互漫游功能,實(shí)現(xiàn)用戶交互、視點(diǎn)控制、場(chǎng)景空間置換等功能,讓人們足不出戶就能感受到ARVR 所構(gòu)成的靈境世界。