基于虚拟现实建模语言的虚拟实验教学系统设计

2013-03-27 06:02叶世其
科学时代·上半月 2013年1期
关键词:交互性设计

叶世其

【摘 要】虚拟现实建模语言是一种用来描述交互式3D对象和环境的文件格式,它的诞生为实现基于Web的虚拟现实提供了条件。针对虚拟实验教学的特点,对基于虚拟现实建模语言的虚拟实验教学系统进行了设计,并结合实例,对虚拟场景的构建、虚拟场景交互控制进行了进行研究。实践证明,基于虚拟现实建模语言的虚拟实验教学系统是切实可行、有效的。

【关键词】虚拟现实建模语言;虚拟实验系统;设计;交互性;JavaScript

虚拟现实技术是当今计算机界广泛关注的一个热点,目前的虚拟实验多为二维演示实验,在实验真实感、交互性和教学效果等方面与真实实验相差甚远。随着硬件技术和网络技术的飞速发展,以及3D技术的日益成熟,虚拟现实建模语言(Virtual Reality Modeling Language,下面简称VRML)的诞生为实现基于Web的虚拟现实提供了得天独厚的条件。它能够在Web上创建可导航的、超链接的三维虚拟现实空间,并使用户与场景进行实时交互,感知和操作虚拟对象,因而能够提供更佳的性能和更好的教学效果。下面,就基于虚拟现实建模语言的虚拟实验教学系统的设计进行研讨。

1.虚拟实验系统设计

1.1系统管理模块

系统管理由系统管理员监控,主要任务包括创建用户、设置权限及安全控制管理等。系统管理员管理的数据库包括用户信息数据库和安全控制库。

1.2实验管理模块

实验管理由实验教师完成,进行实验项目的生成和管理。实验教师管理的数据库包括实验项目管理库、学生成绩管理库以及实验控制库。实验教师先将实验项目名称、实验相关说明、实验操作过程等存储在实验管理库中,供学生调阅。实验控制库中存储的是针对实验项目对实验者行为进行验证的方法,为的是能够识别实验者的动作,并采取相应的控制。

1.3虚拟实验模块

虚拟实验针对的是实验者,当实验者进入实验系统后,可以选择预定实验项目及相应实验仪器进行实验操作,实验过程的具体信息可上传到对应用户的数据表中,供实验教师调阅和评分。另外,为了增强虚拟实验的网络自主学习性,系统还可以提供一个用于帮助和交流的支持子模块,在该模块中主要提供各种信息资源、各种形式的交流工具,实现不同用户之间的实验交流。

2.实例

2.1 虚拟场景的构建

用VRML建立虚拟现实世界的方法有两种。一种是通过编写源代码,生成文本文件,再转化生成.wrl为扩展名的网页文件。但这种方法由于源代码函数过于复杂,文件较大,不易掌握,较难运用。第二种方法是通过辅助建模软件,先建立三维物体,再在虚拟世界中进行组合,形成丰富多彩的虚拟现实世界。本文主要探讨后一种方法,即在3DSMAX中建立各种三维物体,再将这些物体以.wrl格式导出为VRML世界,编辑它们在虚拟现实世界的位置与关系,形成一个统一的整体世界。

对电路原件实验仪器的实物图进行构建,构建过程中要对组件进行不断的组合,这样做的目的是为了减少输出的代码数量。对于一些关键的部件和按钮,要独立命名,其它的组件一律和电路原件实验仪器的主模型组合在一起。由于程序编辑器VRMLPad中不能很好地识别中文字体,这里我们将所有的组件的名称统一改成汉语拼音字母。

在几何建模过程中,要按照树状层次结构图将整个模型分为几部分分别制作,再在3DMAX中组合在一起,将任务化整为零,提高细节制作效果。而物理建模则要通过几何建模,物体的表面颜色、材质、纹理、光滑度、灯光、阴影效果及物理约束、碰撞等效应也是表现物体的重要因素。虚拟环境的建立是通过VRML自身的功能,综合运用Transform、Inline等场景节点实现造型,最后利用VRML可视化编辑器VRMLPad来进行场景合成。

2.2 虚拟场景交互控制

交互设计是VRML的特色,也是它之所以吸引人的地方。如果说建模给VRML创造了一个个世界和一个个形象,那么交互设计就是给这些世界增加了生气与灵魂。VRML场景可以提供的常用交互方式有:提供飞行、行走、自动导航等浏览方式;碰撞、重力等动力物理学模拟;导航地图;背景音乐、语音提示;场景物体互动(开、关门等);视频文件播放(支持swf、mpg、rm格式);网页链接;三维场景切换等。在三维空间进行交互设计是整个VRML创作中最重要的部分,包括事件(Events)、行为(Actions)等涉及人机交互的设计。VRML本身具有一定的交互能力,当用户只是需要一些简单而且单一的动画时,不需要再求助于其它的程序语言。但实际应用中,不同的浏览器提供给用户一些对场景的操作如:移动、旋转、倾斜、撤消与恢复、引力以及漂浮与使场景平直等,它们只能对场景的全局进行操作,而对整个场景中的局部或个体操作无能为力。为达到交互的自然性和高效性,仅仅采用VRML本身难以胜任,在本文中,主要借助第三方语言-JavaScript来补充VRML本身的不足。为了满足不同用户浏览虚拟电路原件实验系统的要求,一般需要从网页链接交互、文字交互和立体交互三方面出发,使用户可以通过鼠标、键盘等手段自由地在虚拟场景中切换视点和视角进行漫游,点击按钮或菜单等,进行信息的获取和对场景的操作,从而给用户在视觉或听觉上,产生和虚拟世界互动的交互式体验。

在以往的虚拟实验中,数据的显示一般是由一幅幅图片拼接而成,数据的变化是由图片的变换来显示,在数据变化的细节方面就无法完美的显示出来,当需要的数据量过大时就必须使用大量的图片,不仅增加了系统的容量和系统运行的响应时间,而且还降低了系统在Web中的可传输性。在虚拟电路原件实验中,在某些环节需要使用到输出细调旋钮来调节毫安表和万用表的数值,所以在系统中使用MFString节点来实时的获取输出细调旋钮的旋转数值,再通过Math数学模型取值计算之后,赋值给Fontstyle节点并通过TXT文本的形式实时的显示在屏幕上。不仅减少了系统的总容量、提高了在网络中的传输速率,而且在很大程度上减少了系统的相应时间,使整个系统运行起来更加的流畅。如下所示为本文中使用到的关键代码:

DEF control script

{eventIn SFTime shuzi

url"JavaScript:

function shuzi 1(value)

{if(f>8&&f;<10){

wybstring 1[0]=(-Math.round (hlxt.

rotation. angle)+2)/100;

wybtxt1. string=wybstring 1;

dlxstring1[0]=wybstring 1[0]*0.50

dlxtxt1.string=dlxstring 1}}

ROUTE time.cycleTime TO control.shuzi1

本系统中需要通过调节输出细调、输出粗调等按钮来调节万用表和毫安表的数值,在实例中使用了CylinderSensor节点,使用该圆柱体传感器节点可以使旋钮模型垂直于某个坐标轴旋转,由于电路箱中的旋钮数值是有上限和下限的,所以需要使用CylinderSensor节点的maxAngle属性来限制模型的最大旋转角度,使用minAngle来限制模型的最小旋转角度,在数据处理方面,需要使用MFString节点实时的读取旋钮的旋转数值,在VRML中使用圆柱体传感器所获得的旋转数值精确到了小数点后16位,所以需要使用Math.round数学方法进行取值,获取最接近该数值的整数,之后通过数学公式及伏安特性公式对该数值进行相应计算,再通过FontStyle节点实时的显示出来,从而达到了使用输出细调、输出粗调等按钮来调节万用表和毫安表的数值的目的。

3.结论

综上所述,虚拟现实建模语言VRML是开发基于Internet虚拟实验教学系统的首选,利用虚拟现实建模语言构建的虚拟实验系统能够模拟出逼真的实验场景,并提供与实际实验相似的实践体验,这些功能的实现,对于力求达到人在虚拟环境中的现实感是必不可少的。因此,虚拟现实建模语言在虚拟实验系统教学中的应用前景十分光明。

参考文献:

[1] 胡源渊.基于VRML的交互式虚拟实验环境构建[J].硅谷,2008年23期.

[2] 张中伟;汪庆伟.基于VRML的虚拟实验系统设计[J].价值工程,2010年09期.

猜你喜欢
交互性设计
BUBA台灯设计
有种设计叫而专
新媒体语境下艺术传播的发展及城市运用探究
数字化城市公共艺术交互性内涵研究
多媒体技术项目制作实例剖析
匠心独运的场地设计画上完美句点
设计之味