本站小编为你精心准备了多媒体技术虚拟现实设计与实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:多媒体技术与虚拟现实技术是当今计算机发展的必然趋势,如果将两者结合起来应用于教学领域会是一种有益的尝试。本文主要介绍了利用虚拟现实技术制作一个动画开发环境的思想和方法,目的是解决制作网络教学软件时动画开发依赖动画工具比较复杂以及传输速度较慢的问题.这个开发环境适用于非计算机专业的教师使用。
关键字:多媒体技术虚拟现实(VRML)动态链接库计算机辅助教育
1问题的提出
1.1面临的四个问题
通过研究分析,发现摆在我们面前的问题主要有四个:
(1)如果想使一个VRML模型适应不同的用户需求,该模型就必须是按用户要求动态生成的。如根据用户输入的长、宽、高生成相应的长方体模型。采用什么办法?
(2)在模型数量越来越多的情况下,必须具备一种管理模型的机制,能有效的组织和管理众多的模型。是利用数据库还是别的什么技术?
(3)为了保持该系统的稳定健康的发展,必须能及时给系统补充新的模型,并对以往开发的旧模型进行及时更新。那么网络是不是我们最好的答案?
(4)对于按用户要求动态生成的VRML模型,必须提供一种方法将其应用于教学软件开发环境中,如VB、Authorware等。这种方法是什么?
1.2四个模块的确立
基于上一小节的分析,我们将该开发环境的设计分解为四个模块进行处理:
VML(VRMLModelsLibrary)构建机制的设计与实现
VRML代码引擎的设计与实现
VML网站建设
利用VB或Authorware开发基于VRML的课件
首先使用者利用VML将用户提出的要求(VRML节点的参数)传给VRML代码引擎,由引擎生成相应的VRML代码,再通过VML将生成的代码返回给使用者。然后使用者将得到的VRML代码应用于其教学软件开发环境中。同时,使用者还可以不断的通过VML网站对VRML引擎进行丰富和更新。
2VML构建机制的设计与实现
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
其中各定义的意义如下表:
有了参数描述文件,我们又编制了相应的解释描述文件并生成接口的程序。
(3)对于生成的VRML模型,用户是想将其独立应用,还是组合到其他模型中去。对于这两种使用方式,最终的VRML代码是有一些区别的。因此,必须提供对于该问题的选项以保证生成的代码具有针对性。在我们的系统中具体的实现方法是如果用户想将生成的模型组合到其他模型中去,他只需要将生成的代码拷贝到剪贴板,然后再复制到他所在的VRML编辑环境中去。如果他是用于另一种目的,则系统将生成的代码自动进行包装并保存到用户指定的.wrl文件中去。
2.2组织与管理大量的VRML模型
随着模型(代码引擎)的不断开发,其数量也会越来越多。在这种情况下,就要求我们设计出一种能有效地组织和管理众多的模型的机制。我们首先想到用数据库来管理。但经分析发现,如果数据库能根据用户的要求返回模型,那这种模型必然是在数据库中已经存在的静态模型。如果考虑到用户的各种要求,这个数据库必然会无限膨胀以致失去其数据库管理所具有的任何优点。通过分析决定借鉴当前应用软件(例如3DMAX)比较流行的管理机制——插件。这种机制就是将一类模型组织为一个插件(即为VRML代码引擎)放到系统下。每次启动系统,系统会自动将其目录下的所有插件装载到系统中来扩充自己的功能。可以想象采用了这种机制,肯定会极大地提高系统的扩展性与开放性。我们受到Windows编程中的“回调函数”思想的启发:一般操作系统都是由系统提供函数,由程序来调用,而回调函数则是由程序提供函数,由系统调用,方向刚好相反。
这样,我们的插件(VRML代码引擎)也被设计成能够提供一些标准的例程(回调函数)来供系统来调用。其与系统协作的机理如下图(图1):
这些例程包括:
getLibName返回该插件所代表节点库的名称
getNodeNameList返回该插件所提供的模型列表
getArgs返回当前选中模型的参数描述定义
checkArgs核对用户的输入是否正确
processArgs利用代码引擎生成VRML代码
根据以上机理,我们编制了系统“诺德发动机(NodeEngine)”;而插件则是制作成DLL(动态链接库)形式。之所以采用DLL这种形式,是因为我们可以利用DLL的输出例程及其动态调用机制模拟回调函数。鉴于Delphi4集成开发环境是真正的面向应用程序设计全过程的可视化应用程序开发环境,其提供的大量实用工具可以使开发人员很容易地实现和完成复杂的功能。因此我们选择Delphi4作为我们的系统及插件的开发工具。
最后我们通过实例验证了上述机制的可行性及实用性。另外补充一点:由于插件开发采用了DLL方式,所以只要其提供了符合规则的例程,至于使用什么开发工具开发则是无关紧要的。因此说,为了在极大程度上得到第三方开发人员提供的支持,该系统在开放性上做出了有效的努力。
3VML网站建设
只有不断变化、更新的事物才最具有生命力。由于我们的系统采用了插件机制,因此对于模型的更新与补充是相当方便的。只需将新的插件替换老的插件即可。问题是新的插件从何而来。最好的途径当然是利用Internet。这就要求我们首先要建立一个VML网站,其次在系统中提供一个连到网站上的接口。对于后者,实现的方法非常简单,只需在系统中提供一个连到VML网站的快捷按钮即可。
VML网站的建设有两点是很重要的。第一应使访问者感受到该网站与其他网站的区别,即应体现出VRML的存在。第二对于众多的插件,应分门别类加以管理,也就要合理安排超级链接。在网站的实现中,我们用Java编制了动态菜单来实现对插件有效的管理。
至于如何体现VRML的存在,我们在网站首页用VRML编写一个简单的三维场景。但是VRML是用VRML浏览器播放的,在IE中,三维场景与网页其他部分会被VRML浏览器分隔开,不利于整体效果。为了解决这个问题,我们对VRML浏览器进行研究发现其描绘三维场景时使用了Microsoft公司的DirectX技术。在DirectX中有一个组件DirectAnimation是专门用来配合DHTML(动态HTML)制作网页二维和三维动画的。
因此我们便直接使用该组件构造用来模拟VRML的三维场景(如图2)。对于如何在网站上组织管理插件,我们用现今非常流行的Java语言编制了动态菜单来管理。之所以称之为动态菜单,是因为菜单的所有菜单项均是根据一个外部描述文件来动态生成。生成的菜单(如图3)。
有了动态菜单的管理机制,当网站中插件有了变化时,维护人员便可以在最短时间内,最有效的对连接插件的超级链接进行维护。
4结束语
该课题是在认知心理学理论,教学设计原理的指导下,在多媒体技术、VRML语言、网络共享交互技术的基础上开发出来的。本软件的目的就是为了简化VRML模型制作过程,以便广大教师,特别是非计算机专业的教师应用模型开发课件。教育是一个永恒的话题,也是一门永无止境的科学,在众多教育工作者的共同努力下,它必将会绽放出更为璀璨绚丽的光芒。