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