陳瑩瑩,張悅欣,張梓妍,郭梓錕,伍源昊,胡垂立
(廣州工商學院,廣東 廣州 528000)
廣州工商學院建模與虛擬現實交互主要有以下幾個功能:廣州工商學院中室內外建筑、實驗設備、石碑等模型和三維墻體、河流、地形的構建。用戶可以通過HTC Vive 設備對虛擬場景進行控制、探索,同時可實現碰撞檢測、射線檢測,達到虛擬場景中漫游的效果。用戶通過使用HTC Vive 設備,可以看到廣州工商學院各個代表性地方的景色與特色,并且實現一定的人機交互。本系統的整體內容框架包括以下幾個方面[1]:
(1)充分做好前期調研,收集整理資料。繪制學校模型總體布局、局部建筑的平面展開圖紙以及路線的圖紙和采集拍攝,用PS 繪制紋理與所需素材。
(2)借助3dMAX 搭建廣州工商學院虛擬建筑與場景,后期再進行精細化處理,能夠在虛擬的地理環境中按照特定的運動學和動力學實現應用,強化虛擬場景真實感。
(3)再將搭建好的校園場景以fbx 格式文件導出,導入Unity,結合Unity3D 引擎,創建地形、燈光、天空等,利用C#開發語言實現交互,在廣州工商學院虛擬交互系統中設置自由交互式漫游、自動尋徑漫游、導航查詢等功能。
(4)與HTC Vive 結合,做到用戶能實現觀覽、點擊、移動、拾取等沉浸式交互操作。
在3dMax 工具上搭建校園主體模型。兩棟教學樓與實驗樓,充分展現特色教室、嶄新多媒體課室和智慧教學課室;特色實訓實驗室,數字媒體教育設備、食品質量與安全化學工具一應俱全;圖書館主要有借閱室、圖書儲放室、書本資源儲量展示數據等;體育場的搭建主要為跑道和籃球場、足球場的布局建模。各模型的UV 拆分、貼圖紋理用PS 軟件和數位板作為輔助。使用V-Ray 插件制造墻面、跑道等的凹凸感、質感、光線的設置、擺放與調整參數來增強實感等,最后應把場景坐標整合歸位[2]。
建好的模型需導入Unity3D 實現交互[3],因此模型的渲染與交互需要注意以下幾點:
(1)邊數和法線細節問題。由于邊數太多的模型計算起來復雜度高,渲染慢,因此把超過四邊形以上的面數通過連接點與點來減少邊數,最后3D 里的模型渲染時都是要利用圖形計算技術計算后確定光線和貼圖,邊數為3 或4 的面利于建模軟件對模型進行自動優化,這樣導入Unity3D 時可避免一些卡頓的情況。
(2)若模型中有需要重復制作的部分,盡量用復制和旋轉代替鏡像。因為鏡像會反法線,若忽略法線問題,貼圖時則會出現錯誤,甚至出現黑面等情況。由于大部分是建筑,建筑的搭建也應注重現實比例等。
(3)做透明貼圖時要單獨給一個材質球,不把非透明部分與透明部分一起放在同個材質球上,才能盡量避免一個材質球貼進去后整體貼圖都變成透明的錯誤發生。
(4)最后用簡易的游戲引擎——Marmoset Toolbag3檢查游戲模型和貼圖顯示效果,不用打開Unity3D,效率會更高。
Unity 里天空盒的創建應先創建材質,準備6 張資源圖,然后先在Window 窗口找到 Lighting,選好就可以調用,6 個面分別對應6 個方向,若將6 張天空盒或者紋理圖片導入Unity 時,將它們的Wrap Mode 設置為Clamp 模式,這樣圖像的邊緣才會無縫縫合[4]。
學校內的厚德廣場和桃李園地形選擇在Unity3D里建造,因為Unity3D 可較方便地繪制地形的高度、特定高度和平滑地形,并且在Brushes 畫筆工具欄中,畫筆的形狀及大小可以自由選擇,可以畫坑洼與突起的高地,給地形加貼圖也較為方便,添加樹、草地、土壤等的素材時,則選擇Trees 按鈕把素材貼圖拖進第一欄里即可為場景方便快捷地增添許多小素材。
以廣州工商學院三維虛擬交互系統設計與開發為主線,根據虛擬系統實時性與交互性的特點要求,從系統建設的功能需求、體系模塊設計、系統框架設計等幾個方面展開研究。
(1)界面布局設計上應盡量簡潔,一目了然,方便用戶初次使用就能從界面上清楚理解各項功能以及操作方法。系統具備交互漫游的功能,用戶可以從各個方向和角度觀察虛擬的場景,或者按照預先規劃好的路徑進行漫游,并通過觸發手柄改變視點,實現以本人視角漫游校園。在實現基本漫游功能的基礎上,用戶還可以通過交互設備實現情景交互體驗。交互操作包括實體的幾何變換、模型拾取、射線和碰撞檢測等。
(2)學校智慧教學中心的智慧課室模塊,通過手柄射線實現碰撞檢測,可以使HTC Vive 手柄與場景中三維模型或者 UI 發生碰撞檢測,交互展現學校智慧課室特色信息與資源、學生信息動態、多媒體視頻教學播放等功能。
(3)圖書館模塊,通過 UI 交互和數據庫技術結合,開發出圖書信息檢索模擬平臺,實現了學校圖書館總儲量、排行榜的信息和虛擬閱讀、圖書信息檢索的模擬。
(4)實驗實訓室模塊,通過數字媒體技術等專業的實訓室,介紹攝影攝像的多種設備和虛擬現實技術的設備工具以及使用說明,用手柄實現對設備的拾取與組裝等交互效果等。
(5)在Unity3D 里,用編譯軟件添加事件的發生,主要運用C#語言來實現,后期熟練代碼語言可以運用JavaScript 來實現更多較高級的交互操作。后期再以HTC Vive 為沉浸式交互體驗平臺,實現虛擬校園系統中相機視角的實時自主轉換功能。
HTC Vive 里的射線檢測技術很重要,因為在三維世界里,射線是基于空間中一個點沿著某一方向發射的一條直線,當其遇到目標對象時則停止發射,射線一般用于檢測碰撞。因此,可以實現HTC Vive 手柄與場景中三維模型或者 UI 發生碰撞檢測,其實現流程為手柄發出檢測射線,系統判斷射線是否與目標發生碰撞,若不是,則循環重新檢測,若是發生事件的響應,則結束。
使用Unity+HTC Vive 做VR 時如何創建用戶體驗感較強的菜單,接收手柄射線的菜單以及拿起虛擬實驗設備進行觀察或操控手柄點擊實現虛擬演示等操作。其中應該注意代碼腳本的設置,避免出現用戶體驗不好的效果,像按鈕的抖動導致點擊不準確、組件的渲染順序不當導致場景物品被遮擋等問題。
三維虛擬校園交互是一個重點,它在數字信息化、校園教育、分布規劃、宣傳展示方面起到重要作用。現今以一個真實校園的漫游沉浸式平臺來身臨其境地全方位了解校園是人們的迫切需求,在這樣的現實背景下,三維虛擬校園仿真交互系統應運而生。建立虛擬校園漫游仿真交互系統是全面構建智慧校園的基礎,對智慧校園的建設具有重要的意義。