方 偉
(淮北職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)科學(xué)技術(shù)系,安徽 淮北 235000)
隨著VRML技術(shù)的不斷成熟和發(fā)展,VRML已經(jīng)被廣泛的應(yīng)用于人類的生產(chǎn)和生活當(dāng)中,特別是利用互聯(lián)網(wǎng)進(jìn)行VRML場(chǎng)景信息的傳遞和顯示,讓人們可以足不出戶就能夠享受極富真實(shí)感的三維世界。可以說(shuō)VRML的出現(xiàn)徹底改變了傳統(tǒng)網(wǎng)絡(luò)信息的展示方法,使整個(gè)虛擬世界不僅增強(qiáng)了虛擬世界的真實(shí)感,而且能夠與用戶之間形成較為復(fù)雜的交流互動(dòng)行為。但是伴隨著虛擬場(chǎng)景模型復(fù)雜程度的不斷提高和技術(shù)應(yīng)用領(lǐng)域的不斷深入,使得利用VRML制作出來(lái)的虛擬場(chǎng)景在進(jìn)行網(wǎng)絡(luò)傳輸時(shí)也遇到了一些迫切需要解決的問(wèn)題,諸如程序代碼偏大,模型自身體積過(guò)大造成客戶端場(chǎng)景渲染速度過(guò)慢以及交互功能不足等。解決這些問(wèn)題的關(guān)鍵就是對(duì)VRML場(chǎng)景模型進(jìn)行必要的優(yōu)化,盡量減少模型文件占用的空間和復(fù)雜程度,提高VRML場(chǎng)景在網(wǎng)絡(luò)中傳輸?shù)姆€(wěn)定性和顯示速度。
VRML實(shí)際上是一種用于對(duì)三維虛擬場(chǎng)景進(jìn)行建模的描述性語(yǔ)言,能夠有效的將三維圖形、二維圖形以及其它一些多媒體影音元素整合在一起,開(kāi)發(fā)出基于WWW的三維動(dòng)態(tài)交互式網(wǎng)站,是目前虛擬技術(shù)中最為核心和應(yīng)用最為廣泛的一項(xiàng)技術(shù)。VRML文檔一般是由四個(gè)部分組成:VRML 文件頭、原型、場(chǎng)景圖(ScenceGraph)、路由(Route)[1]。而形成這四個(gè)部分最為重要和核心的元素是節(jié)點(diǎn)(Node)。節(jié)點(diǎn)是VRML最基本的單位,可以說(shuō)虛擬場(chǎng)景中所有模型的創(chuàng)建以及其它外部標(biāo)準(zhǔn)格式文件的引入等都是通過(guò)節(jié)點(diǎn)來(lái)去完成。構(gòu)建虛擬場(chǎng)景文檔節(jié)點(diǎn)首先通過(guò)自身的語(yǔ)義規(guī)則構(gòu)建虛擬場(chǎng)景的整個(gè)內(nèi)部結(jié)構(gòu)圖;然后利用場(chǎng)景圖中的相應(yīng)節(jié)點(diǎn)從視覺(jué)和聽(tīng)覺(jué)的角度去表現(xiàn)相對(duì)靜止的對(duì)象,這些節(jié)點(diǎn)是根據(jù)模型的層次體系進(jìn)行組織,體現(xiàn)了整個(gè)虛擬環(huán)境的空間結(jié)構(gòu)關(guān)系;最終再通過(guò)具有事件和路由功能的節(jié)點(diǎn)完成場(chǎng)景中的動(dòng)態(tài)效果,也就是形成路由圖,確定虛擬環(huán)境隨時(shí)間推移動(dòng)態(tài)變化效果。
VRML文檔最終的解釋和執(zhí)行是通過(guò)瀏覽器來(lái)完成,這與傳統(tǒng)顯示HTML頁(yè)面的方式和原理是相同的,只不過(guò)在顯示VRML時(shí)瀏覽器要安裝相應(yīng)插件。VRML的工作方式是基于客戶/服務(wù)器模式,由服務(wù)器提供VRML文件及場(chǎng)景中所需的多媒體資源,客戶端通過(guò)網(wǎng)絡(luò)請(qǐng)求下載希望訪問(wèn)的文檔,最后由本地平臺(tái)上的瀏覽器生成VRML描述的虛擬世界,并可以進(jìn)行交互式的瀏覽操作。由于瀏覽器是本地平臺(tái)提供,從而實(shí)現(xiàn)了VRML的平臺(tái)無(wú)關(guān)性[2]5-7。
對(duì)于較為復(fù)雜的模型,如果過(guò)多的利用點(diǎn)、線、面對(duì)其進(jìn)行描述和刻畫(huà),勢(shì)必要增加模型文件占用空間的大小,也不利于文件的網(wǎng)絡(luò)傳輸和實(shí)時(shí)渲染。因此,在創(chuàng)建模型時(shí)通常都采用最基本的造型(Box、Sphere、Cone等)來(lái)去構(gòu)建模型的大致輪廓,然后利用材質(zhì)貼圖的方法對(duì)模型細(xì)節(jié)進(jìn)行表現(xiàn)。這樣不僅能夠使模型獲得更加逼真的視覺(jué)效果,而且減少了文件的大?。?]35-37。當(dāng)然,這里所利用的材質(zhì)貼圖也不應(yīng)過(guò)大,一般不應(yīng)大于20K字節(jié),因?yàn)樵赩RML文件進(jìn)行網(wǎng)絡(luò)傳輸時(shí)貼圖文件的傳輸和下載必然要占用網(wǎng)絡(luò)的帶寬和資源,同時(shí),在客戶端瀏覽場(chǎng)景時(shí)經(jīng)常會(huì)變化視覺(jué)的角度,角度一旦變化場(chǎng)景就會(huì)重新進(jìn)行計(jì)算和渲染,這個(gè)過(guò)程就包括貼圖。因此,可以充分利用紋理貼圖的可重復(fù)性和可延展性,盡量使用小紋理代替大紋理文檔,減少貼圖文件的加載和處理時(shí)間。另外,對(duì)于一些遠(yuǎn)景或次要模型,可通過(guò)與Billboard節(jié)點(diǎn)結(jié)合,將模型通過(guò)紋理構(gòu)成幾何體,從而最大可能的縮小VRML模型文件占用的空間和復(fù)雜程度。
在場(chǎng)景中許多模型都有許多的共同點(diǎn)和相似性,他們的外形一致,只是在場(chǎng)景中的位置擺放不同,我們可以把這些對(duì)象先用DEF去定義,在后期的引入過(guò)程中通過(guò)USE來(lái)去完成,這樣就能避免代碼的重復(fù)。PROTO是在VRML規(guī)范上擴(kuò)展的新的節(jié)點(diǎn)集的機(jī)制,主要針對(duì)功能相同但屬性不同的模型對(duì)象。通過(guò)PROTO可以對(duì)幾何體、屬性、操作或他們的集合進(jìn)行封裝和參數(shù)化,后面設(shè)計(jì)過(guò)程中就可以直接使用它,并傳入一定的域值作為改變對(duì)象的參 數(shù)[4]57-59。VRML 還 支 持 外 部 原 型 (EXTERPROTO),利用VRML中的URL域值進(jìn)行不同VRML文件之間原型的相互調(diào)用,這樣可以提高模型的模塊化特性和可重用性。
VRML文檔中引入了許多圖像、音頻、視頻等多媒體文件,這些文件經(jīng)過(guò)有效的壓縮以后就可以大大減小VRML檔的大小。當(dāng)然我們的壓縮原則是一定要保證被壓縮文件不失真,否則就無(wú)法確保模型的逼真度。除了對(duì)VRML文檔素材可以進(jìn)行壓縮外,還可以對(duì)VRML本身進(jìn)行有效壓縮,壓縮后可以使模型文件體積進(jìn)一步縮小,減少對(duì)網(wǎng)絡(luò)帶寬的要求。目前實(shí)現(xiàn)這種壓縮過(guò)程比較流行的方法是通過(guò)VRMLPad中的Publish命令或是GZIP壓縮技術(shù),一般都可以將模型文件大小縮小數(shù)倍,大大減少了網(wǎng)絡(luò)傳輸時(shí)間,提高傳輸效率。
LOD節(jié)點(diǎn)能夠根據(jù)用戶視點(diǎn)的遠(yuǎn)近和范圍,動(dòng)態(tài)的裝載復(fù)雜程度不同的場(chǎng)景。客戶端在進(jìn)行虛擬場(chǎng)景的瀏覽時(shí),經(jīng)常會(huì)變化視覺(jué)角度,當(dāng)角度轉(zhuǎn)變時(shí)虛擬場(chǎng)景就必須要進(jìn)行再一次的渲染和加載,這樣就會(huì)造成系統(tǒng)資源的浪費(fèi)以及瀏覽速度的降低。實(shí)際上當(dāng)瀏覽者的角度距場(chǎng)景造型較遠(yuǎn)時(shí),對(duì)場(chǎng)景的表現(xiàn)細(xì)節(jié)程度要求就不那么高了。因此我們可以對(duì)物體創(chuàng)建具有不同層次細(xì)節(jié)的模型,通??煞譃榈图?xì)節(jié)模型、一般細(xì)節(jié)模型和高層次細(xì)節(jié)模型。當(dāng)用戶在進(jìn)行瀏覽時(shí),如果視點(diǎn)距場(chǎng)景模型較遠(yuǎn),調(diào)用低細(xì)節(jié)模型,只顯示物體大致輪廓;視點(diǎn)較近時(shí),才調(diào)用高層次細(xì)節(jié)模型,以清晰表現(xiàn)物體的細(xì)微特征,既保證了模型的逼真度,又加快了場(chǎng)景的渲染和顯示速度[5]7-10。LOD節(jié)點(diǎn)有三個(gè)域:分別是Center、Range和Level。Center域值說(shuō)明視點(diǎn)中心的三維坐標(biāo),Range域值說(shuō)明視點(diǎn)的變化范圍,Level通過(guò)與Inline節(jié)點(diǎn)配合完成對(duì)場(chǎng)景文件的調(diào)用和顯示。
一個(gè)大型的虛擬場(chǎng)景表現(xiàn)需要將若干個(gè)VRML文檔進(jìn)行有效的連接和整合,單獨(dú)依靠某一個(gè)單獨(dú)的VRML文件表示,不僅加大了虛擬系統(tǒng)開(kāi)發(fā)和調(diào)試的難度,而且會(huì)大大降低模型的加載和渲染速度,經(jīng)常會(huì)產(chǎn)生一些不可預(yù)測(cè)的錯(cuò)誤[6]109-112。VRML中通過(guò)利用Inline(內(nèi)聯(lián)節(jié)點(diǎn))來(lái)解決虛擬場(chǎng)景的整合問(wèn)題。首先將復(fù)雜的虛擬場(chǎng)景分解成若干個(gè)較小和較為簡(jiǎn)單的小文件,然后分別進(jìn)行模型的設(shè)計(jì)和調(diào)試,最后構(gòu)建主場(chǎng)景時(shí)只需在要引入模型的位置處通過(guò)Inline節(jié)點(diǎn)指出模型文件所在的地址和文件名即可。這種優(yōu)化方法可以使整個(gè)場(chǎng)景在客戶端顯示時(shí)進(jìn)行分階段的渲染和下載,提高了場(chǎng)景的執(zhí)行效率。
真實(shí)場(chǎng)景中,我們是無(wú)法實(shí)現(xiàn)對(duì)物體的穿越等情況。因此當(dāng)用戶在虛擬場(chǎng)景中進(jìn)行漫游操作時(shí),有必要對(duì)場(chǎng)景模型進(jìn)行必要的碰撞檢測(cè),避免發(fā)生穿墻而過(guò)等與現(xiàn)實(shí)不符的情況,以提高虛擬環(huán)境的真實(shí)可靠性。但是當(dāng)場(chǎng)景中引入碰撞檢測(cè)機(jī)制后,會(huì)產(chǎn)生一系列的檢測(cè)運(yùn)算和判斷過(guò)程,占用了CPU的大量資源,導(dǎo)致系統(tǒng)加載漫游速度變慢。針對(duì)這種情況,通常采取以下兩種方法解決:一是場(chǎng)景設(shè)計(jì)時(shí)盡量減少碰撞檢測(cè)的次數(shù),只針對(duì)有可能發(fā)生穿越的物體引入碰撞檢測(cè);二是針對(duì)場(chǎng)景模型不同的特征和作用使用不同的碰撞檢測(cè)算法,提高檢測(cè)效率。通過(guò)以上方法處理后,有效地提高了視景屏幕的刷新率,縮短了碰撞檢測(cè)時(shí)間,加快了視景碰撞的響應(yīng)速度,提供了優(yōu)秀的視覺(jué)仿真效果[7]42-44。
一個(gè)功能完善和逼真度高的VRML場(chǎng)景從最初的建模到最后的終端顯示,其中主要包括了模型的構(gòu)建、場(chǎng)景從服務(wù)器端到用戶端的傳輸、場(chǎng)景在用戶端的渲染顯示這樣三個(gè)環(huán)節(jié)。因此VRML采取的主要優(yōu)化技術(shù)都來(lái)源于這三個(gè)過(guò)程中涉及到的一些節(jié)點(diǎn)、素材、算法等基本元素,通過(guò)對(duì)他們進(jìn)行改進(jìn)和優(yōu)化,最大限度的減少VRML中的冗余代碼和場(chǎng)景中多余的數(shù)據(jù)信息,增強(qiáng)虛擬場(chǎng)景的執(zhí)行效率,呈現(xiàn)給用戶一個(gè)逼真度高而且交互能力強(qiáng)的三維網(wǎng)絡(luò)世界。
[1]嚴(yán)子祥.VRML虛擬現(xiàn)實(shí)網(wǎng)頁(yè)語(yǔ)言[M].北京:清華大學(xué)出版社,2001.
[2]肖龍,劉曉環(huán),寧芋.虛擬現(xiàn)實(shí)技術(shù)一 VRML[J].微型電腦應(yīng)用,2001,17(10).
[3]朱世昕,陳立潮.虛擬現(xiàn)實(shí)中的場(chǎng)景建模及模型優(yōu)化技術(shù)[J].電腦開(kāi)發(fā)與應(yīng)用,2005,18(11).
[4]杜玉玲,文西芹.基于B/S模式的遠(yuǎn)程虛擬實(shí)驗(yàn)室的開(kāi)發(fā)[J].現(xiàn)代教育技術(shù),2004,14(2).
[5]薛彥兵.較大規(guī)模VRML場(chǎng)景實(shí)時(shí)顯示與交互技術(shù)的研究[D].天津:天津理工大學(xué)計(jì)算機(jī)與通信工程學(xué)院,2005.
[6]買桂英.VRML虛擬場(chǎng)景優(yōu)化策略[J].工業(yè)儀表與自動(dòng)化裝置,2011(5).
[7]楊建菊.基于VRML的虛擬校園漫游系統(tǒng)研究[D].貴州:貴州大學(xué)計(jì)算機(jī)與信息科學(xué)學(xué)院,2010.