王文心,鄧欣睿,秦永欣
(1.東南大學交通學院,南京 210000;2.東南大學計算機科學與工程學院,南京 210000;3.東南大學機械工程學院,南京 210000)
近年來,虛擬現實技術和增強現實技術發展迅速,在各個行業和領域的應用更加廣泛。計算機收集各種輔助信息,使得用戶與真實場景實現交互。隨著交通強國戰略的提出,交通基礎設施建設也顯得更為重要,而實驗室正是基礎設施建設的搖籃[1]。
虛擬實驗室能提供直觀的實驗室場館全貌和相應的實驗儀器,方便學生獲取相關實驗信息,學習實驗操作,實現與實驗場館設施的遠程互動[2]。本文結合虛擬現實和增強現實的技術特點,將其應用于東南大學交通學院試驗中心各實驗室的虛擬展示和交互之中,設計與實現了一個基于Unity 3D 的實驗室虛擬漫游軟件,打破了空間和時間的限制,實際運用在相關教學及宣傳普及領域。
虛擬現實技術(virtual reality,VR)以計算機技術為基礎,綜合了電腦仿真、傳感器、網格并行處理、人工智能等多種技術,通過給用戶同時提供多種感官信息,使用戶仿佛身臨其境。依靠計算機系統,用戶可以自定義生成一個三維空間。用戶在該環境中,借助多種輸入輸出設備,感知和探索客觀世界。借助于虛擬現實,用戶可以突破時間空間的限制,優化感官感受,提高對客觀世界的認識水平。虛擬現實的關鍵技術主要包括:人機交互技術、傳感器技術、動態環境建模技術、系統集成技術和三維圖像的實時刷新技術[3]。
隨著計算機水平的提高,增強現實技術(augment reality,AR)是發展來的一門新技術。它借助計算機技術,將構建的輔助虛擬信息如模型等疊加到真實世界,使虛擬的物體信息和真實的環境信息出現在同一個畫面或空間。用戶可以感知被呈遞的信息,獲得與真實世界漫游相似的體驗感。增強現實系統通過分析大量輸入數據,獲取場景中各種位置信息,使生成的虛擬物體以合適的姿態精確地定位到真實場景中的特定位置。增強現實的關鍵技術主要包括:跟蹤注冊技術、顯示技術、人機交互技術[4]。

圖1 增強現實技術
3DsMax 是一款強大的三維動畫渲染和制作軟件,在模型制造領域有不可替代的作用。它功能種類豐富、靈活性高,可用來制作多種建筑模型、工業產品結構圖及效果圖等。該軟件可模擬不同環境、不同風格的渲染效果,擁有強大的材質編輯功能。
Vuforia SDK 封裝了底層用來圖像識別的計算機視覺模塊,Vuforia 為開發者提供了一系列參數設置。開發者只需配置參數,然后基于底層的識別算法便可開發出自己想要的AR 程序。Vuforia 功能豐富,如圖像追蹤、物體追蹤、環境追蹤等。
整個設計軟件效果:進入軟件后,調用手機攝像頭,對準已導入數據庫的實驗室環境、實驗器材或展板時,系統能夠在現實場景之上出現疊加音視頻、文本、3D 模型或VR 體驗等增強效果。在界面指示下,用戶可以多維了解試驗中心相關知識和實驗器材的操作方法,也能跟隨導覽,走近感興趣的下一目標點,繼續游覽學習。
2.1.1 3D建模
建筑信息模型(BIM)現在是交通基礎設施建設的新工具,3DsMax 能構建出三維虛擬、內含完整信息集成的模型。借助內置基礎的模型庫進行打形,對簡單的幾何模型進行調整與組合,可以快速對三維建模搭建一些最基本的骨骼框架,真實比例還原實驗儀器。將模型轉換為可編輯多面體,然后使用點、線、面的選取修改功能來細化模型,最后修改貼圖和材質,賦予模型細膩有質感的外觀。

圖2 軟件整體設計架構

圖3 土體原位測試車建模
2.1.2 虛擬場景
為了達到全真模擬的效果,利用魚眼攝像機拍攝,軟件中進行圖像識別特征點拼接,獲取試驗中心全景圖。貼到Unity3D 中的天空盒上,將整個視角放置于天空盒中,把二維布局區域虛擬成為現實的三維效果,保證立體感、真實性。

圖4 全景圖
虛擬部分地形通過terrain 用不同筆刷加之柔化效果,繪制出山巒與河流,細節上添加樹木、房屋、車輛等模型,使地形自然逼真。
光照渲染采用實時烘培,這是一種在運行時動態計算光照的渲染方式,可以讓游戲場景看起來更加真實、細節更加豐富。但是通過調整發現本軟件所需的計算量較大,實時渲染可能會因設備問題跟不上導覽進程。因此,部分大量計算且精密程度要求不高的場景,改為了前向渲染以提高效率。
通過Unity3D 中的粒子系統,模擬實驗器材操作時的環境效果,如室內操作時的粉塵、室外作業時的雨雪天氣。如將單一粉塵形狀作為基本粒子,設置預設腳本控制發射數目、形狀、路線以及生命周期內的各種變化,最終實現仿真場景。

圖5 特效渲染
2.2.1 自主漫游場景
VR 靈境模塊之中,使用者通過第三人稱視角進入虛擬環境中體驗交通學院教學實踐體系中重要組成部分——道路勘測設計實習。

圖6 道路勘測設計實習
第三人稱視角下,可以看到虛擬人物。人物擁有完整骨骼動畫,有著豐富的動作庫,在不同狀態下有對應的動作效果。移動腳本掛載在人物身上,使用者通過搖桿操控方向行進,按鍵可跑動、跳躍。同時系統中有重力模擬器效果,從高處墜落或跳躍時,編入的g值會保證效果真實。
碰撞檢測器能保證人物和物體有著真實存在感,避免出現“穿模”現象。在模型內部堆疊透明材質立方體,為其物理狀態賦予剛體組件。剛體相遇即根據各自物理屬性如摩擦系數、反彈性能得到不同效果。如:虛擬人物可以乘坐并操控試驗車輛;在添加風組件之后,由于剛體組件及碰撞體的添加,樹木等會出現隨風搖曳的效果。
除人物控制外的其它物體移動可通過兩種方式完成:一是通過Unity3D 中的算法,可將實習場地中復雜的山川河流、道路橋梁等關系簡化為帶有一定信息的網格,在這些網格的基礎上通過一系列的計算來實現AI 自動尋路效果;二是通過Animation 動畫控制物體的大小、坐標、方向等物理性質隨時間軸不斷變化或循環,將組件賦予物體,以完成實時運動變化。
由于場景較大,加之實習場地林場森林覆蓋率高、地形起伏大、視野不開闊,需要獲取人物周邊環境信息。這就需要以小地圖形式用圖標來代替真實的模型。
創建一個頂視角攝像機,計算出Unity 中場景的長和寬,計算出模型在場景中的X與Y軸,然后計算X與Y的位置在場景大地圖上的比例,按照比例給新創建Render Texture 小地圖賦值并進行邊緣鋸齒狀問題的優化解決。當人物運動時,縮小的圖標在地圖上實時變化,即可清楚地從小地圖中獲取地理信息。
2.2.2 UUII界面布設
為了便于用戶在網絡端參觀實驗室時實現不同場景的切換,我們利用Unity3D 軟件結合C#腳本實現這一功能。當選擇不同的圖片時,調用添加在該對象上Button 組件的OnClick 事件,使用SceneManager.LoadScene 方法切換到對應場景。
在實驗室場景漫游中,我們希望用戶同時能夠聽到對應的語音講解,實現首次加載進入場景時自動播放背景音樂,并且通過單擊UI 界面控制音樂的打開和關閉。使用AudioSource 組件來控制音樂的播放,需要在Hierarchy 窗口中創建一個Audio Source 對象。然后在Inspector 窗口中設置AudioSource 組件的參數,例如是否在游戲開始時自動播放音樂(Play On Awake),是否循環播放音樂(Loop),音量大小(Volume)。
此外,視頻可以用來在虛擬實驗室中展示實驗過程或者提供教學指導,用戶可以通過觀看視頻來了解實驗的步驟和注意事項。在Unity中,可以使用VideoPlayer 組件播放視頻。將VideoPlayer 組件添加到一個游戲對象上,然后在運行時在游戲對象的紋理上播放視頻。
當觸發某個實驗室物體時,系統調用彈出對話框對物體的功能進行介紹和說明。使用觸發器(Trigger)來實現當物體進入觸發器區域時調用事件。觸發器是一個不可見的碰撞器,它可以檢測其他物體是否進入了它的區域。在場景中創建一個空物體,并為其添加一個碰撞器組件(如Box Collider 或Sphere Collider)。然后在碰撞器組件的檢查器面板中勾選“Is Trigger”選項,將碰撞器轉換為觸發器。接下來,在物體上添加一個腳本,并在腳本中編寫OnTrigger-Enter、OnTriggerStay 和 OnTriggerExit方法來處理觸發器事件。當其他物體進入觸發器區域時,將調用OnTriggerEnter 方法;當其他物體停留在觸發器區域時,將每幀調用一次OnTriggerStay方法;當其他物體離開觸發器區域時,將調用OnTriggerExit方法。

圖7 對話框效果
2.3.1 AARR識別
在Vuforia 系統中創建所需要識別庫,可以包括圖像識別、多對象識別和實物識別。將識別對象導入識別庫,在比率一欄會顯示出星級。為提高識別效率,多次嘗試優化識別對象的特征點,最終得到交通學院試驗中心的識別庫。生成unitypackage 并導入Unity3D,打開Vuforia SDK,調用AR camera即可使用。
2.3.2 AARR疊加融合
在AR camera識別出對象之后,軟件將展示增強效果。對于基本實驗器材或試驗區域,利用UI 設計部分中的Canvas 畫布半透明地展現實時場景上疊加的相關音視頻、文字簡介,并且配有相關對話框程序,使用者可根據需求選擇軟件服務。對于不方便當場使用的大型室外設備,疊加原比例三維模型并配有介紹,使用者可自行放大,翻轉觀看學習。對于不同的課程實習中需要學習掌握的實驗儀器,疊加效果將識別出對應操作階段,根據指示箭頭指向下一步儀器需要操作的部位,指導使用者學習使用儀器。同時,在識別對應部分時還可以將系統跳轉到對應VR靈境模塊進行虛擬實習。

圖8 AR識別效果
2.3.3 導覽系統
導覽系統依賴的是軟件內部識別庫和已寫入的地理信息,不存在因為室內衛星定位信號不強而導致的問題。我們試圖使用AR+GPS 組件,此功能與地圖框集成方向接口以創建實時增強現實路由,允許應用程序用戶查看方向、導航說明、距離等。我們嘗試使用此組件創建基于位置的導航AR體驗,創建自定義路線Mapbox 未映射的地方,創建自定義內容腳本來構建基于軟件自身的獨特體驗。
我們以研究虛擬現實技術和增強現實技術在室內導覽系統中的應用為載體,基于東南大學交通學院試驗中心,利用Unity3D 引擎開發了一款視景仿真的實驗室場館漫游系統。設計控制方便、通用性強、有廣闊的應用前景,其研究成果能宣傳普及交通運輸相關的一批重大科研裝備的線下使用與線上虛擬體驗,降低了實驗教學經濟和時間雙重成本,有著重要的實際意義和應用價值。
進一步展望,本軟件的整體構架和模式可以擴展到其它實驗室、博物館、體育場館等室內體系[5]。開發場館設施的場景交互漫游功能,實現用戶交互、視點控制、場景空間置換等功能,讓人們足不出戶就能感受到ARVR 所構成的靈境世界。