VRML是虛擬現(xiàn)實(shí)建模語(yǔ)言,是一種三維造型和渲染的圖形描述語(yǔ)言,通過(guò)創(chuàng)建一個(gè)虛擬場(chǎng)景以模擬現(xiàn)實(shí)中的環(huán)境效果,可以在網(wǎng)絡(luò)中創(chuàng)建逼真的三維虛擬場(chǎng)景,它改變了網(wǎng)絡(luò)上2D畫(huà)面的狀態(tài),實(shí)現(xiàn)了3D動(dòng)畫(huà)效果。
VRML文件主要由節(jié)點(diǎn)、事件、場(chǎng)景、原型、本和路由等組成。VRML語(yǔ)言是一個(gè)描述性語(yǔ)言,其語(yǔ)法簡(jiǎn)單。但它改變了網(wǎng)絡(luò)與用戶交互的局限性,使得人機(jī)交互更加靈活、方便,使得虛擬世界的真實(shí)性、交互性和動(dòng)態(tài)性得到了更充分的體現(xiàn)。1997年12月制定的VRML97是世界上第一個(gè)在網(wǎng)絡(luò)上發(fā)布的國(guó)際標(biāo)準(zhǔn),該標(biāo)準(zhǔn)基本實(shí)現(xiàn)了虛擬空間的真實(shí)性和實(shí)用性,使得虛擬現(xiàn)實(shí)三維網(wǎng)絡(luò)具備了以下5大特征。
(1)具有強(qiáng)大的網(wǎng)絡(luò)功能,可以將VRML程序直接接入 Internet。
VRML建模語(yǔ)言采用C/S模式的訪問(wèn)方式,其中服務(wù)器提供VRML文件,用戶通過(guò)網(wǎng)絡(luò)下載希望訪問(wèn)的文件,并通過(guò)本地平臺(tái)的瀏覽器( Viewer)對(duì)該文件描述的VR世界進(jìn)行訪問(wèn),即VRML文件中包含了VR世界的邏輯結(jié)構(gòu)信息,瀏覽器依據(jù)這些信息實(shí)現(xiàn)許多的VR功能。由于瀏覽器是本地平臺(tái)提供的,從而實(shí)現(xiàn)了VR的平臺(tái)無(wú)關(guān)性。另外,VRML是基于 ASCII碼的描述性語(yǔ)言,像HTML一樣,可在各種平臺(tái)上通用,具有低數(shù)據(jù)量的特點(diǎn),可在低帶寬的網(wǎng)絡(luò)上運(yùn)行如果VRML在本地運(yùn)行,由于不受網(wǎng)絡(luò)帶寬和傳輸?shù)南拗?,效果更佳?/p>
(2)具有多媒體功能,能夠?qū)崿F(xiàn)多媒體制作。
VRML中的場(chǎng)景由造型組成,而造型則由節(jié)點(diǎn)創(chuàng)建,這些是VRML的構(gòu)件要素單個(gè)節(jié)點(diǎn)可描述造型、顏色、光照、視點(diǎn)以及造型,動(dòng)畫(huà)定時(shí)器傳感器、內(nèi)插器等的定位和朝向等。由于節(jié)點(diǎn)具有多樣性,它們完全可以較好地表述文字、圖形、聲音等 。
(3)可創(chuàng)建三維造型和場(chǎng)景,實(shí)現(xiàn)更好的立體交互界面。
VRML采用了實(shí)時(shí)的3D著色引擎。傳統(tǒng)的VR中使用的實(shí)時(shí)3D著色引擎在VRML中得到了更好的體現(xiàn),這一特性把VR的建模與實(shí)時(shí)訪問(wèn)更明確地隔離開(kāi)來(lái),也是VR不同于三維建模和動(dòng)畫(huà)的地方。后者預(yù)先著色,因而不能提供交互性VRML提供了6+1個(gè)自由度,即3個(gè)方向的移動(dòng)和旋轉(zhuǎn),以及和其他3D空間的超鏈接(Anchor)。
(4)在VRML中實(shí)現(xiàn)了感知功能,可以進(jìn)行用戶與造型之間的動(dòng)態(tài)交互。
在VRML中,要使場(chǎng)景空間具有交互性,可以給一個(gè)造型附帶一個(gè)傳感器,該傳感器使用一個(gè)定點(diǎn)設(shè)備來(lái)感知觀察者的移動(dòng)單擊和拖動(dòng)。當(dāng)觀察者與一個(gè)可感知的造型相互作用時(shí),傳感器就輸出一個(gè)事件,這個(gè)事件就被路由到其他的節(jié)點(diǎn)來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)。
在VRML中,系統(tǒng)感知觀察者接近常使用3種方法,即感知觀察者的可視性、感知觀察者的接近性和通過(guò)碰撞檢測(cè)。
可見(jiàn)傳感器從觀察者的位置和方向來(lái)感知在空間中的一個(gè)長(zhǎng)方體區(qū)域是否可視,設(shè)計(jì)者可以通過(guò)這些傳感器來(lái)啟動(dòng)和停止動(dòng)畫(huà)或者控制其他的動(dòng)作,這些動(dòng)作僅當(dāng)一個(gè)可感知的區(qū)域可見(jiàn)時(shí)才是必要的,通過(guò)給出中心和尺寸,還可以指定一個(gè)由 Visibility Sensor節(jié)點(diǎn)感測(cè)的空間區(qū)域。
碰撞檢測(cè)是檢測(cè)空間中觀察者與造型接近和碰撞的時(shí)間,碰撞節(jié)點(diǎn)檢測(cè)觀察者的碰撞時(shí)完成兩件事,即通過(guò) CollideTime eventOut事件輸出當(dāng)前的絕對(duì)時(shí)間和提示瀏覽器。以上就是VRML場(chǎng)景中的幾種交互方式更為復(fù)雜的交互還可利用Script和 Proto節(jié)點(diǎn)等對(duì)其進(jìn)行功能上的擴(kuò)展,如可利用Java技術(shù)完成這些擴(kuò)展。
(5)具有開(kāi)放性
可擴(kuò)充性是VRML今后發(fā)展和完善的重要特征之一VRML作為一種標(biāo)準(zhǔn),不可能一步到位地長(zhǎng)期滿足未來(lái)網(wǎng)絡(luò)空間所有應(yīng)用的需要。例如,在實(shí)際應(yīng)用中,有的用戶希望應(yīng)用交互性更強(qiáng);有的用戶希望畫(huà)面質(zhì)量更高;有的用戶希望VR世界更復(fù)雜。這些需求往往是相互制約的,同時(shí)也受到用戶平臺(tái)硬件性能的制約,因而VRML是可擴(kuò)充的,即可以根據(jù)需要定義自己的對(duì)象及其屬性,可以通過(guò)Java語(yǔ)言等方式使瀏覽器可以解釋這種對(duì)象及其行為。這一點(diǎn)保證了VRML能夠不斷更新和發(fā)展。
內(nèi)容來(lái)源:喻曉和《虛擬現(xiàn)實(shí)技術(shù)基礎(chǔ)教程第2版》