VRML是虚拟现实建模语言,是一种三维造型和渲染的图形描述语言,通过创建一个虚拟场景以模拟现实中的环境效果,可以在网络中创建逼真的三维虚拟场景,它改变了网络上2D画面的状态,实现了3D动画效果。
VRML文件主要由节点、事件、场景、原型、本和路由等组成。VRML语言是一个描述性语言,其语法简单。但它改变了网络与用户交互的局限性,使得人机交互更加灵活、方便,使得虚拟世界的真实性、交互性和动态性得到了更充分的体现。1997年12月制定的VRML97是世界上第一个在网络上发布的国际标准,该标准基本实现了虚拟空间的真实性和实用性,使得虚拟现实三维网络具备了以下5大特征。
(1)具有强大的网络功能,可以将VRML程序直接接入 Internet。
VRML建模语言采用C/S模式的访问方式,其中服务器提供VRML文件,用户通过网络下载希望访问的文件,并通过本地平台的浏览器( Viewer)对该文件描述的VR世界进行访问,即VRML文件中包含了VR世界的逻辑结构信息,浏览器依据这些信息实现许多的VR功能。由于浏览器是本地平台提供的,从而实现了VR的平台无关性。另外,VRML是基于 ASCII码的描述性语言,像HTML一样,可在各种平台上通用,具有低数据量的特点,可在低带宽的网络上运行如果VRML在本地运行,由于不受网络带宽和传输的限制,效果更佳。
(2)具有多媒体功能,能够实现多媒体制作。
VRML中的场景由造型组成,而造型则由节点创建,这些是VRML的构件要素单个节点可描述造型、颜色、光照、视点以及造型,动画定时器传感器、内插器等的定位和朝向等。由于节点具有多样性,它们完全可以较好地表述文字、图形、声音等 。
(3)可创建三维造型和场景,实现更好的立体交互界面。
VRML采用了实时的3D着色引擎。传统的VR中使用的实时3D着色引擎在VRML中得到了更好的体现,这一特性把VR的建模与实时访问更明确地隔离开来,也是VR不同于三维建模和动画的地方。后者预先着色,因而不能提供交互性VRML提供了6+1个自由度,即3个方向的移动和旋转,以及和其他3D空间的超链接(Anchor)。
(4)在VRML中实现了感知功能,可以进行用户与造型之间的动态交互。
在VRML中,要使场景空间具有交互性,可以给一个造型附带一个传感器,该传感器使用一个定点设备来感知观察者的移动单击和拖动。当观察者与一个可感知的造型相互作用时,传感器就输出一个事件,这个事件就被路由到其他的节点来开始一个动画。
在VRML中,系统感知观察者接近常使用3种方法,即感知观察者的可视性、感知观察者的接近性和通过碰撞检测。
可见传感器从观察者的位置和方向来感知在空间中的一个长方体区域是否可视,设计者可以通过这些传感器来启动和停止动画或者控制其他的动作,这些动作仅当一个可感知的区域可见时才是必要的,通过给出中心和尺寸,还可以指定一个由 Visibility Sensor节点感测的空间区域。
碰撞检测是检测空间中观察者与造型接近和碰撞的时间,碰撞节点检测观察者的碰撞时完成两件事,即通过 CollideTime eventOut事件输出当前的绝对时间和提示浏览器。以上就是VRML场景中的几种交互方式更为复杂的交互还可利用Script和 Proto节点等对其进行功能上的扩展,如可利用Java技术完成这些扩展。
(5)具有开放性
可扩充性是VRML今后发展和完善的重要特征之一VRML作为一种标准,不可能一步到位地长期满足未来网络空间所有应用的需要。例如,在实际应用中,有的用户希望应用交互性更强;有的用户希望画面质量更高;有的用户希望VR世界更复杂。这些需求往往是相互制约的,同时也受到用户平台硬件性能的制约,因而VRML是可扩充的,即可以根据需要定义自己的对象及其属性,可以通过Java语言等方式使浏览器可以解释这种对象及其行为。这一点保证了VRML能够不断更新和发展。
内容来源:喻晓和《虚拟现实技术基础教程第2版》