基于三维引擎的虚拟实验教学系统交互模式研究*
2010-09-09郝挺雷林筑英
□师 蕾 郝挺雷 林筑英
基于三维引擎的虚拟实验教学系统交互模式研究*
□师 蕾 郝挺雷 林筑英
虚拟实验教学系统的高交互性是关乎虚拟实验教学成败的决定性因素,采用三维引擎技术可实现智能化的沉浸感实时交互.以建构主义学习理论和远程教学交互层次塔理论为指导设计了虚拟实验教学系统的总体框架结构;基于三维引擎技术开发的虚拟实验教学系统分别实现了虚拟实验辅助支持、虚拟实验操作智能交互和分布式人际交互等三种交互模式.本系统有效地解决了虚拟实验教学的高交互需求问题,充分增强了学习者的智能化交互式学习体验.
交互层次塔;Torque三维引擎;实验辅助支持;碰撞检测;分布式人际交互
一、引言
虚拟实验教学系统作为一种运用虚拟现实技术模拟真实实验的网络化计算机教学系统,融合了网络教学的优势,以其建设速度快、成本低、易于管理、容易共享等优点取得了飞速的发展.采用虚拟实验教学系统,可以突破时间、地点和设备数量的限制,使学习者在一个更安全可靠的环境下做实验,顾虑更少、自由度更大,有效地增强学习者的学习兴趣、动手能力和分析问题、解决问题的能力.通过对国内外研究现状及对现有的虚拟实验教学系统进行分析[1~3],虚拟实验教学系统还存在一些值得改进的地方,其中关键的一点是系统的智能化程度不能完全满足学习者对系统交互性的较高需求.而虚拟实验教学系统的高交互性是关乎虚拟实验教学成败的决定性因素.三维引擎有着强大的功能和成熟的虚拟环境交互实现开发模式,因此如何采用三维引擎技术开发虚拟实验教学系统以实现系统的智能交互,满足学习者的交互式体验和沉浸感学习的需求就成为问题的关键.本文将远程教学交互层次塔理论和Torque三维引擎引入虚拟实验教学系统的创建中,并对系统交互相关的功能模块的实现进行了研究.
二、虚拟实验教学系统的概念模型
1.交互层次塔理论
学习是在教与学的相互作用中发生的,教与学的相互作用是通过教学交互实现的,因此虚拟实验教学系统中各种交互的设计水平直接反映了教学的水平,也直接影响学习者的学习效果.虚拟实验教学系统的本质是为学生的学习服务,所以系统的设计是必须在学习理论的指导下通过意义协商和共同建构来支持学习者实现有效地学习.虚拟实验教学交互的理论基础是建构主义学习理论和远程教学交互层次塔理论.
建构主义认为知识不是通过教师传授得到的,而是学习者在一定的情景即社会文化背景下借助其他人(包括教师和学习伙伴)或者利用必要的学习资料,通过意义建构的方式获得的.建构主义学习理论认为"情景"、"协作"、"会话"和"意义建构"是学习环境中的四大要素和四大属性[4].意义建构的实现需要交互性学习环境的支持,而虚拟实验教学系统正是基于建构主义学习理论利用虚拟现实技术创设包括协作伙伴、指导教师、实验仪器与实验环境等仿真实验情景,通过学习者与教师或学习伙伴之间、学习者与情景之间的交互作用实现新的意义建构.
虚拟实验教学系统架构的各种交互模式是基于远程教学交互层次塔理论构建的.陈丽教授提出的交互层次塔将远程教学交互分成三个层面(如图1):学生与媒体界面的操作交互、学生与教学因素的信息交互、学生已有概念与新概念的概念交互[5].操作交互体现在学习者的肢体对媒体的操作过程中;信息交互体现在学习者与某种教学要素之间,学习者通过各种符号进行有关学习的信息交换的过程中,它包括三种形式:学习者与学习资源的交互、学习者与教师的交互、学习者与学习者的交互,这三种形式的信息交互互相补充;概念交互是学习者头脑中新旧概念之间的相互作用,新旧概念相互作用的结果产生学习者的同化和顺化.
通过对图1的分析可知,三种教学交互的关系是:操作交互是信息交互发生的条件,操作交互中的动作是由信息交互的需要和媒体界面的特征来决定.概念交互产生于信息交互的过程中,概念交互的水平和方向决定了学习结果,概念交互的结果将决定信息交互的内容和形式.所有类型教学交互的目的都是通过各种信息交互来促使概念交互的发生,并使结果朝着教学目标不断接近,操作交互是这个过程的技术保障.
从操作交互、信息交互到概念交互,交互行为逐渐从具体到抽象、从低级到高级,高级的教学交互以低级的教学交互为条件和基础.概念交互是虚拟实验学习的起点和终点,操作交互和信息交互是虚拟实验学习的外显过程.远程教学交互层次塔在一定程度上解释了虚拟实验交互的本质,借助该理论可以辨析虚拟实验中各种交互现象的实际作用和相互关系,对虚拟实验教学系统中交互的开发有重要的指导意义,也成为指导探索促进虚拟实验教学交互的有效途径.
2.三维引擎技术
Torque引擎是一款面向对象、基于OpenGL底层渲染技术、多平台支持、室内外无缝结合、功能全面的专业三维引擎,是美国专门从事游戏引擎平台开发的GarageGames公司的主导产品[6-7].Torque引擎的技术特色如表1所示.
表1 Torque引擎技术特色
通过表1可见,Torque具有强大的功能和成熟的虚拟环境交互实现开发技巧,其脚本系统为开发者提供了一个简单宜用的开发环境和脚本/引擎接口,同时提供了世界编辑器、GUI编辑器等可视化的开发工具.例如Torque所特有的内建世界编辑器集成了所见即所得的世界地图编辑功能,支持对象的构建、放置、大小调整以及旋转功能,因此采用内建世界编辑器可以很好地实现虚拟实验教学系统里虚拟实验器材的选择、放置、大小调整等功能.Torque所特有的在交互功能实现上有显著成效的集成式、拖放式、所见即所得的GUI编辑器,专业的骨骼动画系统和低廉的授权费用等都使其成为实现虚拟实验教学高交互的最佳选择.
三、虚拟实验教学系统的总体架构
根据建构主义和交互层次塔学习理论,设计虚拟实验教学系统包括虚拟实验辅助支持模块、虚拟实验操作模块和人际交互模块三个主要模块.其中虚拟实验辅助支持模块主要为学习者提供实验前的必要准备资料;操作模块则为学习者创设相关的实验"情景"和虚拟操作;人际交互模块为学习者提供实验过程中实时与非实时的"协作"和"会话".他们保证了学习者在虚拟实验场景下完成新的"意义建构".
在教学交互层次塔的指导下,将操作交互、信息交互、概念交互融合于虚拟实验教学系统各个模块的创建中,构建出虚拟实验教学交互系统总体框架(如图2).虚拟实验辅助支持模块为学习者提供实验操作之前的必备知识,以实现学习者与学习资源之间的交互.在学习者与学习资源交互的同时,将自己的原有概念和新的学习信息中包含的概念进行交互,以实现新旧知识之间的转化.虚拟实验操作模块是虚拟实验教学系统的主要部分,学习者通过自己的虚拟操作和系统给予的实时反馈,实现操作交互、信息交互和概念交互.人际交互模块是虚拟实验教学能否成功的决定性模块,此模块提供给学习者与学习者、学习者与教师之间的实时与非实时的人际交互,以此完成学习者新旧概念之间的交互,达到实验目标.
四、虚拟实验教学系统模块的功能实现
1.虚拟实验辅助支持模块
虚拟实验辅助支持模块是学习者登陆虚拟实验教学系统后对实验的相关信息进行详细地了解和学习的交互模块.辅助支持模块中将实验内容介绍、实验目标、实验原理、实验步骤和实验应用等内容以文本知识框或演示视频的媒体形式呈现给学习者,实现学习者与学习资源之间的交互以及学习者新旧概念的交互,使学习者能够掌握本次实验的相关详细信息,并对其后的实验操作有充足的理论支持和目标导向.
以《多媒体技术》课程为例,其中一个重要的实验内容就是多媒体教室中各种多媒体设备的连接与组装,这属于实际操作类实验[8].针对该实验,本系统的虚拟实验辅助支持模块通过Torque引擎设计了GUI界面,其中实验内容介绍、实验目标、实验原理、实验步骤等信息以文本的形式提供给学习者,学习者只需用鼠标点击相关的标题和索引,即可查看相应的文本内容.另外,实验步骤还提供了部分关键操作的视频教程,教师提前将实验操作的几个关键步骤在真实的实验室进行操作,并将之录制成视频文件.学习者如果对抽象的文字介绍有不懂或者是难以理解的方面,只需用鼠标点击并查看演示视频即可获得形象直观的实验操作指导.
Torque(v1.8.1)虽然不支持视频媒体的播放功能,但是通过对引擎底层C++代码的修改添加即可实现视频的读取和播放功能.本系统中"GuiAviBitmapCtrl::movieStart()"为视频播放调用函数, "GuiAviBitmapCtrl::onRender(Point2I offset,const RectI&updateRect)"为视频在引擎中的渲染函数.在脚本中添加"IntroVideoGui.gui"文件制作视频播放GUI交互界面,并在脚本中添加动态属性"parentGui="";",该属性用来记录视频播放之前的场景,以便视频播放完成后能够返回到原来界面.视频播放过程中可以通过鼠标单击随时结束视频的播放,返回到原来界面,函数"GuiAviBitmapCtrl::on-MovieStopped()"用于实现视频播放的停止;也可以等待视频播放结束,自动跳转到原来的场景.
2.虚拟实验操作模块
虚拟实验操作模块要提供学习者控制的虚拟角色在虚拟实验场景中任意的三维漫游功能以及对实验场景中的实验对象(如实验器材等)进行诸如细节查看、选取、移动和摆放等实验操作.其中最重要的是虚拟实验操作智能交互功能,即学习者在进行实验的过程中,三维引擎对其实验操作进行行为检测和判断分析,并给学习者提供实时的操作结果智能反馈,以使学习者能够及时知道自己的实验操作是否正确.
Torque引擎本身具有强大的编辑系统,可以通过继承其自身所具有的场景编辑器相关功能实现虚拟实验操作所要求的实时交互功能.比如在脚本语言中定义"function serverCmdSelectObject(%client,% mouseVec,%cameraPoint)"函数实现对场景中任意对象的选取,通过"function PlayGui::onMouse-DoubleDown(%this)"函数实现双击查看被选中对象的名称、作用和注意事项等实验基本参数的介绍.
为了增加场景的真实感,在虚拟实验操作过程中要避免穿墙或者学习者角色模型穿过实验仪器的行为,碰撞检测是最为重要的一项.Torque支持高级碰撞检测,在Torque中使用"containerRayCast (…)"函数来进行场景中的碰撞检测.基本原理是:引擎有一个全局的碰撞盒容器,每个"sceneObject"被创建的时候,不仅会被加入到"scene-Graph"进行渲染,而且还会被加入到一个碰撞盒容器中,物体的碰撞盒是从模型中解析的.确定碰撞盒的算法是利用一次矩(均值)和二次矩(协方差矩阵)统计量来计算它的位置和方向[9].设第i个三角形的顶点矢量为pi,qi和ri,碰撞盒包围的三角面片数为n.则碰撞盒的中心位置为:
协方差矩阵元素:
由于C是一个实对称矩阵,所以矩阵C的特征向量是相互垂直的,可以作为碰撞盒的方向轴.把将要检测的碰撞模型的顶点向方向轴上投影,找出各方向轴的投影区间,各投影区间的长度就是所求碰撞盒相应的尺寸.学习者控制的虚拟角色模型在场景中向前走动时,实际上是在碰撞和容器中产生一条射线, Torque再利用线面相交检测算法,检测到哪个面最先与射线相交,从而得知该射线所碰撞到的物体,从而实现了碰撞的实时监测功能.
借助Torque引擎的逻辑推理能力将虚拟实验操作智能交互设置为一个包括感知模块、控制模块和执行模块的模型,构建较为完备的内部控制机制,解决实验操作中的过程规划和智能响应问题(如图3).在学习者控制的虚拟角色进行实验的过程中,感知模块的"function Operation::getOperationState(%this, %obj,%position)"脚本函数对其操作进行检测,控制模块的"function Operation::osAnalysis(%this,% obj,%operationType)"脚本函数据检测结果进行判断并生成解决策略序列,执行模块的"function Operation::operationExecute(%this,%obj,%operationType,%osAnalysisRuslt)"脚本函数通过调用虚拟角色或实验器材的相关三维动作文件并渲染到场景中实现对学习者的实时实验结果反馈.例如当学习者操作不正确时实验操作反馈功能会对操作的错误进行分析,调用相应的错误结果生成动画场景,并且通过GUI呈现给学习者应该采取的更正措施以帮助其进行正确的操作,如此往复,直到学习者操作成功.
3.分布式人际交互模块
人际交互是指人与人之间的相互交流与相互作用[10].虚拟实验教学中的人际交互从时间维度上来说包括实时人际交互和非实时人际交互;从参与者维度上来说包括教师与学习者之间的交互、学习者与学习者之间的交互.分布式的学习者通过与自己的同伴、教师之间的交流,对原有的概念有了更加深入的认识,促进新旧概念之间的转换[11].人际交互贯穿于虚拟实验教学的始终,直接影响着学习者的动机、学习态度、对实验学习的满意度、批判性思维能力、问题解决技能以及更高层次的认知处理能力(如图4).因此,如何在虚拟实验教学系统中实现即时通讯(聊天)功能至为重要.
虚拟实验教学中要想实现在线即时通讯必须要实现网络联机功能,本系统中通过"function InitHTTP ()"和"function GameConnection::initialControlSet (%this)"脚本函数实现服务器端网络服务器设置的初始化,然后客户端"function GetWebInfo(% thePageName)"脚本函数实现与服务器网络的连接及网络信息的获取,最后通过"function Game-Connection::onConnectionAccepted(%this)"来判定客户端网络是否连接上了服务器端.如果已经连接成功,分布式的学习者就能够在系统中进行在线即时通讯交流了."functionMessageHud::open(% this)"实现将系统聊天的窗口内嵌到整个系统的场景中,"function onChatMessage(%message,% voice,%pitch)"脚本函数实现了将所有的分布式学习者输入的聊天信息全部显示在每台已经连接到服务器上的客户端显示界面中,这样便实现了分布式学习者之间的人际交互.
五、结束语
本虚拟实验教学系统的总体框架是在建构主义学习理论和远程教学交互层次塔理论的指导下设计的,既保证了框架设计的科学性又充分考虑到了学习者对各种交互的需求.基于三维引擎技术实现了虚拟实验教学系统设计虚拟实验辅助支持、虚拟实验操作智能交互和分布式人际交互等三种交互操作模式.结果表明,三维引擎有效地解决了虚拟实验智能性和交互性不足的缺点,满足了虚拟实验教学所需要的各种交互需求,三维引擎能够用以开发智能性和高交互的虚拟学习系统.
[1]刘筱兰,张薇,程惠华等.虚拟实验室的类型及发展趋势[J].计算机应用研究,2004,(3):8-10.
[2]R Chellali,C Dumas,Nicolas Mollet,et al.A Virtual Classroomfor Collaborative and Distant E-Learning Systemby Teleoperating Real Devices[J].International Journal of Computer Games Technology, 2009:1-9.
[3]A S DRIGAS,L G.KOUKIANAKIS,J G GLENTZES.A virtual Lab for Hellenic cultural heritage:proceedings of the 5th WSEAS Int.Conf.on Artificial Intelligence,Knowledge Engineering and Data Bases,Madrid, Spain,2006[C].Wisconsin:World Scientific and Engineering Academy and Society(WSEAS),2006:291-296.
[4]高文.教育中的若干建构主义范型[J].全球教育展望,2001,(10):3-9.
[5]陈丽.远程学习的教学交互模型和教学交互层次塔[J].中国远程教育,2004,(3):24-28.
[6]Kenneth C,Finney.3D Game Programming All in One[M].Florence: Course Technology PTR,2004:19-23.
[7]A brief summary of what Torque 3D has to offer.[2010-02-20].http:// www.torquepowered.com/products/torque-3d
[8]林筑英,林建勤,欧晓鸥.多媒体技术及应用[M].北京:中国电力出版社,2008.
[9]陈学文,丑武胜,刘静华等.基于包围盒的碰撞检测算法研究[J].计算机工程与应用,2005,41(5):46-50.
[10]陈丽.术语"教学交互"的本质及其相关概念的辨析[J].中国远程教育,2004,(2):12-16.
[11]谢云,邱婷,何玲.网络协作学习中的人际交互策略[J].远程教育杂志,2009,(2):63-65.
郝挺雷,硕士研究生,华中师范大学国家数字化学习工程技术研究中心(430079).
责任编辑 郑重
G40-057
A
1009-458x(2010)08-0070-05
贵州省自然科学基金项目《虚拟实验室真实感图形技术的研究》(黔科合J字LKS[2009]14号) 2009年贵州师范大学研究生专项创新基金重点项目《基于Agent的智能虚拟实验教学研究》(研[2010]10号)
2010-04-15
师蕾,硕士研究生;林筑英,教授.贵州师范大学数学与计算机科学学院(550001).