基本结构
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浏览器会将注释行和空行一起忽略掉。2
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节点。2