王麗
摘 要:三維虛擬校園是對真實校園場景的三維仿真模擬,它是數(shù)字校園和智慧校園建設(shè)的基礎(chǔ),在未來的校園建設(shè)中具有非常重要的意義。文章針對目前國內(nèi)的三維虛擬校園仿真效果不佳、缺乏交互性、開發(fā)周期長等問題,以山西大同大學虛擬校園為研究對象,引入了一種新的交互性強、渲染效果好、開發(fā)周期短的開發(fā)方法。文章著重介紹了山西大同大學虛擬校園漫游仿真系統(tǒng)的總體設(shè)計思路、相關(guān)的開發(fā)技術(shù)和實現(xiàn)方法,并對系統(tǒng)實現(xiàn)的關(guān)鍵問題和方法進行了詳細說明。
關(guān)鍵詞:Untiy3D;虛擬校園;建模;漫游
中圖分類號:TP315 文獻標志碼:A 文章編號:1673-8454(2016)09-0060-04
一、引言
隨著科技的發(fā)展,人們不再滿足于以往的親臨校園,或者以視頻、照片等方式了解校園風貌,再加上各大高校招生規(guī)模的擴大,人們希望用更加簡潔、直觀、現(xiàn)實的方式了解和管理校園,提高學校的知名度,促進學校的發(fā)展。這就迫切需要一種新的校園展示和規(guī)劃、管理的平臺[1]。在此背景下,三維虛擬校園應(yīng)運而生。
三維虛擬校園是虛擬現(xiàn)實技術(shù)、計算機網(wǎng)絡(luò)技術(shù)、圖形圖像技術(shù)、多媒體技術(shù)等領(lǐng)域的高新技術(shù)在教育領(lǐng)域的綜合應(yīng)用,是數(shù)字化校園和智慧校園建設(shè)的重要內(nèi)容,它打破了空間的局限性,能夠直觀地、真實的展現(xiàn)交互式三維校園場景[2]。
本文針對目前國內(nèi)三維虛擬校園仿真效果欠佳、缺乏互動性、開發(fā)周期長等問題,以山西大同大學虛擬校園為研究對象,以一種交互性強、渲染效果好、開發(fā)周期短的開發(fā)方法,設(shè)計并實現(xiàn)了一個具有視覺和聽覺、交互性較強的三維虛擬校園漫游仿真系統(tǒng)。
系統(tǒng)使用3ds Max等工具進行場景構(gòu)建,使用Unity3D作為開發(fā)平臺進行漫游和交互的設(shè)計,實現(xiàn)了山西大同大學虛擬校園的自動漫游和自主漫游。自動漫游可使用戶按照預(yù)先設(shè)定好的路線全方位地瀏覽校園的各種環(huán)境,以產(chǎn)生身臨其境之感;自主漫游帶給用戶較強的交互體驗和沉浸感,可使用戶通過鼠標、鍵盤自主控制虛擬人的走向,按照自己的意愿游覽建筑,通過導(dǎo)航地圖的配合準確定位虛擬人所處位置,點擊建筑物按鈕實現(xiàn)建筑物內(nèi)外場景的切換,使用戶既能瀏覽校園戶外風光,又能進入主要建筑物內(nèi)部了解教學環(huán)境。場景解說和背景音樂的加入,更增加了用戶游覽的興致。
二、系統(tǒng)總體設(shè)計
依據(jù)需求分析,系統(tǒng)開發(fā)主要包括兩個部分,即虛擬校園場景的構(gòu)建和虛擬漫游交互設(shè)計。
1.虛擬校園場景的構(gòu)建
虛擬場景的構(gòu)建要以真實校園為藍本。在構(gòu)建之前需要采集相關(guān)數(shù)據(jù),即需要獲取校園建筑的實際尺寸并拍攝建筑物的相關(guān)圖片,為后期建模和貼圖做準備。虛擬校園場景的制作過程較為復(fù)雜,涉及到的相關(guān)技術(shù)較多。
在進行虛擬場景制作時,首先根據(jù)校園建筑物的實際尺寸,使用AutoCAD繪圖軟件繪制整個校園平面圖,以確定各建筑物的平面布局和位置。AutoCAD是建筑行業(yè)中首選的平面圖繪制軟件,它簡單易用,功能強大。
繪制好平面圖后,就可以利用3ds Max進行各建筑物及虛擬人物的建模,完成整個三維虛擬校園場景的創(chuàng)設(shè)。3ds Max功能完善,容易上手,具有多種建模方式,其中強大的多邊形建模非常適合建筑類建模。
三維虛擬仿真校園的模型制作好后,需要為建好的模型賦予材質(zhì),以準確表達模型的色彩、紋理、對光的反射、折射等物理屬性。
為了模擬真實校園場景,需要添加燈光效果以突出場景的層次感,使場景更加真實、自然。為了減少CPU的計算時間,可以采用貼圖烘焙技術(shù)將光照信息變成貼圖形式。
完成上述內(nèi)容后,需要將最終完成的模型導(dǎo)出為Unity3D兼容的. fbx格式。
2.虛擬漫游交互設(shè)計
系統(tǒng)以Unity3D為平臺對虛擬場景進行交互設(shè)計。Unity3D是一款跨平臺的專業(yè)商業(yè)游戲引擎,用它創(chuàng)建的游戲能夠發(fā)布到瀏覽器、個人機、移動設(shè)備等平臺上運行。Unity3D功能強大,且具有很強的交互性功能,利用它可以更快、更容易地創(chuàng)建三維游戲、三維動畫、建筑漫游等游戲類項目[3]。
將.fbx格式的模型導(dǎo)入Unity3D中進行校園漫游系統(tǒng)的設(shè)計,內(nèi)容包括界面制作、自主漫游交互設(shè)計、自動漫游設(shè)計、建筑物解說和背景音樂的添加。
系統(tǒng)完成后還要對系統(tǒng)進行優(yōu)化,最后打包發(fā)布成可執(zhí)行文件。如上所述,虛擬校園漫游系統(tǒng)的總體設(shè)計與開發(fā)過程如圖1所示。
三、系統(tǒng)的實現(xiàn)
1.前期準備
虛擬校園場景建立的目的是反映真實校園,為了符合建筑物實際情況,在搭建場景之前需要通過查閱歷史資料和實地測量,獲取建筑物的真實尺寸;為了能反映場景模型的表面質(zhì)感、紋理、色彩等,需要通過高清相機拍攝建筑物表面照片,包括外墻、地面、路燈、植物等,然后利用Photoshop軟件對采集的圖片進行相應(yīng)的處理,得到模型表面貼圖。
2.繪制CAD平面圖
在模型設(shè)計之前,首先根據(jù)查閱的歷史資料和實際的測量數(shù)據(jù),利用AutoCAD繪制山西大同大學整體平面圖,以確定路面及建筑物的平面布局和位置,在宏觀上對校園建筑進行把控,為后期整個校園場景的整合奠定基礎(chǔ)。圖2為大同大學北校區(qū)道路分布圖,圖3為學生宿舍平面圖。
3.建模
繪制好平面圖之后,就可以使用3ds Max中豐富的建模技術(shù)對室內(nèi)外建筑進行建模。校園場景復(fù)雜,使用的建模方法也較多,對于不同的物體有不同的建模方法,同一物體也可能有多種建模方法。如何選擇合適的建模方法,對系統(tǒng)的性能起到關(guān)鍵的作用。結(jié)合經(jīng)驗,將如何選擇建模方法總結(jié)如下[4]:
(1)基本三維型體的直接建模:對于通過3ds Max中提供的標準幾何體和擴展幾何體及其相互組合便可完成建模的物體,可直接進行建模,比如日常生活中常見的規(guī)則的桌子和椅子。
(2)多邊形建模:對于需以標準幾何體或擴展集合體做為初始型體,但結(jié)構(gòu)較復(fù)雜的物體,需將其初始型體轉(zhuǎn)換為“可編輯多邊形”或“可編輯網(wǎng)格”,并在編輯面板中選擇點、面進行修改從而達到理想的建模效果。
(3)二維圖形建模:對于一些形狀復(fù)雜,不能使用標準幾何體和擴展幾何體起型的物體,可以嘗試使用二維圖形起型,然后通過添加相應(yīng)的修改器將其轉(zhuǎn)化為三維實體模型。
(4)復(fù)合對象建模:對于需要通過兩個或兩個以上的物體通過特定的方式結(jié)合成為一個對象的建模通常使用復(fù)合對象建模方法。需要通過兩個或兩個以上的相交物體進行合并、取交集部分或取差集部分實現(xiàn)的模型,可利用幾何體的布爾運算進行建模。
(5)人物建模:對三維人物進行建模時,可采用面片結(jié)合多邊形的建模方法,面片是通過點織網(wǎng)的方法來實現(xiàn),即將許多面片按照實際需要連接起來,最終構(gòu)成模型。
(6)貼圖建模:對于使用常規(guī)建模方法會造成點數(shù)、面數(shù)太大的模型,在實際建模中可以根據(jù)情況使用貼圖建模等方法實現(xiàn)。貼圖建模用于植物和一些對模型要求不高、距離較遠的物體的建模。
若建模過程中存在同一模型可使用多種建模方法完成時,應(yīng)選用產(chǎn)生模型面數(shù)最少的方法。對遠處物體進行建模時,由于視覺要求較低,可適當降低“分段”數(shù)以減少模型面數(shù)。
4.制作材質(zhì)
建立好模型后,為了使模型達到仿真的效果,需要以真實物體為基準為模型賦予材質(zhì)。材質(zhì)決定了物體的表面屬性。簡單的說材質(zhì)就是物體看起來是什么質(zhì)地。它是物體材料和質(zhì)感的結(jié)合。系統(tǒng)使用3ds Max附帶的插件—VRay渲染器實現(xiàn)模型表面材質(zhì)的制作,真實表現(xiàn)物體表面質(zhì)感、紋理、色彩及其它物理屬性,最終得到逼真的模型效果。
5.渲染烘焙
校園中的光照效果可采用貼圖烘焙技術(shù)或燈光技術(shù)來模擬。使用燈光技術(shù)時,CPU會進行大量的計算,渲染速度慢。所以在實際制作時,可以采用貼圖烘焙技術(shù)來實現(xiàn)對燈光的模擬。貼圖烘焙技術(shù)可以將3ds Max中的光照信息渲染成一張貼圖,然后將這張貼圖再貼到場景中以模擬燈光[5]。這樣處理可以很大程度上減少CPU的計算時間,加快系統(tǒng)的運行速度。
6.模型整合與導(dǎo)入
在各個場景制作完成后,需要根據(jù)前面繪制的CAD平面底圖,把各模型放到對應(yīng)的位置上,將各場景整合為一個完整的虛擬校園。然后將整個場景文件導(dǎo)出為虛擬交互平臺所兼容的.fbx文件格式。然后將其導(dǎo)入虛擬交互平臺中進行虛擬交互漫游的設(shè)計。若虛擬場景過大,不能在3ds Max中進行整合,可將整個大場景分為各個獨立的子部分,將各子部分和校園CAD平面底圖分別導(dǎo)入到虛擬交互平臺中,在虛擬交互平臺中進行模型整合。
7.交互漫游設(shè)計
將場景文件導(dǎo)入虛擬交互平臺中進行虛擬場景交互設(shè)計。使用戶可以通過必要的輸入設(shè)備對場景進行控制,在場景中進行漫游,體驗身臨其境之感。為了便于使用還為不同的場景配上音頻解說和文字說明。
(1)自主漫游的實現(xiàn)
Untiy3D中的對象必須綁定腳本才能實現(xiàn)邏輯判斷,完成相應(yīng)的功能,一個腳本相當于一個組件,綁定時只需拖拽到相應(yīng)對象的Inspector區(qū)域即可。
1)導(dǎo)航功能的實現(xiàn)
系統(tǒng)利用KGFMapSystem插件實現(xiàn)導(dǎo)航地圖的快速制作。主要步驟如下:
在Untiy3D控制面板選擇“Assets-->Import Package-->Custom Packages”,在彈出框中選擇已準備好的KCFMapSystem插件,并進行解壓。將插件中的“KGFMapSystem”拖到Hierarchy中。將插件中的“KGFMapIcon_player”拖到“First Person Controller”下。將插件中的“KGFMapIcon_air_friend”拖到任意一個GameObject下。點擊“KGFMapSystem”,將“First Person Controller”拖至“Its Target”上。在Layer中添加“mapsystem”。點擊運行,生成的導(dǎo)航地圖如圖4所示。
2)碰撞檢測的實現(xiàn)
碰撞檢測(Collision Detection)也被人們稱為干涉檢測或者接觸檢測,是一種對物體在運動過程中可能出現(xiàn)的碰撞或者干涉進行檢查的技術(shù),主要目的是為了避免碰撞或干涉原來運動事件的發(fā)生??梢员苊膺\動物體穿墻而過、穿過地面等現(xiàn)象的發(fā)生。
Untiy3D中的角色控制器可感應(yīng)對象之間的碰撞,需要調(diào)用父類方法OnControllerColliderHit()進行檢測。在該父類方法中,使用hit.gameObject引用,即可獲取角色控制器組件碰撞后的游戲?qū)ο蟆?/p>
3)人機交互功能的實現(xiàn)
在自主漫游模式下,實現(xiàn)按下鍵盤“W”、“S”分別控制虛擬人物的前進與后退,按下“A”、“D”分別控制虛擬人物能向左、向右運動。在此基礎(chǔ)上點及鼠標右鍵可以實現(xiàn)環(huán)繞視角,滑動滾輪可以實現(xiàn)視角拉近與拉遠,鼠標與鍵盤配合使用,讓漫游者更加方便快捷。
其中使用鍵盤控制人物的主要代碼如下:
(2)自動漫游的實現(xiàn)
系統(tǒng)利用在攝像機上綁定動畫組件,預(yù)先設(shè)置好游覽路線,通過播放動畫剪輯達到自動漫游的目的。自動漫游分為行走模式和飛行模式,行走模式能深入室內(nèi)游覽各個角落,飛行模式可在空中俯瞰校園全貌,這樣,讓用戶能在短時間內(nèi)對學校有一個全面的認識,是校園漫游系統(tǒng)不可缺少的一環(huán)。
行走模式具體流程如下:
1)在“Hierarchy”面板中選擇“Main Camera”,點擊菜單欄中Component-->Miscellanecous-->Animation,這樣“Main Camera”的“Inspector”面板中會出現(xiàn)該“Animation”組件。
2)點擊菜單欄中“Windows”-->“Animation”,出現(xiàn)動畫編輯界面。
3)回到場景三維顯示區(qū)域,點擊動畫編輯界面的錄制按鈕,設(shè)置“Main Camera”路徑幀,每一個路徑幀是一個節(jié)點。
4)設(shè)置好“Main Camera”所有路徑幀,重新點擊錄制按鈕,保存動畫,運行測試。部分效果圖如5所示。
飛行模式是將攝像機置于空中,通過繪制曲線路徑達到俯瞰校園的目的,與行走模式步驟相同,故不在此詳述。
8.系統(tǒng)測試與發(fā)布
系統(tǒng)完成后需要對系統(tǒng)進行測試,根據(jù)測試結(jié)果對系統(tǒng)進行優(yōu)化,確保系統(tǒng)性能良好后可進行發(fā)布??梢圆捎么砟P蛯δP瓦M行優(yōu)化,代理模型可以將模型的面數(shù)減少,從而達到內(nèi)存資源消耗減少的目的。在此基礎(chǔ)上,將“Main Camera”的“Clipping Planes”的范圍調(diào)小,這樣做可以使可見的視野減小,有效減小處理機壓力。
系統(tǒng)測試成功后便可進行發(fā)布。在Windows系統(tǒng)下,發(fā)布時需點擊菜單欄中的File->Build Setting。點擊之后會出現(xiàn)一個場景編輯列表。點擊工程面板中的各個場景,將它們拖到可編輯的列表中,場景后的數(shù)字表示渲染順序,“0”號場景第一個渲染,點擊Build將開始發(fā)布。
四、結(jié)語
三維虛擬校園的構(gòu)建是一項較大的工程,往往需要多人分工完成。因而模型的規(guī)范顯得更加重要。如模型命名問題、模型單位匹配問題、材質(zhì)命名及“歸檔”問題、材質(zhì)制作與模型制作同步問題等都會影響到后期的模型整合及系統(tǒng)性能。除此之外,建模中最關(guān)鍵的問題就是模型面數(shù)問題,它關(guān)系到三維虛擬校園系統(tǒng)的正常運行,在設(shè)計中應(yīng)既保證滿足用戶的視覺需要,又保證模型中包含的面數(shù)最少。
參考文獻:
[1][3]張明明.基于虛擬校園浸游的研究與實現(xiàn)[D].云南大學,2014.
[2]洪德法,盧文喜,李偉等.三維虛擬校園系統(tǒng)的設(shè)計與實現(xiàn)[J].地理空間信息,2012,10(1):84-87.
[4]Li Wang.Researching of the three-dimensional virtual simulation campus scenes construction technology[J].The Open Cybernetics and Systemics Journal,2015(Volume 9):1056-1057.
[5]百度文庫.3ds max烘焙貼圖[DB/OL].http://wenku.baidu.com/view/dff9340abb68a98271fefa03.html,2010-07-01.