利用虚拟现实技术构建动画素材开发环境的研究
摘要:多媒体技术与虚拟现实技术是当今计算机发展的必然趋势,如果将两者结合起来应用于教学领域会是一种有益的尝试。本文主要介绍了利用虚拟现实技术制作一个动画开发环境的思想和方法,目的是解决制作网络教学软件时动画开发依赖动画工具比较复杂以及传输速度较慢的问题.这个开发环境适用于非计算机专业的教师使用。
关键字: 多媒体技术 虚拟现实(VRML) 动态链接库 计算机辅助教育
Abstract This article introduces a writing tool that is a method of making the animate。It is very difficult to a teacher who does not understand more knowledge of computer.。This method is very simple to use。 For the more,it has two advantages。 One is that it applies the teaching software in the internet;the other is that it is faster than thaditional method.
0 引言
多媒体技术是当今计算机发展的必然趋势。它集计算机技术、音像技术和通讯技术为一体,具有良好的集成性。它使信息不仅作用于人的视觉,而且也作用于人的听觉,从而扩大了人对信息的摄入量,使得人机关系更加亲近。
虚拟现实技术(简称VRML)是一种具有真实感的高级人机界面,人们能够通过多种感官渠道与它进行实时交互。这种技术的应用前景是非常广泛的,在医疗、制造业、娱乐和教育等方面的应用也具有很大潜力。可以想象,如果你能够进入到具有沉浸感的,并且有多种感官反馈的虚拟境界中学习知识,无疑将使你的学习更为有效。
那么如何来构造这种虚拟现实的境界呢?VRML就是最佳的选择。什么是VRML,VRML是Virtual Reality Modeling Language(虚拟现实造型语言)的缩写。使用VRML,你能设计自己的三维虚拟空间、用你想象的任何东西来填充虚拟的世界。这些仅仅受限于你的想象力。VRML最让人兴奋的特点,是能够使你创建动态的世界和感觉丰富的虚拟环境;动画空间里的物体,使它们运动;在你的空间里播放声音和影象;允许使用者和你的空间进行交互;使用脚本来控制,改进你的空间。
不仅如此,由于VRML文件仅仅是一些数学表达式来描述交互式的3D世界,并且也不需要传输大量的图像文件,接受端在获得这些表达式之后,将自行进行计算、加工、作色等处理,然后即显示成3D图像。因此,它在网上传送的信息量将大为减少,这样就解决了网络传输速度的瓶颈问题。这样就能够使你在Internet上创建动态的世界和感觉丰富的虚拟环境。
综上所述可以看到,如果能够将虚拟现实语言(即VRML模型)应用于计算机辅助教学软件的开发中将会是我们在教学方法上一次有益的尝试,但是对非计算机人员来说学习该语言的学习是非常困难的,我们制作这个动画开发环境就是想让教学软件的开发主体-----任课教师使用方便,只需填入参数便可生成需要的动画了。
1 问题的提出
1.1 面临的四个问题
通过研究分析,发现摆在我们面前的问题主要有四个:
(1) 如果想使一个VRML模型适应不同的用户需求,该模型就必须是按用户要求动态生成的。如根据用户输入的长、宽、高生成相应的长方体模型。采用什么办法?
(2) 在模型数量越来越多的情况下,必须具备一种管理模型的机制,能有效的组织和管理众多的模型。是利用数据库还是别的什么技术?
(3) 为了保持该系统的稳定健康的发展,必须能及时给系统补充新的模型,并对以往开发的旧模型进行及时更新。那么网络是不是我们最好的答案?
(4) 对于按用户要求动态生成的VRML模型,必须提供一种方法将其应用于教学软件开发环境中,如VB、Authorware等。这种方法是什么?
1.2 四个模块的确立
基于上一小节的分析,我们将该开发环境的设计分解为四个模块进行处理:
※VML(VRML Models Library) 构建机制的设计与实现
※VRML代码引擎的设计与实现
※VML网站建设
※利用VB或Authorware开发基于VRML的课件
首先使用者利用VML将用户提出的要求(VRML节点的参数)传给 VRML代码引擎,由引擎生成相应的VRML代码,再通过VML将生成的代码返回给使用者。然后使用者将得到的VRML代码应用于其教学软件开发环境中。同时,使用者还可以不断的通过VML网站对VRML引擎进行丰富和更新。
2 VML构建机制的设计与实现
2.1根据用户提出的要求动态生成VRML模型
对于这个问题,有三点是值得注意的:
(1) 用户提出的要求应该是合理的要求,或者说是符合客观规律的要求
因为显然如果用户要求系统为他生成一个上底面半径为3,下底面半径为4,高为5的圆柱体,系统恐怕永远也办不到。因为现实中,圆柱体上下底面半径相同。这就要求我们必须为用户提供一个预定义好的输入界面。例如对于圆柱体,系统只提供底面半径和高两个输入接口。
(2) 动态生成参数输入接口
在研究VRML时,我们发现VRML本身只是一种描述三维虚拟空间的文件。而实际的三维模型的绘制工作由相应的VRML浏览器完成。因而,我们考虑是否可以给出一个参数接口描述文件,由系统读入、分析,然后动态生成参数输入接口。通过对VRML的初步学习,我们发现一个VRML模型需要的参数大体分为三种:数字、文本、布尔值。针对这三种参数我们给出了如下的参数描述定义:
数字 :N,Caption,MinValue,MaxValue,InitValue
文本 :T,Caption,InitText
布尔值:B,Caption,TrueText,FalseText,InitValue
其中各定义的意义如下表:
-400)=-400;">
有了参数描述文件,我们又编制了相应的解释描述文件并生成接口的程序。
(3) 对于生成的VRML模型,用户是想将其独立应用,还是组合到其他模型中去。 对于这两种使用方式,最终的VRML代码是有一些区别的。因此,必须提供对于该问题的选项以保证生成的代码具有针对性。在我们的系统中具体的实现方法是如果用户想将生成的模型组合到其他模型中去,他只需要将生成的代码拷贝到剪贴板,然后再复制到他所在的VRML编辑环境中去。如果他是用于另一种目的,则系统将生成的代码自动进行包装并保存到用户指定的 .wrl文件中去。
2.2 组织与管理大量的VRML模型
随着模型(代码引擎)的不断开发,其数量也会越来越多。在这种情况下,就要求我们设计出一种能有效地组织和管理众多的模型的机制。我们首先想到用数据库来管理。但经分析发现,如果数据库能根据用户的要求返回模型,那这种模型必然是在数据库中已经存在的静态模型。如果考虑到用户的各种要求,这个数据库必然会无限膨胀以致失去其数据库管理所具有的任何优点。通过分析决定借鉴当前应用软件(例如3D MAX)比较流行的管理机制——插件。这种机制就是将一类模型组织为一个插件(即为VRML代码引擎)放到系统下。每次启动系统,系统会自动将其目录下的所有插件装载到系统中来扩充自己的功能。可以想象采用了这种机制,肯定会极大地提高系统的扩展性与开放性。我们受到Windows编程中的“回调函数”思想的启发:一般操作系统都是由系统提供函数,由程序来调用,而回调函数则是由程序提供函数,由系统调用,方向刚好相反。
这样,我们的插件(VRML代码引擎)也被设计成能够提供一些标准的例程(回调函数)来供系统来调用。其与系统协作的机理如下图( 图1 ):
-400)=-400;">
这些例程包括:
getLibName 返回该插件所代表节点库的名称
getNodeNameList 返回该插件所提供的模型列表
getArgs 返回当前选中模型的参数描述定义
checkArgs 核对用户的输入是否正确
processArgs 利用代码引擎生成VRML代码
根据以上机理,我们编制了系统“诺德发动机(Node Engine)”;而插件则是制作成DLL(动态链接库)形式。之所以采用DLL这种形式,是因为我们可以利用DLL的输出例程及其动态调用机制模拟回调函数。 鉴于Delphi 4 集成开发环境是真正的面向应用程序设计全过程的可视化应用程序开发环境,其提供的大量实用工具可以使开发人员很容易地实现和完成复杂的功能。因此我们选择Delphi 4作为我们的系统及插件的开发工具。
最后我们通过实例验证了上述机制的可行性及实用性。另外补充一点:由于插件开发采用了DLL方式,所以只要其提供了符合规则的例程,至于使用什么开发工具开发则是无关紧要的。因此说,为了在极大程度上得到第三方开发人员提供的支持,该系统在开放性上做出了有效的努力。
3 VML网站建设
只有不断变化、更新的事物才最具有生命力。由于我们的系统采用了插件机制,因此对于模型的更新与补充是相当方便的。只需将新的插件替换老的插件即可。问题是新的插件从何而来。最好的途径当然是利用Internet。这就要求我们首先要建立一个VML网站,其次在系统中提供一个连到网站上的接口。对于后者,实现的方法非常简单,只需在系统中提供一个连到VML网站的快捷按钮即可。
VML网站的建设有两点是很重要的。第一应使访问者感受到该网站与其他网站的区别,即应体现出VRML的存在。第二对于众多的插件,应分门别类加以管理,也就要合理安排超级链接。在网站的实现中,我们用Java编制了动态菜单来实现对插件有效的管理。
至于如何体现VRML的存在,我们在网站首页用VRML编写一个简单的三维场景。但是VRML是用VRML浏览器播放的,在IE中,三维场景与网页其他部分会被VRML浏览器分隔开,不利于整体效果。为了解决这个问题,我们对VRML浏览器进行研究发现其描绘三维场景时使用了Microsoft公司的DirectX技术。在DirectX中有一个组件DirectAnimation是专门用来配合DHTML(动态HTML)制作网页二维和三维动画的。
-400)=-400;">
图 2
因此我们便直接使用该组件构造用来模拟VRML的三维场景(如 图 2)。对于如何在网站上组织管理插件,我们用现今非常流行的Java语言编制了动态菜单来管理。之所以称之为动态菜单,是因为菜单的所有菜单项均是根据一个外部描述文件来动态生成。生成的菜单(如图3)。
-400)=-400;">
有了动态菜单的管理机制,当网站中插件有了变化时,维护人员便可以在最短时间内,最有效的对连接插件的超级链接进行维护。
4 结束语
该课题是在认知心理学理论,教学设计原理的指导下,在多媒体技术、VRML语言、网络共享交互技术的基础上开发出来的。本软件的目的就是为了简化VRML模型制作过程,以便广大教师,特别是非计算机专业的教师应用模型开发课件。教育是一个永恒的话题,也是一门永无止境的科学,在众多教育工作者的共同努力下,它必将会绽放出更为璀璨绚丽的光芒。
参考文献:
1. [美]Andrea VRML 资源手册 电子工业出版社
2. [美]Richard ker Visual J++ 宝典 电子工业出版社
3. 詹里 Delphi 4.0 新起点 机械工业出版社
4. 李元泰 Windows 程序设计实现 电子工业出版社
下一篇:三网融合及其物理网络的选择