摘要:以一个物理电路虚拟实验系统为基础,介绍了vrml及其实现原理,并详细论述了虚拟实验系统的创建过程和创建方法。
关键词:虚拟现实;vrml;虚拟实验
0 引言
随着网络技术和虚拟现实技术的迅猛发展和普及,远程教育得到了强大的技术支持,使网络虚拟实验实现了对传统实验的有力补允,实现了其时间上的拓展和空间上的延伸。目前的虚拟实验多为二维演示实验,在实验真实感、交互性和教学效果等方面与真实实验相差甚远。vrml(virtual reality modeling language)是开放的、可扩展的、工业标准的虚拟现实描述语言,它能够在web上创建可导航的、超链接的三维虚拟现实空间,并使用户与场景进行实时交互,感知和操作虚拟对象,因而能够提供更佳的性能和更好的教学效果。
1 虚拟现实与vrml
虚拟现实(virtual reality)是一项综合集成人——机界面交互技术,它利用计算机生成具有表面色彩的立体图形模拟现实环境,通过多种传感设备使用户融入到该环境中,并与该环境中的对象进行自然的、实时的交互,从而使用户产生一种沉浸在虚拟环境中的真实感觉。wwW.133229.coM
vrml作为一种与互联网结合,用来描述三维交互世界的程序语言,可应用于创建虚拟现实的对象、景象和展示模型等。vrml的工作原理是用文本信息描述三维场景,在internet网上传输,在本地机上由vrml浏览器解释生成三维场景,解释生成的标准规范即是vrml规范,而把复杂的处理任务交给本地机从而减轻了网路的负荷。
2 实验系统的设计与实现
2.1 虚拟场景的建立 vrml语言本身可以进行三维建模,但是它的标记语言特性使得建立三维虚拟场景比较麻烦,尤其是对一些庞大、复杂、要求精细逼真的场景。一种比较通用的方法是用3d max这样的三维建模软件来建立静态虚拟场景,然后再导入到vrml编辑器中添加动态效果和交互控制。
但是,一般建模软件建立的场景文件都很大,这对网络传输是不利的,必须进行场景优化。通常我们可以采用以下几种方法进行优化。
①利用vrml 中的lod节点(level of detail ,细节层次)。lod节点主要是以视觉效应为每个物体建立多个相似模型, 根据距离由远及近依次使用从粗到细的不同模型描述物体, 减少不需要的模型细节, 从而加速模型的绘制,达到优化处理的目的。②多使用def/use方式。对于在场景中多次使用的对象,可在对象首次使用时用def给物体命名,以后仅需通过“use+对象名”即可引用该物体。这种方法不但能够提高代码重用度,减少文件体积,还可以减少场景中要绘制的多边形,提高场景生成速度。③多使用proto原型定义。使用原型可以获得与def/use方式相同效果,此外它还有动画效果,能进行交互控制,其使用更为灵活,功能更为强大。④复杂模型尽可能用简单模型拼装。用布尔运算得到的复杂模型不利于修改和贴图,为此可用box、cone、cylinder、sphere这些简单模型来构建复杂模型,这样既可以节省在网络中的传输时间,也有利于浏览器的优化。⑤利用压缩工具压缩vrml文件。在vrml的构建过程中难免会出现一些冗余信息,通过压缩工具,可以删掉冗余空间,减少文件体积。
2.2 自动演示功能实现 自动演示功能主要用来演示实验的全过程,以帮助用户了解实验。例如,本系统中的一个基本实验就是通过电源开关的开、合控制灯泡的亮灭。自动演示功能可利用预定义动画来实现,这主要涉及下面的几个功能节点。
①传感器sensor。传感器是虚拟场景中的动作感知器,利用它来感知场景中各种物体的动作。本例中可以为电源开关添加感知鼠标单击动作的接触传感器touchsensor和自动时间控制的时间传感器timesensor。②插补器interpolator。插补器是实现动画效果必不可少的节点,它给出了动画过程中各个时刻变化量的参数值。电源开关的开合和电流表指针的转动都是旋转运动,可以为它们添加插补器orientationinterpolator,而灯泡亮度的变化要由颜色插补器colorinterpolator来实现。③route命令。route命令根据动画响应的顺序将各传感器、插补器、以及要控制的节点串连起来共同实现一个效果。