作者:闫晓丽 郑延斌 姚飞 苏景霞 来源:《科技视界》 2013年第33期
闫晓丽 郑延斌 姚 飞 苏景霞
(河南师范大学 计算机与信息工程学院,河南 新乡 453007)
【摘 要】本文首先介绍了基于虚拟现实技术的网络虚拟化学实验室的体系结构,然后介绍了结合3ds Max软件和VRML语言实现虚拟试验场景的交互功能和动画效果的理论方法,为网络虚拟实验室的构建打下基础。
【关键词】虚拟现实技术;网络虚拟实验室;3ds Max;VRML
Based on Virtual Reality Technology of The Construction of the Network Virtual Chemical Laboratory Design
YAN Xiao-li ZHENG Yan-bin YAO Fei SU Jing-xia
【Abstract】This article first introduces the network based on virtual reality technology, virtual chemical laboratory of architecture, and then introduces the combination of 3ds Max software and VRML language implementation of virtual test scenarios interaction function and the method of animation effects theory, lays the foundation for the construction of network virtual laboratory.
【Key words】Virtual reality technology; Network virtual laboratory; 3ds Max; VRML
0 引言
随着虚拟现实技术和计算机网络技术的发展,虚拟现实技术应用的领域已经深入到军事、医学、教育等各个领域。利用虚拟现实技术建立的化学实验室与传统实验室相比高效、开放、灵活、用户自定义等优点决定了它在远程教育中的良好应用前景,必将成为教学活动的重要环节。
1 虚拟现实技术与网络虚拟实验室
虚拟现实技术(Virtual Reality,VR)是以计算机技术为核心生成的一个三维空间的虚拟世界,借用专用设备为用户提供关于视觉、听觉、触觉的感官的模拟,并通过键盘鼠标等操作实现人机交互,使用户有身临其境之感。虚拟现实技术的突出特征为“3I”,即 Immersion(沉浸性)、Imagination(想象性)、Interactive(交互性)[1]。根据用户参与VR的形式以及沉浸的程度,本文用的是桌面虚拟现实系统。
1989年,美国弗吉尼亚大学(University Of Vinginia)威廉·沃尔夫(William Wulf)教授首次提出了虚拟实验室的概念:用来描述计算机网络化的虚拟实验环境[2]。本文要建立虚拟实验室就是基于互联网环境下完成的网络虚拟化学实验系统。
基于虚拟现实技术的网络虚拟实验室指的是在网络中创建一个可视化的三维环境,其中每个可视的三维模型代表一种实验对象,用户通过对鼠标和键盘的操作,可以模拟和仿真具体的试验对象、实验环境和实验过程,从而实现对实验的模拟,实现与真实实验环境下相一致的实验效果,达到同样的教学目的和要求。
2 网络虚拟化学实验室体系结构
网络虚拟化学实验室体系结构主要由两部分构成:服务器端(Server)和客户端
(Client),如图1所示。其中客户端的功能是客户通过直观的界面操作来实现人机交互。界面上有各种操作,都是基于模拟软件,即虚拟实验平台来实现的。服务器端的主要功能则是及时响应客户端的请求。由于此软件的访问量较之商业网站的访问量少很多,因此可以建立一个比较小的云平台,当客户向服务器发出请求时,就把请求转入云端进行集中处理。但是为了避免多个客户对共享资源的互斥访问,要采用并发处理机制,这样才能及时的响应客户端的多用户请求。
客户端与服务器端的交互是通过一系列的协议和连接来实现的。客户主机上安装有支持Java语言的浏览器,Web服务器为Java Application,启动后服务器便会在端口侦听客户端的请求。当客户端通过浏览器向Web服务器提出HTTP请求时,Web服务器就会通过HTTP协议把客户所需要的文件资料传送到浏览器上,此时客户就可以在浏览器上阅读了。在这一过程中,通信接口作为客户端和服务器端的媒介,通过TCP/IP协议和数据库接口进行通信[3]。
3 实验场景建模实现
虚拟现实场景的制作通常有如下三种途径:第一是通过数码相机或摄像机进行实景拍摄,然后制成全景图;第二是使用计算机编程的方法直接生成,常用的程序设计语言有VRML、OpenG、LX3D等;第三则是使用商品化的软件制作虚拟的三维场景和动画,如用3ds Max、EON Studio等[4]。
为了使用户最大程度上的“沉浸感”,要求虚拟化学实验场景与真实实验环境高度一致。将虚拟实验室场景的建模分为两大类:一是实验室基础环境,包括实验室内部环境以及实验室基础设施;二是虚拟实验器材,包括实验器材以及实验药品等。对于这些虚拟实验室内部构造的实现不仅需要形似,更需要其在材质、纹理、内部结构方面都十分逼真。
对于虚拟实验环境的建模,比如天花板、窗户等的建模可采用实景虚拟现实技术。实景虚拟现实平台是对现实场景的处理和再现,因而展现的是完全真实的场景。相比于利用3ds Max建模得到的效果,更能使用户沉浸其中。
对于那些比较比较简单的实验药品和仪器,由3ds Max建模实现。3ds Max建模软件包含了基本的几何模型,这些几何模型不仅在建模时可以直接使用,也可以将其作为基础,实现较复杂的模型的创建。对于实验仪器和设备而言,建模时最重要的是要根据实际情况赋予不同的物品不同的材质。赋材质时可以使用VRML中的Appearance (外观节点)反应造型的属性。如物体的材质、表面颜色、透明度等。
实验室很多其它场景如烧杯,药品架、投影仪等的建模都可以采用以上的原理实现。
4 交互功能以及动画场景的实现
VRML是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,它在3ds Max创造出的三维场景,不仅可以插入多种多种VRML节点,同时也可以将其直接导出到VRML中,因此可以利用VRML的传感器节点,实现实验中的交互功能以及动画效果。
4.1 交互功能实现
在虚拟实验系统中,可通过VRML中的检测、感知等节点实现用户和虚拟对象之间的交互。
根据用户在场景中的动作,将检测器分为两类:触摸型的传感器和感知型的传感器。将动作从广义上分为两类:一类是用户的输入设备对于对象的操作,一类是用户和场景中的某对象接近的程度,对象进而做出反应。用户在虚拟实验室系统中,将鼠标作为主要的输入设备,这时采用第一类检测器检测鼠标单击、指向和拖动等动作,从而对场景做出做出相应的回应。
以KMnO4制造O2实验为例,在实验过程中需要加热,因此单击鼠标点燃酒精炉,此时触摸型传感器中的接触检测器节点(TouchSensor)可以很好地检测鼠标是否单击了对象,从而做出反应。在实验时难免会出现虚拟空间物体之间的碰撞,此时可以感知型传感器中的碰撞传感器节点(Collision)可以用来检测何时用户和虚拟空间中的造型发生碰撞并作出反应,同时该节点中的ROUTE路由提交的事件可以启动一个声音节点,使实验场景更加真实。
对于一些复杂的计算、智能推理能力等,可以利用VRML的Script节点。Script节点包含一个程序脚本,可以定义和改变场景中对象的行为和外观。在Script初始化时(即事件被检测到时)调用程序脚本将事件和节点从VRML传递到Java程序中,同时将命令从Java程序传递到VRML中[5]。比如在实验过程中处理自由落体及反弹就可以利用此节点。
4.2 动画场景实现
对于VRML场景来说,交互功能仅仅能够实现对场景的控制,为了达到虚拟现实的目的,还需要制造动画的效果。在VRML中实现动画实际上就是借助于时间检测传感器节点确定发生变化的时间,借助于描述场景中造型的状态,利用外观变化的内插节点来控制他们的外观和状态随着时间的变化以产生动画的效果。
VRML设计了许多插补器节点对应不同的状态变化,利用插补的方法构建场景中的动画效果,如实现造型位置变化的位置插补器(PositionInterpolator)、实现方位变化的朝向插补器(OrientationInterpolator)、实现颜色变化的颜色插补器(Colour Interpolator)以及坐标插补器(CoordinateInterpolator)等[6]。
仍然以KMnO4制造O2为例说明,在此实验中涉及到的有药品颜色的变化、O2的增加等动态变化。这时可以采用时间传感器和颜色插补器(Colour Interpolator)描述实验启动后
KMnO4变为MnO2时的颜色变化(紫色变为黑色);用位置插补器(PositionInterpolator)和时间传感器来描述O2由少变多时的动态效果。
5 结束语
基于虚拟现实技术的化学实验室不仅弥补传统化学实验教学的不足,同时为教师提供了一个良好的教学环境、为学生提供了一个学习化学的平台,同时为其它实验课程的教学改革与发展提供了技术支持,对于推动教学体制的改革有及其深远的意义。
【参考文献】
[1]段新昱.虚拟现实基础与VRML编程[M].北京:高等教育出版社,2004:01.
[2]KOUZESRT, MYERS JD, WULFW A. Doing science on the In-ternet[J].IEEE ComputerSociety,1996,29(08):40-46.
[3]范鹏轩,孙静.一种Web3D虚拟现实系统的场景数据调度方法[J].科技广场,2010(01):107-109.
[4]文孟飞,阳春华.网络环境下虚拟现实实验室构建探析[J].广东广播电视大学学报,2004(04):27-30.
[5]刘辉,金汉均.基于VRML虚拟实验室实现方法的研究[J].实验室研究与探索,2007,26(12):225-227.
[6]胡小强.虚拟现实技术[M].北京邮电大学出版社,2005:255-257.
[责任编辑:陈双芹]
因篇幅问题不能全部显示,请点此查看更多更全内容