楊巍+沈浩+劉榮+鄭單單
摘要:以湖南工業(yè)大學(xué)河西新校區(qū)環(huán)境為研究對(duì)象,通過使用3DS MAX等軟件建立模型,并采用VC++.Net結(jié)合Direct3D對(duì)虛擬場(chǎng)景渲染與漫游,實(shí)現(xiàn)了具有較強(qiáng)交互功能的三維虛擬校園漫游系統(tǒng),并對(duì)整個(gè)系統(tǒng)進(jìn)行優(yōu)化。
關(guān)鍵詞:虛擬校園;Direct3D;數(shù)字校園
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0241-02
1 引言
美國(guó)科學(xué)家Jaron Lanier在20世紀(jì)80年代首次提出了虛擬現(xiàn)實(shí)概念,虛擬現(xiàn)實(shí)(Virtual Reality,簡(jiǎn)稱VR)是綜合圖形技術(shù)、多媒體技術(shù)、立體顯示技術(shù)等多學(xué)科技術(shù)為一體,是極富挑戰(zhàn)性的前沿交叉技術(shù)。目前,它在軍事航天,文教娛樂,工業(yè)設(shè)計(jì),文化旅游等領(lǐng)域都有著極其廣泛的應(yīng)用[1]。虛擬校園交互式漫游系統(tǒng)是基于對(duì)真實(shí)校園的三維景觀進(jìn)行仿真的虛擬校園,使用先進(jìn)的虛擬現(xiàn)實(shí)技術(shù)將真實(shí)的校園環(huán)境在互聯(lián)網(wǎng)上進(jìn)行立體的重現(xiàn),用戶在感官上如同身臨其境一般[2] ,對(duì)學(xué)校的資源管理、環(huán)境規(guī)劃等諸多方面起了非常重要的作用。
2 系統(tǒng)功能的設(shè)計(jì)
系統(tǒng)主要分成如下幾個(gè)模塊:三維引擎處理模塊、層級(jí)模塊、音效模塊,智能導(dǎo)航模塊、季節(jié)變換模塊、碰撞檢測(cè)模塊、渲染模塊、漫游模式切換模塊、公告牌模塊、粒子系統(tǒng)模塊、物體模型層模塊、攝像機(jī)模塊、實(shí)時(shí)監(jiān)控模塊等。
三維引擎模塊是整個(gè)系統(tǒng)的主干,通過該模塊控制其他的模塊,并且其他模塊的操作最終所展現(xiàn)出來的形式是依托于三維引擎模塊。通過層級(jí)模塊進(jìn)行分層處理,該模塊負(fù)責(zé)音效,渲染,模型等模塊的更新與管理。季節(jié)變換與渲染模塊所包含的其他下級(jí)模塊。系統(tǒng)的功能模塊參見圖1所示。
引擎模塊負(fù)責(zé)整個(gè)系統(tǒng)的事件處理、更新和渲染。層級(jí)模塊是當(dāng)用戶點(diǎn)擊進(jìn)入漫游時(shí),層級(jí)發(fā)生變化,引擎將會(huì)調(diào)用渲染方法。該模塊采用面向?qū)ο蟮亩鄳B(tài)性將整個(gè)系統(tǒng)劃分層次,使程序結(jié)構(gòu)清晰。智能導(dǎo)航模塊提供可供用戶選擇的路線的起點(diǎn)與終點(diǎn),生成兩點(diǎn)之間的最短路線,以攝像機(jī)為第一視角對(duì)路線沿途的校園風(fēng)光漫游。季節(jié)變換模塊則用于季節(jié)的選擇,展示不同季節(jié)所對(duì)應(yīng)的校園風(fēng)光。碰撞檢測(cè)模塊主要檢測(cè)攝像機(jī)是否與建筑模型發(fā)生碰撞。
3 系統(tǒng)實(shí)現(xiàn)
3.1系統(tǒng)開發(fā)流程
首先按照實(shí)際校園的建筑尺寸一定的比例進(jìn)行虛擬建模,將模型和天空等虛擬物體進(jìn)行整體拼接構(gòu)造一個(gè)虛擬場(chǎng)景。然后是建立漫游系統(tǒng),即通過Direct3D的攝像機(jī)的視角變換完成對(duì)三維虛擬場(chǎng)景漫游控制的設(shè)計(jì)。最后為了進(jìn)一步提高虛擬校園系統(tǒng)的真實(shí)感,添加各種交互功能,包括雪花效果等。系統(tǒng)開發(fā)流程框架如圖2所示。
3.2場(chǎng)景模型的建立
三維建筑物的表示和建模是虛擬校園中最為重要的內(nèi)容。對(duì)建筑物模型的構(gòu)建是通過3DMAX軟件建立三維實(shí)體模型,然后再對(duì)相應(yīng)的實(shí)體幾何模型進(jìn)行紋理映射。包裝設(shè)計(jì)藝術(shù)樓的建模如圖3所示:
對(duì)于天空的設(shè)計(jì),采用天空盒方案來實(shí)現(xiàn),同時(shí)為了更加達(dá)到逼真的效果,增加了天空云層漂浮移動(dòng)的效果。使用圖4的各個(gè)面的紋理圖作為天空盒的各個(gè)面的材質(zhì)紋理,實(shí)現(xiàn)了將虛擬校園置身于大自然的背景之中的效果。
另外,由于虛擬校園中的樹木和雕塑的數(shù)量都比較多,在不明顯影響虛擬校園場(chǎng)景的視覺效果的情況下,采用基于Direct3D的公告板(Billboard)技術(shù),也稱廣告牌技術(shù)[3]。
3.3 多種交互漫游模式的實(shí)現(xiàn)
虛擬校園用戶使用外部輸入設(shè)備達(dá)到可以隨意控制漫游的速度、方向及視角等,則稱為交互漫游模式。本系統(tǒng)則實(shí)現(xiàn)了手動(dòng)模式、全景模式、實(shí)物模式和智能尋路模式這四種漫游模式。
1)手動(dòng)模式:通過鍵盤的W鍵、S鍵、A鍵、D鍵、左右方向鍵來分別控制攝像機(jī)的前進(jìn)、后退、左移、右移以及攝像機(jī)左右調(diào)整的角度。
2)全景模式:該模式是將攝像機(jī)上升至一定的高度,能夠以俯視的角度鳥瞰整個(gè)虛擬校園。在該模式同樣可以使用手動(dòng)模式下鍵盤的相應(yīng)的按鍵來控制攝像機(jī)相應(yīng)的視角變換。虛擬校園系統(tǒng)全景模式如圖5所示。
3)實(shí)物模式:該模式是通過交互界面選擇相應(yīng)的實(shí)物,然后攝像機(jī)會(huì)繞該模型360度旋轉(zhuǎn)一周,可以近距離的看到實(shí)物模型的細(xì)節(jié)。虛擬校園系統(tǒng)的實(shí)物漫游模式參見圖6所示。
上述各種模式是通過攝像機(jī)視圖變換達(dá)到不同的效果。整個(gè)模式切換是由引擎相機(jī)與引擎鍵盤監(jiān)聽實(shí)現(xiàn)的,其核心代碼如下:
void Campus::ShiwuModel(IDirect3DDevice9* Device,float Radio_offset,…)
{
D3DXMATRIX roa12,matWorld;
D3DXMatrixRotationY(&roa12, (-0.5f)*D3DX_PI/180.0f);
Device->SetTransform(D3DTS_WORLD,&matWorld);
CampusEngine_Camera->SetPos(hero->pos);
CampusEngine_Camera->SetLook(hero->look);
CampusEngine_Camera->Set3DCamera(Device, (float)rect.right,…);
Render(Device);
}
4)智能尋路模式的實(shí)現(xiàn)
在虛擬校園系統(tǒng)中實(shí)現(xiàn)了智能導(dǎo)航功能,該功能使用了A*(A STAT)算法[4]取得兩點(diǎn)之間的最短路徑。當(dāng)用戶選擇起點(diǎn)和終點(diǎn)后,系統(tǒng)會(huì)根據(jù)A*算法自動(dòng)生成器兩點(diǎn)之間的最短路徑,然后通過攝像機(jī)自動(dòng)移動(dòng),并且在轉(zhuǎn)折點(diǎn)自動(dòng)旋轉(zhuǎn)方向漫游沿途風(fēng)光。其核心代碼如下所示:
void SearchPath(Node startNode, Node endNode)
{
lock(graph);
Init(startNode, endNode);
int posNF = closed.IndexOf(Succes, SameNode);
int PosNO = open.IndexOf(Succes, SameNode);
if(PosNF > 0) { close.remove(PosNF); }
open.add(PosNF);}
5)季節(jié)變換的實(shí)現(xiàn)
使用粒子系統(tǒng)模擬的現(xiàn)象有火焰、爆炸、云、霧、雪、塵、流星尾跡或者像發(fā)光軌跡這樣的抽象視覺效果等等[5]。虛擬校園系統(tǒng)的季節(jié)變換模塊中通過使用公告板技術(shù)與粒子系統(tǒng)技術(shù),實(shí)現(xiàn)了植物的紋理切換以及雪花飄落,冬天雪花的效果。
4 結(jié)語與展望
通過不斷的研究與探索,充分利用多種創(chuàng)作工具的優(yōu)點(diǎn),以湖南工業(yè)大學(xué)為對(duì)象的三維虛擬校園交互式漫游系統(tǒng)的建設(shè)研究初步完成預(yù)期的需求目標(biāo)。本文重點(diǎn)研究了虛擬校園系統(tǒng)的虛擬場(chǎng)景的建模技術(shù),以及研究虛擬校園多種漫游方式的算法,并詳細(xì)介紹了系統(tǒng)漫游中交互功能的實(shí)現(xiàn)。通過實(shí)踐與測(cè)試,三維虛擬校園交互式漫游系統(tǒng)能夠較為流暢地運(yùn)行??梢砸远喾N漫游模式對(duì)整個(gè)校園游覽,并且能夠較為良好的與虛擬校園系統(tǒng)進(jìn)行交互。
參考文獻(xiàn):
[1] 王弘智,王哲.虛擬現(xiàn)實(shí)技術(shù)發(fā)展與應(yīng)用[J].福建電腦,2016,32(2):99-100.
[2] 鄒沐昌,代玉仁,單偉.虛擬校園中的場(chǎng)景建模與瀏覽的若干問題的研究[J].工程圖學(xué)報(bào)(增刊),2001,40(8)563-564.
[3] 譚云蘭,賈金元,張晨,等.3D樹木建模技術(shù)研究與進(jìn)展[J].中國(guó)圖像圖形學(xué)報(bào),2013,18(11):1520-1528.
[4] 王豫峰,韓璞,王華彬.基于A*算法的游戲?qū)降脑O(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2011,7(30):7450-7451.
[5] 潘軍,劉長(zhǎng)江,張?jiān)婇?虛擬環(huán)境中實(shí)時(shí)天空?qǐng)鼍暗纳裳芯縖J].信息技術(shù)與信息化,2014,20(11):63-64.