基于VRML的网络交互式虚拟实验室的开发

时间:2022-12-19 10:45:04 浏览量:

摘 要:本文对网络虚拟实验室的开发过程进行了探索和尝试,并以一个完整的计算机组装实验室的开发实现过程为例,验证了利用VRML技术构建此实验室系统的可行性。

关键词:VRML Pro/E 虚拟实验室 远程教育

中图分类号:TP311.52文献标识码:B 文章编号:1673-8454(2008)05-0032-03

引言

现代远程教育是当前我国教育发展的一个重要方向,是构建终身教育与学习型社会的重要手段。虚拟实验教学作为远程教学中的主要组成部分,如何为分散在各地的学生提供逼真、交互性强的实验教学,一直是远程教育关注的热点问题。[1]

本文就是对这种网络虚拟实验室的一个探索和尝试,旨在给学生提供一个与真实实验环境相似甚至相同的纯软件环境,使之能够对现有的实验室予以补充。通过该网络虚拟实验室,学生能够通过计算机在网络中模拟仿真各种实验现象。

一、系统结构

本系统以Web为基础平台,并采用浏览器/服务器(B/S)结构,运用Java技术和VRML技术来开发该网络虚拟实验室,使其能够运行于任何客户端平台。服务器端通过软件技术对各种实验环境和实验过程进行仿真,接收来自客户端的请求和可视化输入操作,根据客户端不同请求,模拟计算机组装的过程。客户端只需要安装ComPlayer浏览器,学习者在浏览器中键入网址即可进入虚拟环境进行实验。[2]

该实验系统由实验管理、部件展示、动画演示和虚拟实验室系统几个部分组成。

二、设计实现

整个系统是在虚拟现实语言VRML的基础上,结合了Javascript脚本语言及Pro/E来实现的。设计出的系统突破了以往的二维演示,实现了三维交互,最终把整个装机过程真实地展示在人们的面前。

1.计算机器件的设计与实现

此模块主要完成计算机各个部件的建模,计算机的部件包括显示器、键盘、CPU等复杂的部件。由于计算机内部零件大多为复杂几何形体,建模复杂。完全用VRML语言建立复杂的三维模型是相当繁琐的,毫无直观性可言。在实际开发过程中,选用了Pro/E构造基本模型,并对其优化,从而实现对较大的文件进行优化。将其场景中设计好的造型通过File(文件)命令输出VRML文件,文件扩展名为.wrl,利用ComPlayer浏览器对刚刚输出的VRML场景文件进行全方位、多角度的预览,然后利用文本编辑器(如VRMLPad)打开VRML场景文件,对不满意的地方进行微调,再用浏览器浏览,直到满意为止。

例如:首先在Pro/E中制作好显卡,再导入到VRML中,导入的方法如下:

Group {

children {

Transform{

translation 0.2143 -0.0889

rotation0 -1 0 4.7

children [

Inline{url "xk.wrl"}//导入显卡文件

]

}

}

}

在浏览部件的过程中可以通过不同的视点的控制,来给用户展示部件的不同侧面。各个部件导入以后如图1所示。

2.计算机装机系统的交互功能的实现

计算机装机系统主要向用户提供一个尽可能真实的实验场景,用户可以在其中自由操作计算机部件,进行部件的安装,完成整个计算机组装过程的仿真实现,这个过程是通过人机交互来实现的。

VRML允许用户的行为能够实时作用于场景。VRML的交互是建立在事件的基础上的,使用场景图数据结构建立3D实境,其基本单元被称为节点(Node)。场景节点通过事件入口(eventIn)接受事件,通过事件出口(eventOut)发出事件,一个节点的事件出口和另一个节点的事件入口之间的通路称为路由。通过路由将节点联系成为事件体系是VRML具有动态交互能力的机制。其实现方法主要有以下两类:VRML的动态感知节点及其脚本。

(1)VRML的动态感知节点

1)Timesensor时间传感器节点

在VRML虚拟世界中,需要创建出能自动变化而不需人为改变的造型。我们可以通过设定时间按某种规律变化来控制造型变化,而控制时间按某种规律变化最常见的就是时间传感器。Timesensor 时间传感器节点的作用就是创建一个虚拟时钟,并对其他节点发送时间值,控制VRML立体空间的动态对象的开始、变化和结果过程的时间,实现空间物体造型的移动、变色、变形等自动变化。

2)TouchSensor触摸传感器节点

实现VRML的交互功能,需要设计触动检测器。在VRML虚拟世界中,用户与虚拟现实世界之间的交互是通过一系列检测器节点来实现的,通过使用这些检测器节点,使浏览器感知用户和各种操作,比如开门、旋转、移动和飞行等。这样可以和VRML虚拟世界中的三维对象直接进行交互。

TouchSensor 触摸传感器节点是浏览者与虚拟对象之间相接触型传感器节点。它创建了一个检测用户动作并将其转化后输出,以触发一个动画的检测器。它用来测试用户触摸事件,该节点可以为任何成组节点,并感知用户对该组节点的动作。它的语法结构与Timesensor 传感器完全一样,这里就不赘述。它的出事件为isOver,当用户的鼠标位于CPU上方时,将引发isOver事件,且该事件为True,由此而带来CPU的改变。如以下程序代码段所示:通过鼠标可以将CPU移动到另外一个位置。

#VRML V2.0 utf8

...

Group{

Children[

DEF CPU Transform {//定义CPU引入场景中初始位置;

translation-80 20 50

children[Inline{url"parts\CPU.wrl"}]}

DEF Touch TouchSensor {//定义触摸节点,当鼠标放置在CPU上时触发;

enabledTRUE

}

DEF time TimeSensor{ //定义时间传感器,用来控制移动时间;

enabledFALSE

cycleInterval 6.0//定义一时间长度,说明这个时间传感器的周期间隔;

loop TRUE

}

DEF cpuinterPositionInterpolator {//VRML的位置插补器,用来描述一系列用于动画的关键值,使物体移动成动画。该节点不创建任何造型,在一组三维坐标之间进行线性插值,适合于平移进行插补;

Key

[ 0.0,0.4,0.8,1.0 ] //定义一张变化时刻关键值表,每一时间值都代表全部动态时间中的一个相对时间;

keyValue [ 0 0 0,

8 5-20,

-85-20,

0 00

]//定义一组三维坐标值列表,每个值都对应key域值中的一个相对时间段

}

]

}

ROUTE Touch.isActiveTOtime.enabled

ROUTE Touch.touchTime TO time.startTime

ROUTE time.fraction_changed TO cpuinter.set_fraction

ROUTE cpuinter.value_changed TO cpu.set_translation

ROUTE cpuinter.value_changed TO cpu.set_translation

(2)VRML的脚本节点

VRML中的节点可以生成逼真的虚拟世界,并能生成事件处理,但是在场景复杂和事件繁琐时,就需要通过Script节点实现Java和VRML的数据流通,扩展VRML的功能(Script节点本身没有任何动作,其动作的完成是由脚本程序来实现的)。例如,对于上述CPU的安装过程来说,只单单用VRML传感器和插补器做的是线性运动,并不能将CPU分毫不差地安装到主板上,这就要用到Javascript脚本语言。

在VRML中通过Script节点可以将VRML场景与Java脚本程序有效地连接,并且也是VRML场景从Java脚本程序获取反馈信息的唯一手段。

要将CPU安装到主板上,这里用脚本自定义了一个函数,包含了CPU在主板上的位置,它是一个三维坐标值,当用户单击鼠标时,通过改变T 的R 来改变CPU现在的位置,其代码段主要是通过Translation 空间坐标变换节点的translation域的值的改变来改变CPU的位置,从而把CPU安装到主板上的。Translation空间坐标节点可在VRML立体空间创建一个新的空间坐标系。利用此节点可以在VRML场景中创建多个坐标系,而这些坐标系可随意平移、旋转和缩放,从而使坐标系上的造型实体实现平移、旋转和缩放。

由于各个部件的安装很相似,所以只要掌握CPU的安装,其它各个部件的安装问题就迎刃而解了。

如要改变CPU的位置,就要用到以下代码:

DEFcpuset Script { //给定CPU一个位置值;

eventInSFBool onclick2//定义一个入事件;

eventOut SFVec3f newpoint1//定义一个出事件;

field SFBool on FALSE

url"vrmlscript:

function onclick2(value)

{

newpoint1.x=5.8; //定义x轴值;

newpoint1.y= 4 ; //定义y轴值;

newpoint1.z=5.5; //定义z轴值;

}"

}

(3)VRML与HTML

将交互功能实现以后,还要将VRML文件和HTML文件相结合,做成网站,以方便用户在客户端浏览文件和进行实际的操作。

三、小结

在现代远程教育发展的进程中,随着网络与虚拟现实等技术的发展,虚拟实验教学将日益得到关注与发展。本文着重研究了基于VRML技术的虚拟实验实时交互技术,同时在虚拟实验教学理论的指导下,针对虚拟实验的特点,设计了一个完整的、具有较好交互功能的计算机组装实验。实践证明,通过VRML和Pro/E软件相结合制作的教学软件更适合于远程教学,从根本上改变了传统的教学模式,为传统的教学注入了新的活力,必将对今后的教学改革起到十分重要的作用。

参考文献:

[1]雒伟群.基于VRML的交互式虚拟实验室的研究与实现[D].天津:天津大学,2005.

[2]王乐娅.网络虚拟实验室的开发与实现[J].计算机系统应用,2004(6):58-60.

[3]韩芬.基于Internet的教学课件的开发[J].电化教育研究,2002(4):36-37.

推荐访问:实验室 虚拟 开发 网络 VRML