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