林晨陽(yáng),王贈(zèng)凱,王世龍,朱宇豪
(嘉興學(xué)院數(shù)理與信息工程學(xué)院,嘉興314001)
隨著智慧城市建設(shè)的不斷推進(jìn),許多學(xué)校在大力建設(shè)智慧校園。虛擬校園作為智慧校園的重要組成部分,能滿足師生對(duì)校內(nèi)教學(xué)設(shè)施瀏覽、校園文化展示、對(duì)外形象宣傳等的需求。虛擬現(xiàn)實(shí)技術(shù)作為一種新的交互手段,能夠?qū)ΜF(xiàn)實(shí)世界進(jìn)行虛擬仿真,生成逼真的視、聽(tīng)、觸覺(jué)等一體化的虛擬環(huán)境,具有沉浸式、交互性、想象性的特點(diǎn)。操作者進(jìn)入虛擬畫面,就會(huì)產(chǎn)生身臨其境的真實(shí)感受和體驗(yàn)。利用VR(Virtual Reality)技術(shù)建立虛擬校園導(dǎo)覽系統(tǒng),能夠使用戶足不出戶便可親臨校園內(nèi)的每一個(gè)角落,為廣大師生提供極大便利。
目前有很多場(chǎng)館都在開(kāi)發(fā)類似的虛擬導(dǎo)覽系統(tǒng)。文獻(xiàn)[1]探討了如何將虛擬現(xiàn)實(shí)全景技術(shù)應(yīng)用于校園全景漫游系統(tǒng)、校園全景導(dǎo)航、學(xué)院簡(jiǎn)介瀏覽和科研成果展示等方面的策略及其所能取得的效益。文獻(xiàn)[2]探討了探討虛擬現(xiàn)實(shí)技術(shù)在天文科普教育領(lǐng)域的應(yīng)用。文獻(xiàn)[3]利用騰訊地圖內(nèi)置的街景調(diào)用接口和微信所提供的位置等信息開(kāi)發(fā)了一個(gè)微信端的校園導(dǎo)覽系統(tǒng),可以同時(shí)適用于Android 和iOS 平臺(tái)。但該系統(tǒng)受限于騰訊地圖所提供的景物細(xì)節(jié),雖能滿足日常校園內(nèi)的路線規(guī)劃,但無(wú)法提供建筑物的內(nèi)部細(xì)節(jié)。文獻(xiàn)[4]將校園分成多個(gè)場(chǎng)景,利用CAD 和3DMax 對(duì)每個(gè)場(chǎng)景內(nèi)的地表模型和建筑物模型進(jìn)行建模,構(gòu)建虛擬校園三維場(chǎng)景,在Unity3D 開(kāi)發(fā)環(huán)境下通過(guò)C#編程語(yǔ)言,實(shí)現(xiàn)用戶與場(chǎng)景間的交互。文獻(xiàn)[5]利用谷歌地圖采集校園地理數(shù)據(jù),使用Maya 和Photoshop 進(jìn)行三維建模和紋理繪制,利用Unity3D 引擎進(jìn)行用戶交互設(shè)計(jì),建立3D校園導(dǎo)覽系統(tǒng)。
本文利用VR 技術(shù)實(shí)現(xiàn)一個(gè)虛擬的嘉興學(xué)院校園3D 導(dǎo)覽系統(tǒng),為廣大師生提供導(dǎo)覽服務(wù)。該系統(tǒng)利用Maya 和Unity3D 軟件通過(guò)模塊化設(shè)計(jì),分離模型和VR場(chǎng)景,建立一個(gè)虛擬的嘉興學(xué)院和人物模型,通過(guò)操作人物在虛擬地圖中走動(dòng)來(lái)游覽嘉興學(xué)院,為廣大師生提供一種身臨其境地了解嘉興學(xué)院整體和局部場(chǎng)景布局的便利方式。
本文設(shè)計(jì)的嘉院導(dǎo)覽系統(tǒng)解決了傳統(tǒng)導(dǎo)覽系統(tǒng)靈活性差的缺點(diǎn),使用戶從基于平面的瀏覽體驗(yàn)變?yōu)?D沉浸式體驗(yàn)。傳統(tǒng)導(dǎo)覽系統(tǒng)的地圖以平面為主,表達(dá)效果有限,雖然有一些地圖是3D 的,但是效果并不理想。本文利用虛擬現(xiàn)實(shí)技術(shù),通過(guò)Maya 和Unity3D 的模型構(gòu)建和拼裝[6],實(shí)現(xiàn)用戶在虛擬場(chǎng)景中的四處游覽,同時(shí)兼顧瀏覽和沉浸體驗(yàn)。
如圖1 所示,嘉院導(dǎo)覽系統(tǒng)的設(shè)計(jì)分為三個(gè)階段,分別是信息采集階段、分塊建模階段和模型組合優(yōu)化階段。信息采集階段包括校園平面數(shù)據(jù)采集和照片拍攝處理等。需要采集校園內(nèi)部各種建筑和物體相關(guān)地理數(shù)據(jù),如了解建筑的位置、植被密度、道路方位等信息。分塊建模階段包括校園場(chǎng)景劃分和分塊模型創(chuàng)建。將場(chǎng)景分塊,獨(dú)立建模,做到一次建立,多處使用。模型組合優(yōu)化階段包括場(chǎng)景整合和交互設(shè)計(jì)。利用Unity3D 引擎進(jìn)行模型整合,通過(guò)C#編程整合場(chǎng)景和人物等信息,經(jīng)過(guò)多次測(cè)試優(yōu)化完成系統(tǒng)開(kāi)發(fā)。
嘉院導(dǎo)覽系統(tǒng)根據(jù)嘉興學(xué)院的校園建設(shè)進(jìn)行設(shè)計(jì),通過(guò)對(duì)校園建筑進(jìn)行建模和場(chǎng)景渲染,讓虛擬場(chǎng)景更加真實(shí)。嘉院導(dǎo)覽系統(tǒng)利用Unity3D 引擎編寫程序來(lái)實(shí)現(xiàn)交互,通過(guò)建立模型來(lái)實(shí)現(xiàn)場(chǎng)景仿真,通過(guò)實(shí)地調(diào)查解決場(chǎng)景位置問(wèn)題,具有虛擬人物,交互元素,場(chǎng)景游覽等模塊。系統(tǒng)的開(kāi)發(fā)過(guò)程涉及一些關(guān)鍵問(wèn)題需要提前做出考慮。
(1)校園內(nèi)的各種實(shí)物元素較多,場(chǎng)景數(shù)據(jù)采集和建模復(fù)雜度較高,同時(shí)復(fù)雜的模型也會(huì)導(dǎo)致Unity3D軟件的調(diào)試過(guò)程更加復(fù)雜,需要統(tǒng)籌效率和質(zhì)量進(jìn)行制作。
(2)交互程序需要結(jié)合場(chǎng)景來(lái)編寫和配置,場(chǎng)景中人物位置變化需要進(jìn)行精確的矩陣運(yùn)算,工作量較大。利用C#編程語(yǔ)言進(jìn)行程序編寫和配置提高效率。
(3)虛擬場(chǎng)景的變換對(duì)系統(tǒng)軟硬件要求較高,為了讓用戶能夠有更好體驗(yàn),需要在保持清晰的畫面及較高的流暢度的同時(shí),盡可能降低系統(tǒng)對(duì)軟硬件性能的要求。
嘉院導(dǎo)覽系統(tǒng)通過(guò)Unity3D 軟件進(jìn)行模型構(gòu)建和拼裝。對(duì)學(xué)校進(jìn)行考察,繪制嘉興學(xué)院大致地圖并對(duì)部分細(xì)節(jié)進(jìn)行實(shí)地拍攝。建立校園內(nèi)各種物體如建筑物、樹(shù)木、河流等的模型,利用繪制好的地圖將道路鋪在指定位置。進(jìn)行建筑物鋪設(shè),把一個(gè)個(gè)建立好的模型固定在指定位置,并為樹(shù)、草環(huán)境細(xì)節(jié)建模。創(chuàng)建人物模型,利用C#語(yǔ)言編程控制人物模型,使其能夠在嘉興學(xué)院的虛擬地圖上行走。用戶通過(guò)操縱人物模型實(shí)現(xiàn)在虛擬環(huán)境中的四處游覽,并能了解感興趣物體所在位置。虛擬道路上設(shè)立有指路標(biāo)志和建筑信息牌,能使用戶簡(jiǎn)單直接地獲取每座建筑的基本信息。通過(guò)Unity3D 生成虛擬校園導(dǎo)覽系統(tǒng)軟件,用戶可以通過(guò)終端直接打開(kāi)進(jìn)行瀏覽,也可通過(guò)VR 設(shè)備以虛擬人物的視角在虛擬校園中瀏覽。
第一階段,利用百度地圖了解嘉興學(xué)院所在地各個(gè)建筑物的間隔、排列、建筑物比例以及每個(gè)樓的占地面積,畫出一號(hào)樓到十四號(hào)樓的基本位置圖。在Unity3D 中按比例建好地面,創(chuàng)建場(chǎng)景并標(biāo)注位置;然后對(duì)嘉興學(xué)院進(jìn)行實(shí)地考察拍攝建筑物圖片,并歸納特殊建筑。對(duì)同一建筑需要進(jìn)行多角度拍攝,為模型構(gòu)建提供更詳細(xì)的信息。
第二階段進(jìn)行場(chǎng)景劃分和模型創(chuàng)建。校園有十四棟樓、三座橋、一個(gè)操場(chǎng)、兩個(gè)食堂、兩個(gè)籃球場(chǎng)和一個(gè)運(yùn)動(dòng)樓。主要包括以下場(chǎng)景模型的創(chuàng)建。
(1)地圖設(shè)置。在Unity3D 中設(shè)置地圖,長(zhǎng)寬比為4:3,厚度為1,分辨率適中,地圖覆蓋全部,越高性能要求越高,顏色為水泥色。
(2)道路設(shè)置。在Maya 中建立帶實(shí)線虛線的柏油馬路,擁有直路、轉(zhuǎn)彎、十字路口,兼顧路邊小路和綠化,通過(guò)復(fù)制模型建立校園道路。
板式換熱器由一系列具有一定波紋形狀的金屬片疊裝而成,液體(或氣體)與液體通過(guò)板片進(jìn)行熱交換,實(shí)現(xiàn)能量由余熱傳遞到熱媒水,供生活熱水或空調(diào)使用。
(3)橋梁設(shè)置。在Maya 設(shè)計(jì)橋梁部分,對(duì)上坡、下坡和平路部分進(jìn)行分塊設(shè)計(jì)后導(dǎo)出為fpx 文件,再導(dǎo)入到Unity3D 中進(jìn)行拼接和大小調(diào)整。
(4)樓房設(shè)立。需要通過(guò)Maya 建立模型,導(dǎo)出到Unity3D 環(huán)境中擺放并貼圖。校園樓宇設(shè)施較多,為了簡(jiǎn)化樓的建模復(fù)雜程度,提高系統(tǒng)的效率,重新設(shè)計(jì)部分樓的表現(xiàn)形式。由于多數(shù)教學(xué)樓有相同的結(jié)構(gòu)和外表,利用3D 立體數(shù)字模型代替部分建筑,不僅表現(xiàn)新穎也能提高系統(tǒng)運(yùn)行效率。
(5)植被和綠化,事先建立好樹(shù)葉樹(shù)枝的模型,通過(guò)Unity3D 的自帶技術(shù),一步步建立樹(shù)的結(jié)構(gòu),貼上材質(zhì)完成樹(shù)的建立。然后建立模擬校園路面上凹凸的綠化地點(diǎn),運(yùn)用沙土材質(zhì),覆蓋已經(jīng)建立好的小草和樹(shù)木模型完成綠化,展現(xiàn)出更真實(shí)的場(chǎng)景。
第三階段進(jìn)行模型整合、優(yōu)化和交互設(shè)計(jì),包括以下主要工作。
(1)人物制作方面。制作人物骨架和貼圖,對(duì)骨架進(jìn)行貼圖并矯正。利用Maya 的動(dòng)畫功能切幀制作動(dòng)畫,包括跑步,跳躍等動(dòng)作。
(2)交互設(shè)計(jì)方面。在Unity3D 環(huán)境下利用C#編程語(yǔ)言對(duì)編寫腳本支持程序,綁定人物動(dòng)作、鍵盤和攝像機(jī),實(shí)現(xiàn)用鍵盤操作人物動(dòng)作以及互動(dòng)場(chǎng)景切換等功能。具體設(shè)置如下:
①角色部分控制器參數(shù)設(shè)置:
②顯示面板提示設(shè)置:
③角色復(fù)位函數(shù):
④角色跳躍實(shí)現(xiàn):
⑤攝像頭設(shè)置:
⑥角色按鍵移動(dòng):
(3)在流暢性體驗(yàn)和軟件運(yùn)行性能之間做出平衡,制作后期對(duì)代碼進(jìn)行重構(gòu),簡(jiǎn)化人物和減小樓房的分辨率,適當(dāng)降低畫面質(zhì)量。
(4)對(duì)于光影,我們對(duì)太陽(yáng)光進(jìn)行了一些調(diào)試,使之更加柔和,提高亮度。
本文所設(shè)計(jì)的嘉院導(dǎo)覽系統(tǒng)操作方便,容易上手。系統(tǒng)設(shè)置有操作提示,在用戶打開(kāi)軟件時(shí),操作方法以及各個(gè)按鍵的功能會(huì)在屏幕的右上方顯示。系統(tǒng)設(shè)計(jì)采用了較為簡(jiǎn)單的模型部件,因此系統(tǒng)響應(yīng)速度較快。用戶操縱人物模型可以在虛擬場(chǎng)景內(nèi)四處暢游,轉(zhuǎn)換各種視角,使人物進(jìn)行跳躍或休息,也能夠讓人物部分穿模,減少用戶在地圖上隨意行走時(shí)的不便。但該系統(tǒng)仍然存在一些的細(xì)節(jié)需要優(yōu)化以及功能不夠豐富的問(wèn)題。隨著5G 技術(shù)的商用,基于虛擬現(xiàn)實(shí)技術(shù)的導(dǎo)覽系統(tǒng)性能和用戶體驗(yàn)將會(huì)進(jìn)一步提升。