基本結構
VRML的檔案特徵是由VRML規範決定的,這種規範的最新版本為VRML2.0(VRML97)。VRML檔案主要包括檔案頭、造型(定義節點和引用節點)、腳本和路由等部分,但不是每一個VRML檔案都必須包括這些部分,只有檔案頭是每個VRML檔案必須的部分。
VRML檔案頭
位於檔案的第一行,且為:
#VRML V2.0 uft8
說明該檔案為符合VRML2.0規範和UFT一8字元集的VRML檔案。
VRML的節點
(1)節點的基本組成:節點是VRML的最基本組成部分,VRML的主要內容是節點的定義和節點的層層嵌套。VRMI。2.0的節點可分為九類:GroupingNodes、Sensors、Appearance、SpecialGroups、Geometry、Interpolators、CommonNodes、Geometryproperties、Bind—ableNo—des。
節點的基本組成如下:
節點的類型名{
域1域1的值
域2域2的值
....
}
節點中域有以下的特點:①無序性。即各域之間不分先後順序。②可選性。即各個域都有自己的省缺值。
此外,域值是有類型的。在VRML中域值的類型包括SFFBool、SFFloat/MF—Float、SFColor/MFColor、SFRotation/MFRotation、SFString/MFString、SFVec2f/ MFVec2f、SFVec3f/MFVec3f、SFInt32/MFInt32、SFImage、SFTime、SFNode/MFNode。其中以SF開頭的是單值類型,而以MF開頭的是多值類型。
(2)節點的定義和引用:在VRML中可以為一個節點定義一個名稱,然後在該檔案的後續部分可以多次引用。這對需要創造多個造型的VRML特別有用。被定義的節點為原始節點,節點的域在原始節點中應已設定,在引用中這些域值不能修改。
路由
路由(Route)的作用是將多個不同的節點綁定在一起,使場景具有動感和互動性。大多數的節點具有輸出接口EnentOut和輸入接口EnentIn。且一些節點通常具有多個不同的輸入和輸出接口。EnentOut和EnentIn也具有一定的數據類型。
路由綁定兩個節點後,被綁定的兩個節點一直處於休眠狀態,直到被觸發時事件可以從一個節點傳遞給另外一個節點。通過多個節點的綁定來創造複雜的路線,以便完成場景中更為複雜的互動。
另外,VRML檔案中包含有注釋行,它是以#開頭的語句。VRML瀏覽器會將注釋行和空行一起忽略掉。
VRML的基本功能
VRML的基本功能主要是通過節點來實現的,這些功能節點如下。
(1)基本幾何造型和外觀控制節點:在VRML中提供的基本幾何造型有長方形、圓柱體、圓錐體和球體,這些幾何造型的外觀通過專門的節點Appearance來控制,包括顏色和紋理等。幾何造型節點和外觀節點組成控制節點(Shape節點)。可見由Shape節點就可以創建出虛擬世界中的單個幾何造型,然後通過Group節點就可以將單個造型節點分組並結合在一起,這樣可以將這些分組節點當作一個整體來進行操作。
(2)文本造型節點:通過Text節點指定的Shape節點的Geometry域,就可以創建出相應的三維文本造型。
(3)空間定位旋轉和縮放節點:在VRML中通過坐標系的平移和旋轉可以創建不同位上和方向上的空間坐標系.然後在新的坐標系中創建空間造型,這樣就完成了對不同位上和方向上的幾何造型的創建。這些功能由Transform節點來完成。
(4)空間背景節點:現實世界的空間會由於雲等原因的影響而顯示出不同的特點,在VRML中是通過Background節點來指定所需空間的背景的。
(5)大氣效果節點:在VRML中通過Fog節點可以創造出現實世界中空間霧的顏色和濃淡效果。
(6)聲音節點:在虛擬現實世界中.音樂分為背景音樂和動作音樂。背景音樂為環境音樂,動作音樂是伴隨著各種動作而發出的聲音。VRML通過AudioClip節點和Sound節點將聲音檔案MIDI和MAV引入虛擬世界中。
(7)光源節點和光照效果:現實世界中存在三種類型的光源(點光源、平行光源和聚光光源),在VRML中可以通過PoimLight節點、DirectionalLight節點和SpotLight節點及其域值的設定分別加以實現。
(8)空間視點控制和瀏覽者控制節點:瀏覽者的空間視點和瀏覽者本身的控制是通過Viewpoint節點和NavigationInfo節點來實現的。Viewpoint節點包括視點的空間位置、空間朝向和視野範圍等;NavigationInfo節點包含了瀏覽者在空間移動的各種參數。
(9)錨節點:在瀏覽器中Anchor編組節點所創建的各種視窗,就可以進入到相應的URL地址上打開新的網頁。
(10)檔案內聯節點:在節點內可以嵌入其他的VRML檔案。
(11)節點控制節點:在VRML中通過Group節點將一組相關的節點組合在一起,形成某個特定的空間場景,以便對其進行整體操作。此外.還有完成轉換編組的Switch節點和完成布告牌編組的Billboard節點。