虛擬校園漫游系統(tǒng)優(yōu)化算法研究
虛擬現(xiàn)實(shí) (virtual reality,VR)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)系統(tǒng),是指利用高性能的計(jì)算機(jī)生成逼真的視、聽、觸、嗅覺等一體化的虛擬環(huán)境,用戶借助必要的專用設(shè)備(如數(shù)據(jù)手套、頭盔)以 自然的方式與虛擬環(huán)境中的虛擬對(duì)象進(jìn)行實(shí)時(shí)交互,相互作用,相互影響,從而產(chǎn)生身臨其境的感覺.
近年來,隨著計(jì)算機(jī)硬件技術(shù)的加速發(fā)展,虛擬現(xiàn)實(shí)技術(shù)在建筑環(huán)境實(shí)時(shí)漫游中的應(yīng)用成為人們關(guān)注的熱點(diǎn).虛擬校園漫游是城市規(guī)劃應(yīng)用的基本功能之一,構(gòu)造一個(gè)虛擬校園漫游系統(tǒng),必須綜合應(yīng)用計(jì)算機(jī)圖形技術(shù)、多媒體技術(shù)、傳感器技術(shù)、顯示技術(shù)以及網(wǎng)絡(luò)技術(shù)等多種計(jì)算機(jī)領(lǐng)域的最新技術(shù).文中根據(jù)第 2炮兵士官學(xué)校規(guī)劃設(shè)計(jì),應(yīng)用虛擬現(xiàn)實(shí)技術(shù)開發(fā)了基于桌面系統(tǒng)的“虛擬校園實(shí)時(shí)漫游系統(tǒng)”,該系統(tǒng)以中檔 Pc機(jī)為硬件平臺(tái),對(duì)實(shí)時(shí)漫游系統(tǒng)的各種優(yōu)化算法進(jìn)行了深入研究。
1? 系統(tǒng)總體結(jié)構(gòu)
為了保證整個(gè)場(chǎng)景能順利、流暢地在普通高檔微機(jī)上運(yùn)行,同時(shí)達(dá)到實(shí)時(shí)漫游的功能,保證其安全、可靠地運(yùn)行,按照任務(wù)側(cè)重點(diǎn)的不同,可將整個(gè)系統(tǒng)分解成場(chǎng)景模型子系統(tǒng)、漫游引擎子系統(tǒng)、輸入子系統(tǒng) 、渲染輸 出子系統(tǒng)等,它們?cè)诠δ苌舷鄬?duì)獨(dú)立,通過數(shù)據(jù)接口相互聯(lián)系,其總體結(jié)構(gòu)如圖 1所示.
2 模型及貼圖的優(yōu)化
2.1? 三維復(fù)雜模型結(jié)構(gòu)的優(yōu)化
虛擬校園中有許多復(fù)雜結(jié)構(gòu)模型,如果模型數(shù)據(jù)庫中多邊形數(shù) 目超過系統(tǒng)的計(jì)算能力,在虛擬場(chǎng)景中漫游時(shí)幀處理將無法及時(shí)完成,場(chǎng)景變換的平滑性會(huì)受到破壞? .為了提高運(yùn)行系統(tǒng)的實(shí)時(shí)性,必須對(duì)模型進(jìn)行簡(jiǎn)化處理,以減少數(shù)據(jù)庫的多邊形開銷,從下面幾個(gè)方面對(duì)模型進(jìn)行簡(jiǎn)化:
1)使用 LOD表達(dá)復(fù)雜結(jié)構(gòu)模型.虛擬校園中有許多復(fù)雜模型必須用 LOD來表達(dá),以使運(yùn)行系統(tǒng)中的多邊形數(shù)控制在預(yù)算之內(nèi),有利于提高運(yùn)行系統(tǒng)的實(shí)時(shí)性.
2)用紋理代替多邊形表達(dá)結(jié)構(gòu)細(xì)節(jié).紋理映射能夠在不增加多邊形數(shù)目的前提下提高場(chǎng)景表達(dá)的詳實(shí)程度,用 LOD模型配合一定細(xì)節(jié)程度的紋理來代替多邊形模型會(huì)大大降低系統(tǒng)的繪制負(fù)載.
3)刪除冗余多邊形.刪除數(shù)據(jù)庫中的冗余多邊形可以在一定程度上減少系統(tǒng)中的多邊形數(shù)量,這些多邊形可能是模型內(nèi)部的細(xì)節(jié)結(jié)構(gòu),某些多邊形的背面可能是位于某平面上的模型的底面,如地面上內(nèi)部不需漫游的房屋的底面等.可以用 3DSMAX中的 Optimize修飾器進(jìn)行簡(jiǎn)化 ,主要用于減少模型的面數(shù).值得注意的是,Optimize必須在貼圖之前進(jìn)行,否則貼圖會(huì)發(fā)生扭曲.
4)移除多邊形的背面.虛擬校園環(huán)境中組成絕大多數(shù)模型的多邊形都是單面可見,3DSMAX能 自動(dòng)剔除多邊形的背面,僅顯示其前面,虛擬校園環(huán)境中除構(gòu)成樹木模型之外的絕大多數(shù)多邊形都是單面可見的.為減輕系統(tǒng)的運(yùn)行負(fù)載,提高渲染速度,如果多邊形是單面可見,應(yīng)確保其狀態(tài)沒被設(shè)定為 2side.
2.2 紋理映射優(yōu)化
虛擬校園中所使用的紋理是用數(shù)碼相機(jī)拍攝景物表面細(xì)節(jié)獲得的數(shù)字圖像來離散定義的,之后用3 DSMAX的紋理工具進(jìn)行紋理映射和對(duì)紋理進(jìn)行編輯? ;但系統(tǒng)中紋理的大小、數(shù)量和分辨率受運(yùn)行系統(tǒng)中紋理存儲(chǔ)空間的限制.所以為了在不降低模擬真實(shí)性的前提下,使紋理占據(jù)的系統(tǒng)資源(如存儲(chǔ)空間)盡可能少,必須對(duì)紋理數(shù)據(jù)進(jìn)行優(yōu)化,以提高系統(tǒng)的運(yùn)行實(shí)時(shí)性.
從以下幾個(gè)方面對(duì)紋理數(shù)據(jù)進(jìn)行優(yōu)化:
1)紋理大小的合理確定.紋理大小應(yīng)根據(jù)圖形加速卡性能、運(yùn)行系統(tǒng)的內(nèi)存及人的視覺生理特性等合理確定.為有效節(jié)省內(nèi)存,虛擬校園中所用紋理多數(shù)是512×512或更?。叻直媛实募y理只有當(dāng)虛擬場(chǎng)景需近距離觀看時(shí)才使用.
2)紋理內(nèi)部格式分辨率的優(yōu)化配置.紋理內(nèi)部格式分辨率決定了如何改變紋理數(shù)據(jù)各顏色分量的字節(jié)配置,以得到不同格式紋理在諸如性能、效率或圖像質(zhì)量等方面的不同效果.虛擬校園中的紋理數(shù)據(jù)做了如下的優(yōu)化處理:為節(jié)省內(nèi)存 ,將源數(shù)據(jù)采集效果較好 的多數(shù) RGB文件 內(nèi)部 格式分 配為 TX— RGB一5,RGBA文件的內(nèi)部格式分配為 TX—RGBA一4;有些紋理數(shù)據(jù)因?yàn)椴杉Ч焕硐?,為保證圖像質(zhì)量,將其內(nèi)部格式設(shè)定為 TX—RGB一12.
3)子紋理的運(yùn)用.虛擬校園中有些表面的紋理細(xì)節(jié)差別較小,如不同路段的路面紋理等,采用子紋理進(jìn)行處理,既避免了明顯的雷同,又節(jié)省了內(nèi)存.[
3? 漫游引擎子系統(tǒng)的優(yōu)化
3.1? 建立一個(gè)好 的層次結(jié)構(gòu)庫
由于建立的模型的各個(gè)部分在層次圖中分別對(duì)應(yīng)一塊面板,實(shí)時(shí)漫游系統(tǒng)將通過層次結(jié)構(gòu)圖來展示數(shù)據(jù)庫組成,一個(gè)有序的、有條理的層次結(jié)構(gòu)圖將使您的模型在實(shí)時(shí)漫游系統(tǒng)中以最快的速度和最正確的方式顯示出來.層次結(jié)構(gòu)庫也是一個(gè)可視化的數(shù)據(jù)結(jié)構(gòu)庫.這種結(jié)構(gòu)像一棵倒立的大樹,根在最上面,樹枝、樹葉在下面.它將展示出模型的結(jié)構(gòu)組織,各個(gè)組成部分以小面板的形式按照一種或多種樹形結(jié)構(gòu)排列,這樣的方式十分有利于模型的修改.通過在層次結(jié)構(gòu)圖中用鼠標(biāo)點(diǎn)擊并拖動(dòng)小面板來編輯任意一個(gè)面,例如,單擊便可編輯視圖中的任一模型結(jié)構(gòu)體,雙擊便可得到或修改結(jié)構(gòu)體的屬性.而且由于面在組中或?qū)嶓w中時(shí)按從左到右的順序排列,如果其中有一部分是按錯(cuò)誤的順序排列,可以左移或右移面板來調(diào)整它們的順序.在顯示時(shí),對(duì)于任意一點(diǎn),Z—buffer將計(jì)算這一點(diǎn)附近所有物體到屏幕的距離 ,最近的物體的顏色將被賦給這一點(diǎn),從而防止在建立面時(shí)需要對(duì)面進(jìn)行轉(zhuǎn)換或排序.另外,好的層次結(jié)構(gòu)庫能夠更加方便地用于場(chǎng)景的挑選.換句話說,此虛擬場(chǎng)景結(jié)構(gòu)可以根據(jù)當(dāng)前視點(diǎn)來挑選場(chǎng)景中的哪一部分是可以看到的.在渲染開始時(shí),對(duì)不可視的幾何體元素不予處理,從而加強(qiáng)虛擬現(xiàn)實(shí)場(chǎng)景的渲染階段的性能.
3.2 立體顯示技術(shù)
立體顯示對(duì)于實(shí)現(xiàn)虛擬現(xiàn)實(shí)的沉浸感是十分重要的,對(duì)立體顯示的圖像可以通過頭盔、液晶光閥眼鏡等觀察獲得沉浸感.立體視覺模型要求對(duì)2個(gè)視點(diǎn)分別進(jìn)行計(jì)算,生成左眼和右眼視圖.這時(shí)需要2個(gè)投影 中心.根據(jù)投影面、人眼以及觀察對(duì)象之間的相對(duì)位置,可有負(fù)視差、正視差之分.下面以負(fù)視差為例,根據(jù)透視原理進(jìn)行如下推導(dǎo)計(jì)算:設(shè)2眼距離為2 half—eye,若將之間的線段的中點(diǎn)定義為坐標(biāo)系的原點(diǎn),該線段位于中軸上,軸與投影平面垂直,使用右手系建立一個(gè)三維坐標(biāo)系.2眼的坐標(biāo)分別為(half-eye,0,0)、(一half-eye,0,0),設(shè)物體點(diǎn)坐標(biāo)為,物體離視點(diǎn)的距離是 0distance,投影平面距視點(diǎn)的距離為.從 2眼分別看該物體投影點(diǎn),在投影平面上該物體投影點(diǎn)的坐標(biāo)分別為:其中 為了方便計(jì)算投影點(diǎn)的坐標(biāo),選用右眼的位置作坐標(biāo)原點(diǎn),經(jīng)計(jì)算可得到
同理可得到? ,Y .當(dāng)計(jì)算左畫面時(shí),r? 為正值;計(jì)算右畫面時(shí),rhalf-eye為負(fù)值.產(chǎn)生出立體圖像對(duì)以后,使用頭盔或立體眼鏡觀察時(shí)讓每只眼睛只能看到立體圖像對(duì)中的一幅圖像,這樣就能給人以立體的感受.
3.3 紋理映射技術(shù)
紋理映射技術(shù)是近幾年來發(fā)展最快的技術(shù)之一,廣泛應(yīng)用 于三維真實(shí)感 圖形 的生成與顯 示中…J.運(yùn)用紋理映射可以方便地制作真實(shí)感圖形而不用花更多的時(shí)間去考慮物體的表面細(xì)節(jié) ,紋理映射的本質(zhì)是對(duì)三維物體進(jìn)行二維參數(shù)化,即先求得三維物體表面上任一點(diǎn)的二維參數(shù)值,進(jìn)而得到該點(diǎn)的紋理值,最終生成三維圖形表面上的紋理圖案.在光滑曲面上添加紋理圖案的核心問題是映射,因此紋理問題可以簡(jiǎn)化為從一個(gè)坐標(biāo)系到另一個(gè)坐標(biāo)系的變換.其中至少涉及 2個(gè)映射,一個(gè)是從紋理空間到景物空間,有時(shí)也稱為曲面參數(shù)化;第 2個(gè)映射是從景物空間到圖像(屏幕)空間,即取景變換.通常,這2個(gè)變換被合成為一個(gè)變換.下面講述如何在繪制三維場(chǎng)景時(shí)使用紋理映射技術(shù).
1)大環(huán)境——天空盒.
虛擬校園中,首先要構(gòu)建大環(huán)境——天空,在一些三維建摸軟件如 3D MAX或者 Maya中,通常使用天空盒來表現(xiàn)天空景象,如晴朗的白天、燈光絢爛的夜晚等,天空盒的模型可以使用一個(gè)半球體,通過對(duì)半球體的內(nèi)表面進(jìn)行紋理貼圖來表現(xiàn)天空環(huán)境.但這種模型在進(jìn)行貼圖時(shí)容易出現(xiàn)球體兩扳處的走樣.為了避免這種情況,使用立方體(去捧底面)模型來模擬天空.
2)真實(shí)感地形的繪制.
真實(shí)感地形的繪制分為地形模型映射以及真實(shí)感地形生成 2部分,地形模型映射就是把數(shù)字形式的地形數(shù)據(jù)轉(zhuǎn)換成 multigen公司的 vega系統(tǒng)的基本格式,并計(jì)算相關(guān)的參數(shù)(頂點(diǎn)和法向量等)的過程.首先把數(shù)字地形模型轉(zhuǎn)成 vega原語 ,以生成 vega可識(shí)別的原語序列 ,vega不僅提供了點(diǎn)、線、多邊形等建模原語 ,而且通過這些原語還可把地形模型數(shù)據(jù)表示成典型原語序列、線型原語序列及多邊形原語序列.由于 vega要求多邊形必須是凸多邊形因此在軟件實(shí)現(xiàn)中采用了三角面原語序列表達(dá)地形模型.由于 vega不直接計(jì)算每個(gè)頂點(diǎn)的法向量,因此若需獲得較佳的視覺效果或模擬特殊的地景,在轉(zhuǎn)換成 Vega的三角面串序列時(shí),就需為每一個(gè)頂點(diǎn)計(jì)算出它的法向量;且所有頂點(diǎn)的法向量應(yīng)保持一致 ,否則有的三角面將不可見.取每個(gè)頂點(diǎn)的法矢量為圍繞該頂點(diǎn)所有三角面的法向量的平均值,這樣可以實(shí)現(xiàn)地形的平滑效果.真實(shí)感地形是指通過對(duì)地形進(jìn)行透視投影、消隱等操作后生成像照片那樣的黑白圖像或彩色圖像,產(chǎn)生出虛擬效果.通過 vega的紋理映射技術(shù)將地貌圖片與數(shù)字地形進(jìn)行融合,從而提高地形的表現(xiàn)力.
4? 結(jié)? 論
目前國(guó)外基于桌面的實(shí)時(shí)漫游系統(tǒng)報(bào)道較少,許多成熟的產(chǎn)品基本上都是采用的全景圖和簡(jiǎn)單的場(chǎng)景.本系統(tǒng)是使用桌面系統(tǒng)實(shí)現(xiàn)了虛擬校園的實(shí)時(shí)漫游并且造價(jià)低廉 ,所采用的優(yōu)化算法具有以下優(yōu)點(diǎn):
1)對(duì)紋理影射進(jìn)行了優(yōu)化,使實(shí)時(shí)繪制過程中的計(jì)算量少,效果幾乎沒有損失.
2)優(yōu)化后 的虛擬現(xiàn)實(shí)引擎占用很少內(nèi)存,為實(shí)現(xiàn)微機(jī)上的虛擬校園漫游系統(tǒng)提供了基礎(chǔ).通過實(shí)例測(cè)試證明算法能有效地對(duì)桌面虛擬現(xiàn)實(shí)漫游引擎實(shí)施了改造,使之運(yùn)行在普通桌面系統(tǒng)上,繪制后的效果不僅保留了原來模型的特征,還能滿足實(shí)時(shí)漫游的需求.
評(píng)論
查看更多