美章网 资料文库 VRML技术虚拟实验范文

VRML技术虚拟实验范文

VRML技术虚拟实验

1虚拟实验的设计

1.1虚拟实验室的实现模式

虚拟实验室的建立,使得处于不同位置的学习者可以同时对一个实验项目进行实验工作.Web为虚拟实验室的实现提供了一种基础平台,基于WEB的B/S构建模式是实现虚拟实验室的一种基本模式.

完善的虚拟实验室包含下面几个重要的组成部分:第一,能处理大量模拟操作数据的服务器(女口超级计算机中心高性能的计算机系统);第二,用于存储模拟数据初始条件和边界条件以及实验结果数据的数据库系统;第三,连接于网络的科学实验仪器及合作工具等;第四,实验处理软件,每一个虚拟实验系统都是基于专业的仿真软件系统的,它们用于数据处理、分析、存储并使这几个过程可视化.这几个部分的紧密结合就组成了一个虚拟实验室.

1.2虚拟实验的体系结构

虚拟实验根据参与感知交互方式的不同,主要分为三类:桌面虚拟现实系统、座舱式虚拟现实系统、沉浸式虚拟现实系统后两类虚拟实验系统需要昂贵的设备,创建一个虚拟现实系统的花费是相当巨大的,无论是从软件还是从硬件,普通的用户都无法承担.因此在目前阶段还不可能大规模应用,其仅仅运用在军事和航空航天等方面囝I本文研究的虚拟实验系统属于第一类,即桌面虚拟现实系统.和用软件编程方法在输出设备(如显示器)上输出逼真的具有虚拟现实系统特征的三维场景.网络虚拟实验平台采用的是VRML-Java同步协调技术.总体的设计思想如下:

(1)系统结构为3层B/S结构,由客户端、网络服务器和数据库服务器组成.B/S结构简化了客户端软件,只须安装Web浏览器作为客户端的运行平台,采用该结构实现的共享虚拟环境比较稳定和健壮,可扩展性较好.系统版本的升级及维护均在web服务器端进行的,用户需要访问时才动态下载,这就保证了用户每次使用的都是最新版本.

(2)客户端与服务器端的通信采用基于TCP//P协议的.1avaSocket通信技术,Java对网络通信提供了强有力的支待,其中Java.net包中的InetAddress、URL、Socket等类对TCP/IP协议提供了良好的支持.

独立运行的服务器应用程序主线程负责监听客户端的连接请求,连接上后生成另外一个线程与客户端通过‘IEP/IP进行通信.在服务器上建立一个共享对象的数据库上面有所有变动对象的当前信息.当一个新用户连接进来的时候,他的信息将写入该共享对象数据库中,同时通过该数据库读取共享对象的信息,并将这些信息在本地机器上的VRML世界中表现出来.

(3)服务器与数据库的通信技术是基于JDBC.

(4)VRML与Java间的通信是基于SAI.

综上所述,系统采用Web、VRML、SAI、Java、JDBC、SQL等主要开发技术.虚拟单元作为实验的主体,提供不同的设定参数,以JavaApplet形式运行,并通过VRML脚本编程接口SAI与Java进行通信翻.

1.3虚拟实验的功能层次结构

虚拟实验系统遵循模块化设计的原则,采取类ISO协议的分层技术,无论是什么课程的虚拟实验系统,最终的程序遵循以下的层次结构:上层是实验接口层;中间是Web服务接口、仿真服务接口以及中间件等.下层是后台服务程序.

(1)用户实验接口的主要功能:作为虚拟实验室客户端模块的一部分,主要完成“所见即所得”功能,给用户提供一个良好的界面(实验环境).同时引导用户了解、熟悉、掌握虚拟实验软件的基本使用方法;收集用户设置的实验参数和数据;检查用户的实验环境是否配置正确.提供与web服务接口的相关函数.另外,还要完成实验结果的采集、处理、优化和显示,可以包括各种数据的图形化、图表、动画显示及打印输出.具备简单的智能分析功能,给用户提供方便的处理接口.

(2)WEB服务接口的主要功能:负责管理虚拟实验系统的一般Web服务请求,负责接受虚拟实验原始数据,向客户端发送虚拟实验结果.负责通知消息的,统计网络状态信息,调整用户权限等.

(3)服务接口的主要功能:负责调度后台虚拟服务程序,接收上层接口传递的实验数据,记录用户的实验过程.

(4)a0间件模块的主要功能:为仿真后台程序和仿真服务接口模块提供通用的接口,向下负责发送调度指令和接收结果,向上负责接收调度指令和发送结果.

(5)服务程序的主要功能:第三方服务程序,提供相应的服务.[

2虚拟实验的实现

2.1虚拟实验的运行环境

本系统的服务器试验运行环境为:WindowsNT、MSIIS、JDK1.2.2、CoronaSAI包,客户端的试验环境为:WindowsNT、IE6.0、CoronaVRMLClient.在服务器端用IIS建立wWw站点,设置套接字端口号和VRML文件中一致,并运行服务器程序.客户端浏览器装载VRML插件,登陆服务器Html文件,连接成功后可进行相应的操作.

2.2虚拟实验的模块实现

系统在服务器端和IIS建立irW站点,服务器端与客户端设置套接字端口号,并在VRML文件中也设置一致的端口号,运行服务器程序.客户机端浏览器装载VRML插件,登录服务器Html文件,经过身份验证后进行在线虚拟实验系统.用户可以使用鼠标或者键盘在场景中漫游,进行交互.

主要模块描述如下:

(1)用户的验证登录

实验者首先通过输入相应的用户名及密码,经过身份识别后才能进入相应的页面进行下一步的操作.如验证通过。用户就可以根据虚拟实验环境提供的一些准备资料进行实验准备,比如熟悉实验设备器材、了解实验目的、学习实验原理等,然后实验者就可以进行实验了.

当用户登录系统时,首先在客户端,根据服务器名和端口连接服务器,并启动一个客户端线程:

thread=newClientThread(this,hotname,port,UselTh~lrle,avatarURL);thread.star@

同时服务器端会根据客户端的连接请求创建一个线程Vuser来负责交互,并把该线程加入到服务器端的线程列表中,同时通过user.sendALLFields((VU~r)user)把用户添加到所有用户的场景中去.如下:

sCene.setViewpointPosition((VSFVec3Ovalue);

scene.setViewpointOrientation((VSFRotation)value);

(2)虚拟实验教室漫游

在虚拟环境的漫游中,建立了一个虚拟实验教室环境,体现了虚拟实验环境的真实感.虚拟实验环境的交互控制,主要是改变用户视点的位置或视线方向,从而实现在三维场景中的漫游.用户可以通过左侧及下侧的控制按钮来对这个虚拟实验教室进行全方位观察,三维场景根据用户的交互控制命令连续不断地改变视点位置或视线方向并渲染场景.另外,用户也可以通过输入设备f如鼠标、键盘)完成多个视点的切换和视角的变换.VRML虚拟场景中的视点是一个在所浏览的立体空间中预先定义的观察位置和空间朝向,使用视点控制,可以实现虚拟场景的自动漫游功能.对于场景的漫游,涉及到用户视角的移动与变换,会触发callback0,该函数执行时会把当前用户视角的位置和方向参数送给服务器:

精品推荐