魏凡其
(江西制造職業(yè)技術(shù)學(xué)院 江西 南昌 330095)
校園漫游系統(tǒng)是一種為用戶帶來(lái)沉浸式體驗(yàn)的虛擬交互系統(tǒng),此系統(tǒng)用于滿足校園內(nèi)部展示、校園導(dǎo)航以及校內(nèi)虛擬體驗(yàn)等需要。在VR技術(shù)的快速發(fā)展下,校園漫游系統(tǒng)和VR的結(jié)合得以帶來(lái)超越普通漫游系統(tǒng)的高沉浸感以及高交互性的體驗(yàn)。作為目前學(xué)校信息化建設(shè)最新趨勢(shì),VR校園漫游系統(tǒng)結(jié)合了三維數(shù)字校園以及全景校園的特點(diǎn),將校園環(huán)境和建筑進(jìn)行模型重建和還原,同時(shí)還帶來(lái)了更好的交互性以及沉浸感[1]。通過VR校園漫游系統(tǒng)能夠輔助決策者進(jìn)行校內(nèi)場(chǎng)所建設(shè)規(guī)劃、校內(nèi)設(shè)施的安置擺放以及校園活動(dòng)管理等。Unity XR技術(shù)能夠?yàn)閂R校園漫游系統(tǒng)構(gòu)建逼真的視覺效果,并帶來(lái)高交互性和VR設(shè)備的兼容性。為此,校園漫游系統(tǒng)與校園信息管理系統(tǒng)相結(jié)合,將構(gòu)建一個(gè)更大型的、功能多樣化的綜合校園導(dǎo)航和漫游系統(tǒng)。
Unity引擎是一款用于游戲和虛擬現(xiàn)實(shí)應(yīng)用開發(fā)的引擎,其強(qiáng)大的功能可以幫助開發(fā)人員快速搭建場(chǎng)景,并自帶多種著色器為模型材質(zhì)的定制提供便利,集成了動(dòng)畫機(jī)和動(dòng)畫控制器以及粒子發(fā)射器等功能,大幅度提高了虛擬現(xiàn)實(shí)場(chǎng)景開發(fā)和建設(shè)效率,也提升了漫游系統(tǒng)的視覺效果和運(yùn)行效率[2]。隨著Unity 2019版本的發(fā)布,Unity公司推出了XR SDK的新插件框架,以往針對(duì)不同VR設(shè)備需要不同開發(fā)工具包(SDK)開發(fā)VR應(yīng)用的痛點(diǎn),不僅提高了Unity的能力,還可以支持市面上大部分主流的VR頭顯設(shè)備進(jìn)行開發(fā),無(wú)須修改引擎代碼即可實(shí)現(xiàn)對(duì)新VR設(shè)備的適配。目前Unity XR支持的XR平臺(tái)主要有:ARKit,ARCore,Microsoft HoloLens,Windows Mixed Reality,Magic Leap,Oculus,Open XR,PlayStation VR等。
在數(shù)字化校園以及校園信息化建設(shè)如火如荼開展的當(dāng)下,學(xué)校的信息化建設(shè)水平也是重要的評(píng)判指標(biāo)之一。在互聯(lián)網(wǎng)時(shí)代,校園漫游系統(tǒng)為學(xué)生和家長(zhǎng)提供了沉浸式和多角度的校園環(huán)境展示,以步入方式來(lái)感受虛擬實(shí)景校園,了解校園的各部分結(jié)構(gòu)、方位、地形、建筑物,對(duì)校園產(chǎn)生較為完整印象,有利于學(xué)校宣傳,提升學(xué)校的形象和知名度。目前,許多學(xué)校已經(jīng)基本完成校園漫游系統(tǒng)建設(shè),有通過三維建模以及Web GL技術(shù)呈現(xiàn)的虛擬校園漫游系統(tǒng),也有通過720全景技術(shù)實(shí)現(xiàn)的校園漫游系統(tǒng),但是這些系統(tǒng)或多或少都存在真實(shí)感及沉浸感不夠或者交互不夠的缺點(diǎn)。借助VR技術(shù)開發(fā)的校園漫游系統(tǒng),不僅可以提供身臨其境的真實(shí)場(chǎng)景,還可以提供非常真實(shí)的交互體驗(yàn),逐漸成為校園漫游系統(tǒng)或?qū)Ш较到y(tǒng)的最新發(fā)展趨勢(shì)[3]。
目前,無(wú)論是被大家所熟知的全景校園漫游系統(tǒng)還是三維虛擬校園漫游系統(tǒng),都在場(chǎng)景構(gòu)建方面存在一定缺陷導(dǎo)致沉浸感不足。首先來(lái)看全景校園漫游系統(tǒng),該系統(tǒng)主要采用相機(jī)定點(diǎn)拍攝720度全景照片,并通過導(dǎo)航加入每一個(gè)定點(diǎn)的鏈接按鈕查看全景照片。此方法雖然可以獲得接近真實(shí)場(chǎng)景的全景照片,但是看到的畫面是二維,導(dǎo)致用戶在瀏覽虛擬校園時(shí)無(wú)法從多個(gè)角度觀察景物,也不能近景物觀察其細(xì)節(jié),沒有景深變化的失真場(chǎng)景導(dǎo)致沉浸感不強(qiáng)。另外一種校園漫游系統(tǒng)是通過三維建模技術(shù)對(duì)現(xiàn)實(shí)世界的場(chǎng)景進(jìn)行重現(xiàn),雖然在高超的建模技術(shù)下,校園場(chǎng)景建筑形態(tài)可以得到很好地還原,但是由于場(chǎng)景貼圖無(wú)法達(dá)到照片真實(shí)的效果,真實(shí)感的缺失同樣也會(huì)導(dǎo)致沉浸感不足。
校園漫游系統(tǒng)不應(yīng)該只是一個(gè)單純向人們展示校園環(huán)境的系統(tǒng),還應(yīng)當(dāng)是讓用戶可以同虛擬校園場(chǎng)景進(jìn)行交互的系統(tǒng)。就當(dāng)前校園漫游系統(tǒng)而言,用戶不僅無(wú)法和場(chǎng)景進(jìn)行交互,甚至連在場(chǎng)景中自由走動(dòng)觀看都無(wú)法做到。三維虛擬的校園漫游系統(tǒng)雖然可以實(shí)現(xiàn)場(chǎng)景的移動(dòng)和部分互動(dòng),但是其使用到的輸入設(shè)備一般多為鍵盤鼠標(biāo),交互性還是不夠。當(dāng)下的虛擬現(xiàn)實(shí)技術(shù)恰恰彌補(bǔ)了交互感缺失的問題,交互性是虛擬現(xiàn)實(shí)技術(shù)的重要特征之一,借助虛擬現(xiàn)實(shí)系統(tǒng)的手勢(shì)識(shí)別或者觸感模擬,校園漫游系統(tǒng)的用戶交互將真正做到雙手體驗(yàn),極大地提升人們?cè)谔摂M校園場(chǎng)景中的用戶體驗(yàn)。
想要建立擁有細(xì)節(jié)、能夠?qū)崿F(xiàn)有效互動(dòng)的校園漫游系統(tǒng),必然需要龐大的數(shù)據(jù)作為基礎(chǔ)。而龐大的數(shù)據(jù)量不僅占據(jù)存儲(chǔ)空間,其傳輸還會(huì)對(duì)網(wǎng)絡(luò)帶寬提出更高的要求,給服務(wù)器和網(wǎng)絡(luò)造成壓力。在帶寬不能支撐龐大的模型或者圖片數(shù)據(jù)量加載時(shí),將會(huì)出現(xiàn)系統(tǒng)響應(yīng)較慢或者交互延遲的問題,影響人們的瀏覽體驗(yàn)。
VR校園漫游系統(tǒng)建設(shè)大致分為三個(gè)階段,分別為:數(shù)據(jù)獲取(包含建筑、場(chǎng)景的數(shù)據(jù)獲?。?;場(chǎng)景建模(校園建筑物、植物、道路等模型制作及優(yōu)化);系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)(針對(duì)用戶進(jìn)行用例分析,功能模塊和交互方式設(shè)計(jì),以及代碼實(shí)現(xiàn))。
由于虛擬現(xiàn)實(shí)技術(shù)對(duì)于場(chǎng)景畫面的要求非常高,因此在建模之前非常有必要針對(duì)校園漫游系統(tǒng)場(chǎng)景進(jìn)行數(shù)據(jù)收集。收集的對(duì)象主要是目標(biāo)場(chǎng)景及建筑物多角度的照片或者點(diǎn)云數(shù)據(jù)。以上數(shù)據(jù)主要通過傾斜攝影或者三維激光掃描技術(shù)獲取。
4.1.1 傾斜攝影技術(shù)
傾斜攝影技術(shù)主要通過在飛行平臺(tái)上搭載的攝像設(shè)備,從垂直,側(cè)視等不同角度拍下目標(biāo)建筑的照片,通過這些照片可以從中提取目標(biāo)建筑的景深以及紋理等信息。通過這些數(shù)據(jù)我們可以獲得目標(biāo)的外觀、位置、高度等屬性,并為后續(xù)建模步驟提供有效的參考。
4.1.2 三維激光掃描技術(shù)
三維激光掃描技術(shù)又被稱為實(shí)景復(fù)制技術(shù),數(shù)據(jù)獲取速度快、數(shù)量大、準(zhǔn)確性高,是測(cè)繪中常用到的技術(shù)。三維激光掃描技術(shù)通過掃描校園建筑物及構(gòu)筑物獲取物體表面的一個(gè)坐標(biāo)信息、反射率、顏色信息等,并以此構(gòu)筑一個(gè)坐標(biāo)點(diǎn)組成集合,稱之為點(diǎn)云。利用獲取的點(diǎn)云數(shù)據(jù)并結(jié)合專業(yè)軟件可以快速生成初步虛擬實(shí)景校園場(chǎng)景的三維建模。在此之后結(jié)合3DS MAX軟件,對(duì)模型數(shù)據(jù)進(jìn)行拼接,然后再對(duì)雜點(diǎn)、噪聲、冗余點(diǎn)進(jìn)行去除,既能夠保證校園建筑物、構(gòu)筑物模型的完整,又能夠降低三維模型建立的耗時(shí)。三維激光掃描技術(shù)獲取到的數(shù)據(jù)準(zhǔn)確性較高,并能有效提升建筑物的細(xì)節(jié),提升虛擬實(shí)景校園的真實(shí)度。
目前,校園漫游系統(tǒng)的模型建設(shè)基本依賴三維重建軟件或3DS MAX這樣的三維建模軟件實(shí)現(xiàn)[4]。然而高精度的三維數(shù)據(jù)為建模提供了諸多便利,也帶來(lái)了一些問題。
4.2.1 面數(shù)太多導(dǎo)致系統(tǒng)運(yùn)行緩慢
傾斜攝影或者三維激光掃描技術(shù)結(jié)合三維重建軟件能夠輕松獲取高精度的模型數(shù)據(jù)文件。高精度模型就意味著頂點(diǎn)以及面數(shù)非常多,而將面數(shù)非常多的模型放入U(xiǎn)nity中進(jìn)行場(chǎng)景制作和開發(fā)時(shí)非常容易出現(xiàn)場(chǎng)景加載緩慢,或者系統(tǒng)運(yùn)行時(shí)幀數(shù)過低的情況。因此在建模階段時(shí)應(yīng)減少模型面數(shù),兼顧虛擬實(shí)景校園中模型的細(xì)節(jié)和系統(tǒng)運(yùn)行速度。
4.2.2 需要借助貼圖替換部分模型細(xì)節(jié)
同樣是為了保證場(chǎng)景加載和系統(tǒng)運(yùn)行的速度,在部分場(chǎng)景物體還原時(shí)可以借助貼圖替換模型來(lái)減少系統(tǒng)資源消耗。通過用相機(jī)、攝像機(jī)拍攝下建筑物和物體的照片,進(jìn)行編輯處理后可進(jìn)行貼圖的方式減少畫面中模型的面數(shù)。例如在校園漫游系統(tǒng)中,校園內(nèi)的植物、路燈、道路等均可采用貼圖的方式降低模型面數(shù),雖然貼圖的方式會(huì)在一定程度上影響虛擬實(shí)景校園的真實(shí)度,但為了避免因?yàn)檫@些小幾何體導(dǎo)致的程序運(yùn)行緩慢,適當(dāng)?shù)纳釛壓苡斜匾猍5]。
4.2.3 需要借助燈光和烘焙重建真實(shí)光照
三維建模中的燈光布置和烘焙是提升模型真實(shí)質(zhì)感的重要手段。根據(jù)瀏覽者視角及位置的不同,觀察建筑物模型必然會(huì)有光照上的變化。想要在不影響系統(tǒng)運(yùn)行速度的同時(shí)提升建筑物模型的視覺效果,燈光效果和光照是必不可少的。但由于實(shí)時(shí)光照效果會(huì)大幅消耗系統(tǒng)硬件資源,一般為了保證系統(tǒng)運(yùn)行的流暢,開發(fā)人員會(huì)通過烘焙的方式將靜態(tài)物體的燈光、陰影等效果計(jì)算出來(lái)并生成光照貼圖貼在模型表面,以此來(lái)達(dá)到接近真實(shí)的光照效果,并同時(shí)提升系統(tǒng)的流暢度。
VR校園漫游系統(tǒng)的目的是利用VR技術(shù)為用戶展示高沉浸感和交互體驗(yàn)的虛擬校園場(chǎng)景。從這個(gè)基礎(chǔ)上進(jìn)行用戶研究可以分析得出用例基本上是以下三方面:通過手柄或者移動(dòng)做到在虛擬場(chǎng)景的自由行走、通過虛擬現(xiàn)實(shí)設(shè)備完成和場(chǎng)景的互動(dòng)、虛擬場(chǎng)景物體的擺放及效果展示。結(jié)合學(xué)校建設(shè)校園漫游系統(tǒng)的需求和目的以及用戶使用例來(lái)進(jìn)行系統(tǒng)功能設(shè)計(jì),主要功能包括但不限于通過手柄瞬移或者用戶腳步移動(dòng)來(lái)自由探索場(chǎng)景、瀏覽者在進(jìn)入某個(gè)場(chǎng)景、建筑物后主動(dòng)出現(xiàn)信息提示,用戶與建筑物或者場(chǎng)景物體通過觸碰,抓握等方式實(shí)現(xiàn)交互等。
最后,校園漫游系統(tǒng)還應(yīng)當(dāng)包含一個(gè)用于校領(lǐng)導(dǎo)或者其他職能部門領(lǐng)導(dǎo)決策的輔助支持功能,比如通過某些方式獲得建筑的尺寸信息,或者通過將外部導(dǎo)入的模型在場(chǎng)景中進(jìn)行擺放并可查看該模型不同角度展示效果。整個(gè)系統(tǒng)的主體功能設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)功能模塊
在使用Unity及XR技術(shù)進(jìn)行漫游系統(tǒng)開發(fā)之前,需要將優(yōu)化好的模型以及事先制作或者渲染好的材質(zhì)導(dǎo)入到Unity項(xiàng)目中的資產(chǎn)文件夾。導(dǎo)入之前中需要注意3DMax的模型的比例和Unity的比例是100比1的關(guān)系,同時(shí)3DMax軟件和Unity的模型坐標(biāo)軸也不一樣,這些都可以在模型導(dǎo)出選項(xiàng)中進(jìn)行設(shè)置。最后,為了防止程序開發(fā)中比例錯(cuò)誤或者朝向等問題,在導(dǎo)出3DMax模型之后,將模型放置在場(chǎng)景中檢查是否正常非常有必要。
同數(shù)字化校園等信息系統(tǒng)相比不同的是,在VR校園漫游系統(tǒng)的開發(fā)中,出于對(duì)虛擬校園的真實(shí)度和沉浸感的需要,畫面視覺效果和特效是非常關(guān)鍵的一環(huán),不僅需要將接近真實(shí)的光照效果渲染出來(lái),還要瀏覽者在漫游虛擬校園過程中不會(huì)因?yàn)榇罅康膱D形圖像運(yùn)算導(dǎo)致系統(tǒng)卡頓。在開發(fā)時(shí),需要將Unity XR開發(fā)工具包進(jìn)行導(dǎo)入并基于其內(nèi)置函數(shù)庫(kù)對(duì)頭顯設(shè)備識(shí)別與同步,手柄與手勢(shì)識(shí)別等功能構(gòu)建初步的XR應(yīng)用框架供后續(xù)功能模塊開發(fā)之用;再分別就各個(gè)功能模塊進(jìn)行開發(fā),并最終完成測(cè)試。
5.2.1 場(chǎng)景搭建
在場(chǎng)景搭建中,不僅需要完成所有模型的擺放和材質(zhì)效果的綁定,還需要實(shí)現(xiàn)天空、太陽(yáng)光暈、光線、動(dòng)態(tài)陰影等特效部分的內(nèi)容,構(gòu)建接近真實(shí)的校園場(chǎng)景。在Unity中,光照和陰影等效果都可以在Lighting選項(xiàng)中進(jìn)行設(shè)置。
5.2.2 XR開發(fā)
Unity XR是Unity引擎的一個(gè)開發(fā)工具包,其作用主要用于為主流的虛擬現(xiàn)實(shí)設(shè)備提供驅(qū)動(dòng)并提供特定的工具庫(kù)為虛擬現(xiàn)實(shí)應(yīng)用設(shè)備提供便利,是一套兼容性非常強(qiáng)的框架。Unity XR的主要框架結(jié)構(gòu)如圖2所示。
圖2 Unity XR的框架結(jié)構(gòu)
在校園漫游系統(tǒng)開發(fā)中使用Unity XR框架可以讓應(yīng)用程序兼容市面上大部分的VR頭顯顯示以及手柄控制。結(jié)合Unity XR中的插件框架,可以通過同樣的代碼在不同的設(shè)備上實(shí)現(xiàn)同樣的功能,例如:手勢(shì)控制、手柄操作、頭顯定位和移動(dòng)等。同時(shí)由于Unity XR框架已經(jīng)將部分手勢(shì)和控制交互、移動(dòng)等功能集成在開發(fā)包中,程序員可以不用從底層開發(fā)手柄控制和移動(dòng)的代碼,提高了開發(fā)效率。
Unity XR作為開發(fā)工具包,在項(xiàng)目中需要以外部包的方式導(dǎo)入項(xiàng)目中才能使用,導(dǎo)入方式為在Unity中打開Package Manager菜單,并在其中添加XR Interaction Toolkit以及XR Plugin Management,然后在Project Settings菜單中的Player選單中勾選Virtual Reality Supported即可。
5.2.3 系統(tǒng)邏輯實(shí)現(xiàn)
在完成場(chǎng)景搭建以及Unity XR框架工具包導(dǎo)入之后,基本的VR校園漫游系統(tǒng)的總體框架已經(jīng)搭建完成。接下來(lái)是利用編程完成之前提到的校園漫游,交互,以及決策輔助等功能。漫游功能是實(shí)現(xiàn)虛擬現(xiàn)實(shí)校園漫游系統(tǒng)的重要一環(huán),也是有別于其他漫游系統(tǒng)的關(guān)鍵點(diǎn)。使用虛擬現(xiàn)實(shí)設(shè)備時(shí),人們由于看到的畫面變化和大腦感官認(rèn)知存在差異會(huì)產(chǎn)生類似暈車的眩暈感。這種虛擬現(xiàn)實(shí)眩暈大部分是由于程序要求用戶使用不恰當(dāng)方式控制相機(jī)在虛擬場(chǎng)景中移動(dòng)造成的。而為了避免用戶使用過程中出現(xiàn)眩暈,絕大部分VR應(yīng)用的漫游方式都是讓佩戴者在現(xiàn)實(shí)場(chǎng)景中走動(dòng)來(lái)模擬虛擬場(chǎng)景中的移動(dòng),以及通過手柄射線指向某個(gè)區(qū)域進(jìn)行瞬間移動(dòng)。在VR校園漫游系統(tǒng)中,可以快速通過配置Unity XR工具庫(kù)中的XR Origin預(yù)制體來(lái)達(dá)成頭戴顯示設(shè)備在虛擬場(chǎng)景中的定位以及生成手柄射線。完成用戶瞬間移動(dòng)到特定位置的功能則需要借助Teleportion Provider腳本以及XR Ray Interactor射線控制腳本配合射線定位及碰撞檢測(cè)來(lái)達(dá)成目標(biāo)。
事實(shí)上,無(wú)論是漫游功能,還是用戶交互,虛擬陳列等功能的實(shí)現(xiàn),碰撞檢測(cè)都是代碼實(shí)現(xiàn)的核心部分。在漫游方面,借助碰撞檢測(cè)可以避免瀏覽者在虛擬現(xiàn)實(shí)校園中出現(xiàn)穿墻而過的情況。Unity中自帶的碰撞體組件可以幫助對(duì)場(chǎng)景中的兩個(gè)碰撞體是否發(fā)生碰撞進(jìn)行判斷,此時(shí)程序員則可通過代碼來(lái)對(duì)碰撞發(fā)生后的程序走向進(jìn)行控制。在真實(shí)世界中,人會(huì)遭遇到來(lái)自植物、建筑物、構(gòu)筑物的阻礙,因此虛擬校園漫游系統(tǒng)也必須要實(shí)現(xiàn)用戶在場(chǎng)景漫游中,物體能夠像真實(shí)物體一樣產(chǎn)生阻擋作用。場(chǎng)景中用戶和物體的交互主要也要借助Unity XR框架中的手勢(shì)和抓握等工具腳本來(lái)實(shí)現(xiàn),結(jié)合虛擬顯示校園漫游系統(tǒng)中的用例來(lái)實(shí)現(xiàn)按鈕點(diǎn)擊、門把抓握、書籍翻頁(yè)等等交互功能。
校園輔助決策功能這方面則需要編程來(lái)實(shí)現(xiàn)模型數(shù)據(jù)在場(chǎng)景中的生成,并通過手柄射線指定模型擺放的位置,從而輔助決策者對(duì)虛擬校園中的桌椅擺放,活動(dòng)區(qū)域設(shè)置等提供幫助。
5.2.4 系統(tǒng)測(cè)試和發(fā)布
在全部功能完成之后,就需要通過黑盒和白盒測(cè)試校園漫游系統(tǒng)運(yùn)行是否正常,同時(shí)結(jié)合部分虛擬現(xiàn)實(shí)設(shè)備來(lái)檢驗(yàn)兼容性。在測(cè)試之后即可發(fā)布可運(yùn)行程序在PC平臺(tái)使用或者apk文件供VR一體機(jī)運(yùn)行。
綜上所述,VR校園漫游系統(tǒng)的建設(shè)不能單靠VR技術(shù)或者計(jì)算機(jī)編程技術(shù)來(lái)實(shí)現(xiàn),要想實(shí)現(xiàn)足夠真實(shí)沉浸的VR系統(tǒng),還需要借助三維激光掃描和傾斜攝影等勘測(cè)技術(shù),以及色彩光照和特效美術(shù)等知識(shí)。本文探討了借助這些技術(shù)以及Unity XR框架來(lái)實(shí)現(xiàn)VR校園漫游系統(tǒng)應(yīng)用的可能性和實(shí)現(xiàn)方式。在元宇宙以及數(shù)字孿生等技術(shù)概念不斷出現(xiàn)的當(dāng)下,VR校園漫游系統(tǒng)依然無(wú)法擺脫系統(tǒng)封閉以及功能單一的特點(diǎn),但是這些新奇的概念又給VR校園漫游系統(tǒng)的未來(lái)帶來(lái)了新的可能性。在不斷迭代下,VR校園漫游系統(tǒng)也必然會(huì)不斷推陳出新,支撐推動(dòng)未來(lái)校園的改革與發(fā)展。