鄒珺
摘 要:VRML是網(wǎng)絡上使用的三維形體和交互環(huán)境的場景描述語言,支持一切用于建立虛擬世界的所具有的特性,基本目標是建立互聯(lián)網(wǎng)上的交互式三維媒體。本文主要描述VRML的基本技術、基本特性,綜合XML和VRML技術的X3D及VRML所面臨的挑戰(zhàn)。
關鍵詞:VRML;三維;交互;虛擬;X3D
中圖分類號:TP312 文獻標識碼:A
1 引言(Introduction)
VRML(虛擬現(xiàn)實建模語言)是一種用于建立真實世界的場景模型或虛擬的三維世界的場景建模語言,也是目前網(wǎng)絡上基于WWW的三維互動網(wǎng)站制作的主流語言,即面向Web又面向對象,屬于解釋性語言[1]。
2 VRML的基本技術(Basic technology of VRML)
VRML是專為WWW而設計的三維圖像置標語言,其標準中定義了用來描述三維模型的編碼格式和交互或腳本的編碼及行為模式。用文本描述的信息在網(wǎng)絡上的傳輸比圖形文件迅速,把一些復雜的任務交給本機處理,能在一定程度上減輕網(wǎng)絡服務器的負擔。由于該工作機制,VRML在網(wǎng)絡應用中已經(jīng)有很快的發(fā)展。
2.1 VRML的節(jié)點結構
VRML把虛擬世界看作成一個“場景”,而場景中的每一個實體都看作節(jié)點。VRML提供53種節(jié)點,主要包含造型節(jié)點、聲音節(jié)點、光源節(jié)點、傳感器節(jié)點、編組節(jié)點等。通常一個節(jié)點有四種特征:節(jié)點名、域名、域值和域值類型。節(jié)點大致可分為形體節(jié)點、屬性節(jié)點和組節(jié)點三大類。每一類又包含若干不同的類型,每一類型有不同的功能。域是節(jié)點包含的參數(shù),事件是節(jié)點參數(shù)的傳遞[2]。
2.2 VRML的事件體系
節(jié)點主要由事件和域組成,事件使節(jié)點不僅能夠接收外界的信息,而且能和外界傳遞信息。域的取值決定了節(jié)點的取值和場景的狀態(tài),節(jié)點通過事件入口接收事件,通過事件出口發(fā)送事件。路由是兩個不同的節(jié)點通過事件入口和出口傳遞事件的通道,通過路由把不同的節(jié)點聯(lián)系起來組成了事件體系。事件體系的事件流程如圖1所示。
圖1 事件體系的事件流程
Fig.1 The flow of events of the event system
VRML由一系列包含對象的形狀和描述信息的節(jié)點來組建場景,每個節(jié)點完成某一特殊功能。節(jié)點包含一系列的域,主要用來保存定義該功能所需的參數(shù)和數(shù)值。VRML使用父節(jié)點實現(xiàn)場景圖的層次,它的人機交互功能建立在事件的基礎之上,場景節(jié)點通過事件入口來接收事件,通過事件出口發(fā)送事件,節(jié)點間的事件通路由路由指定[3]。
3 VRML的基本特性(Basic characteristics of
VRML)
3.1 基于ASCⅡ碼的低帶寬可行性
VRML像HTML一樣,用ASCⅡ碼來實現(xiàn)各種場景,在各種平臺上都能使用,同時降低了數(shù)據(jù)流量,即使帶寬很低的網(wǎng)絡上也可以實現(xiàn)。
3.2 改進的實時3D渲染引擎
實時3D渲染引擎在傳統(tǒng)的虛擬現(xiàn)實中曾使用過,但在VRML中有了更好地體現(xiàn)。這個特性把虛擬現(xiàn)實的建模和實時訪問更清晰地隔離開來,這也是虛擬現(xiàn)實與三維建模和動畫的區(qū)別。后者由于事先著色,所以不能提供交互性。VRML提供了6+1個自由度,即三個方向的移動和旋轉,以及與其他3D空間的超鏈接。
3.3 可擴充性
VRML雖然是一種標準,但無法滿足所有應用的需要。有些應用需要交互性很強,有些需要畫面質量更高,有些需要虛擬現(xiàn)實世界更復雜。這些需求一方面相互約束,另一方面受到用戶平臺硬件的約束,所以VRML是可擴展的,可根據(jù)需求定義自己的對象及其屬性,并通過Java語言等方式使瀏覽器可以解釋這種對象及其行為。
Web技術的迅速發(fā)展是VRML97的缺點逐漸暴露出來,VRML發(fā)展也日漸趨緩,已經(jīng)不能滿足人們的實際需求。究其原因主要有:性能表現(xiàn)力上有不足;編程能力束縛其推廣;軟件龐大,造成不必要的性能冗余等[4]。
4 X3D(X3D)
X3D(Extensible 3D)是具有擴充性的三維圖形規(guī)范,它組合XML和VRML技術,使其更適應Web3D發(fā)展的需要。X3D第一版發(fā)布于2002年3月,結合了JAVA、XML、流等先進技術,包含更強大、更高效的3D計算能力、渲染質量和傳輸速率。
X3D主要的目標是:包含VRML97的功能;支持大量的數(shù)據(jù)編碼格式,包括XML;分離數(shù)據(jù)編碼和運行時間結構;增添了新的行為對象、交互對象、繪圖對象;為3D場景提供可選的應用程序接口;組件化,封裝輕量級的核心技術,使其能夠輕易地加入新的功能;允許在不同層次的服務上都能實現(xiàn)X3D規(guī)格;可擴充性,使用組件增加新節(jié)點,而且符合核心技術的運行代碼。為了滿足共享虛擬世界、科學可視化、多媒體再現(xiàn)、工程設計、娛樂、教育、網(wǎng)頁等方面使用的需要,X3D添加了以下的新特性:
(1)三維圖形:多通道/多進程紋理貼圖、多邊形化幾何體、參數(shù)化幾何體、層次變化、光照、質地。
(2)二維圖形:在3D變換層級中顯示2D矢量、平面圖形、文本。
(3)動畫:計時器和時間軸驅動的連續(xù)動畫,人性化動畫和變形。
(4)空間化的音頻和視頻:在場景實體上映射視聽源。
(5)用戶交互:基于鼠標的選取和拖動,鍵盤輸入。
(6)導航:實體在3D場景中的運動、碰撞、近距離和可見性檢測。
5 X3D及VRML所面臨的挑戰(zhàn)(The challenge
which X3D and VRML face)
眾多新的Web3D解決方案應運而生,有些3D軟件標準發(fā)展迅速,并且在某些方面達到或超過了VRML,其中最引人注意的是Java3D和Shockwave3D。
Java在互聯(lián)網(wǎng)上的應用廣泛,同時在三維圖形上具有更顯著的特色。Java的獨有特性是平臺無關性。它只需部分編譯,負責編譯的是Java Virtual Machine(JVM),不同平臺有各自的JVM,用于處理與平臺相關的功能。平臺只要支持JVM,就能運行Java小程序,IE和Netscape都支持JVM。所以使用Java制作的3D圖形幾乎可以在所有的互聯(lián)網(wǎng)瀏覽器上顯示。Java3D的這種“無插件技術”特性,即不需要下載插件,客戶端也能渲染出優(yōu)質的圖形質量,物體動畫的動作流暢自然。
Shockwave3D也是非常有特色的一種實現(xiàn)技術。Shockwave3D是由Intel和Macromedia公司合作開發(fā)的,植入Macromedia Director Studio 8.5中的3D引擎。使用Shockwave3D可靈活地控制三維模型進行各種交互操作,并充分利用Director中的資源制作高品質的動畫,以Shockwave影片格式在網(wǎng)上發(fā)布。Intel的技術使Shockwave3D可以利用OpenGL或DirectX進行硬件加速,并且它還支持骨骼變形動畫和層次細分表面。
另外,Viewpoint、Cult3D由于其畫面生成質量優(yōu)越,在需要高質量畫面生成的產(chǎn)品展示領域具有一定的應用地位。而Adobe Atmosphere在實現(xiàn)所謂的虛擬社區(qū)獨具優(yōu)勢,Pulse3D則在游戲娛樂領域內(nèi)領先[5]。
6 結論(Conclusion)
目前,研究人員已研發(fā)出很多基于VRML的模擬或虛擬系統(tǒng),如動漫、網(wǎng)上教育、建筑群漫游、臨床醫(yī)學演示和虛擬影院等。同時,VRML也引入了某些傳統(tǒng)的協(xié)同設計領域,由于VRML能提供較好的交互性和真實性,在協(xié)同工作中各開發(fā)者之間的交流聯(lián)系變得更直觀自然。
參考文獻(References)
[1] 許愛軍,張文金,易丹.基于VRML的虛擬現(xiàn)實技術及應用[J].計算機與數(shù)字工程,2009(04):33-34.
[2] 王森,等.大規(guī)模VRML虛擬場景的快速瀏覽算法[J].系統(tǒng)仿真學報,2006(01):112-113.
[3] 陳華,陳福民.基于VRML的虛擬場景的設計與實現(xiàn)[J].計算機工程與應用,2002(06):67-68.
[4] 陸亞萍,劉厚泉,王莉.基于X-VRML的虛擬現(xiàn)實場景建模的研究[J].微電子學與計算機,2006(05):52.
[5] 丘威,鐘治初,張立臣.基于VRML的在線虛擬現(xiàn)實場景設計與實現(xiàn)[J].計算機應用與軟件,2007(04):98-99.
作者簡介:
鄒 珺(1981-),女,碩士,講師.研究領域:軟件開發(fā).