基于3D MAX和Virtools的移动通信虚拟实验开发
2014-08-23韩秀玲
凌 申,陈 光,韩秀玲
(东华大学信息科学与技术学院,上海 201620)
0 引言
实验是专业课教学中非常重要的环节,但随着高校学生人数的增加,有限的实验资源无法满足实际教学的需求[1]。尤其像移动通信这样的课程,由于缺乏昂贵的实验设备,使得很多实验课程根本无法展开。针对这一情况,本文研究基于3DS MAX和Virtools技术的虚拟实验开发方法,并参照《移动通信实验与实训》教材,开发一套移动通信虚拟实验系统。实践证明,该虚拟实验系统可以有效地解决通信实验教学资源不足的难题。本文以其中的“CDMA移动台主呼及被呼叫过程实验”实验器材连接部分的虚拟仿真为例,对开发过程进行详细的介绍。
1 开发技术
虚拟实验是对真实的实验场景、器材和实验操作进行仿真,因此需要将实验场景和器材进行搭建,之后在搭建好的模型基础上进行所需的操作。下面将对模型搭建和交互操作的2种软件进行介绍。
1.1 3DS MAX
3DS MAX是Discreet(后被Autodesk公司合并)公司开发的基于PC系统的三维动画渲染和制作软件。其入门较为简单,提供免费版本,因此成为目前个人PC上最为流行的三维建模软件,被广泛应用于工业设计、建筑设计、多媒体制作、辅助教学以及工程可视化等领域。与其它同类软件相比,3DS MAX可以说是最容易上手的3D软件,它和其它相关软件的配合也非常流畅。
1.2 Virtools
Virtools是法国达索公司(Dassault System)开发的一款虚拟现实软件。它在多个领域被广泛应用,如网际网络、多媒体、建筑设计、交互式电视和教育训练等。对于普通的开发者,仅运用其自身携带的500多个BB脚本,便可以制作出高品质效果的作品。Virtools本身不带有三维建模功能,但可以与多种三维建模软件配合使用,如3DS MAX、Maya等。
2 开发流程
该虚拟实验的开发步骤是,首先要模拟出相对真实的实验场景和实验设备,本文利用3DS MAX实现虚拟场景的三维仿真及设备的建模,亦即将实验设备和场景在计算机中进行重建。这里可使用3DS MAX中的材质编辑器设置颜色,并将其编辑给模型的相应部分,对于材质复杂的部分亦可采用贴图的方式[2]。然后,将编辑过材质的三维模型通过Virtools Max Exporter插件导入到Virtools中进行交互,并在Virtools中实现各种期望的功能,该部分也是这个三维实验的灵魂。最后,将制作好的虚拟实验以可执行播放方式或者网页播放方式进行发布。具体流程及每个过程中的格式如图1所示。
图1 开发流程图
3 具体实现
前面已经提到本文所要仿真的对象,这里根据“CDMA移动台主呼及被呼叫过程实验”所需的设备和场景进行建模;在交互方面,除了硬件连接部分的虚拟操作外,为了让学生能够了解和感受真实的实验场景,本文在设计虚拟仿真时,加入了漫游功能,让学生首先对实验环境有充分的了解。因此本虚拟实验包括以下操作步骤:(1)在CDMA模块的UIM卡座上装入SIM卡;(2)用串口线连接计算机和CDMA测试模块;(3)连接电源。该实验的具体开发过程如下。
3.1 实验场景和器材的建模
应用3DS MAX技术分别对虚拟实验中的各个物体进行建模。3DS MAX建模没有固定的方式,但基本的建模原则是消除冗余,降低模型的复杂度,尽量做到形体准确、比例合理、数据量小。根据这些原则分别对虚拟实验中的各个物体进行建模。3DS MAX中实验场景的模型如图2所示,这里不详述。本文只对实验器材中CDMA测试板的建模过程进行具体介绍。CDMA测试板结构相对复杂,因此对各部件分别进行建模,之后选择在菜单栏的“文件”中的“合并”将其组合在一起,并运用主工具栏的移动将各部件移动至相应的位置。CDMA测试版的初步模型如图3所示。
图2 实验场景模型图
图3 初步模型
模型的每一个部件都要进行材质的编辑,图3中模型的颜色是系统为了区分不同部件而自动呈现的。对于模型中单一色调的部件,在材质编辑器中设置相应的颜色,并将其编辑给模型的相应部分。对于材质复杂的部分可采用贴图的方式,其步骤为:材质编辑器、贴图、漫反射颜色、位图。金属感的材质则改为在Virtools软件中设置,因为在3DS MAX中通过材质编辑器的金属材质,导入Virtools中的效果并不理想。编辑材质后的CDMA测试板的模型如图4所示。最后全选所有部件,将其成组并命名为“CDMA测试板”。在这里补充一下,为后面的交互做准备,将CDMA测试板和SIM卡再次成组命名为“CDMA测试板+SIM卡”(交互部分会用到该组)。
图4 编辑材质后模型
3.2 导入Virtools
首先将建模完工后的虚拟场景导出。选择“文件”菜单下的“导出”命令。通过下拉菜单选择Virtools Export(*NMO*CMO*VMO)的文件类型,并输入文件名“CDMA移动台主呼及被呼叫过程实验”。点击“保存”后,在弹出输出设置面板中选择输出类型,出于习惯笔者选择了Export as Objects。打开Virtools,点击菜单栏中的 Resources,选择 Import File双击“CDMA移动台主呼及被呼叫过程实验”。
3.3 Virtools交互设计
Virtools交互设计是实现操作功能的部分。整体的操作界面如图5所示,前面已提到本文只针对漫游、装载SIM卡、串口线连接计算机和CDMA测试模块和连接电源部分进行介绍。具体实现方法如下:
图5 操作界面
(1)装载SIM的实现。本实验测试板原型的卡槽在其底面,因此在设计SIM卡的时候,首先需要将测试板翻转180度,再由SIM卡下落到卡槽的位置,最后CDMA测试板+SIM卡(前面建模时已将二者成组)一起翻转180度,恢复测试板原先的姿态。装载SIM的过程的实现涉及3个动作。根据先后顺序分别对3个动作进行编辑,脚本的BB模块如图6所示。
图6 装卡BB模块
Pushbuttom实现按下“装SIM卡”的按钮,触发该条脚本代码的作用。由左向右第一个Bezier Progression、Rotate(目标测试板)和参数运算脚本Multiplication实现测试板的旋转角度和速度的控制。中间的 Bezier Progression、Translate和参数运算脚本Multiplication实现SIM卡移动到卡槽的动作过程。最后的Bezier Progression、Rotate(目标是CDMA测试板板+SIM卡)和参数运算脚本Multiplication实现整体的旋转角度和速度的控制。3个动作中间使用了2个Delayer连接起来,这样动作的先后过程就会比较鲜明,图7给出了SIM装入卡槽的过程图。
(2)串口线连接计算机和CDMA测试模块。设计的目标是,当用鼠标点击CDMA测试模块数据线接口和计算机USB接口时,将隐藏的串口线显现出来(在此之前已将串口线隐藏起来)。该部分实现的原理和代码与接下来的“连接电源”基本相同,因此该部分不加以赘述。
图7 装卡效果
(3)连接电源。设计的目标是,当用鼠标点击CDMA测试模块电源线接口和拖线板接口时,将隐藏的电源线显现出来(在此之前已将电源线隐藏起来),并且电源指示灯开始闪烁。此功能的实现需要对2个接口进行脚本编辑,二者之间相互联系,因此首先需要在Level Manager中创建一个名为connect power line array的2行1列的阵列。2个接口脚本的BB模块相同,如图8所示。
图8 接电源线BB模块
2个接口各自代码中的Mouse Waiter、2D Picking和Test是用来判断点击的物体是否是该物体本身,CDMA测试模块电源线接口中代码的Set Cell是设置阵列中0行0列的参数,Iterator If和Test是用来判断阵列1行0列的参数值是否为1;拖线板接口代码中的Set Cell是设置阵列中1行0列的参数,Iterator If和Test是用来判断阵列0行0列的参数值是否为1。当左击CDMA测试模块电源线接口时,Mouse Waiter、2D Picking和Test,识别鼠标左击的物体是否是CDMA测试模块电源线接口;若左击到的是该物体,Set Cell便将阵列的0行0列参数设置为1;Iterator If和Test判断阵列1行0列的参数值是否为1,不为1流程终止(说明拖线板接口还没有被点击),为1则流程继续(说明拖线板接口之前已被点击),触发Show将电源线显示出来,并且触发Bezier Progression、Interpotator和Set Diffuse将数据指示灯实现闪烁的效果。上面提到阵列的1行0列不为1的,因而流程被终止,但之前的Set Cell是将阵列的0行0列参数设置为1,因此现在只需点击拖线板接口,便在拖线板接口的代码中实现串口线显示和指示灯闪烁。
这样器材连接部分就完成了,图9给出了完成连接前与连接后的模型效果。
图9 接线效果
4 结束语
在3DS MAX和Virtools环境下,笔者开发了一套移动通信虚拟实验系统,使学生在没有真实实验条件的情况下,也能够沉浸在移动通信的实验场景中,并像在真实环境中一样操作实验设备。本文以“CDMA移动台主呼及被呼叫过程实验”的实验器材连接部分的开发为例,详细介绍了该虚拟实验的开发方法。相对于其他的开发技术,该方法容易上手,易于实现,且开发的作品效果好。在缺乏真实实验条件的情况下,应用该技术开发虚拟实验系统能够解决目前通信实验资源不足的难题。
:
[1]卜朱镇.在线三维计算机网络虚拟实验室的研究与设计[D].上海:东华大学,2012.
[2]廖俊翔.中学物理中利用虚拟现实技术进行探究式教学的研究[D].成都:四川师范大学,2012.
[3]徐英欣,王丹东,胥林.三维游戏设计宝典—Virtools虚拟装配制作实例[M].重庆:电脑报电子音像出版社,2009:386-388.
[4]李永帅,陈清奎,宋开功,等.基于Virtools的虚拟实验室的构建方法研究[J].机电产品开发与创新,2011(2):133-135.
[5]陈舜.基于OpenGL的三维房屋装修系统的设计与实现[D].成都:电子科技大学,2009.
[6]王磊.基于LabVIEW的虚拟实验室与传感器虚拟仪器的设计及实现[D].太原:太原理工大学,2010.
[7]李昌国.基于3D和Virtools技术的虚拟实验室架构设计[D].成都:四川师范大学,2007.
[8]赵沁平,郝爱民,王莉莉,等.实时三维图形平台BHGRAPH[J].计算机研究与发展,2006,43(9):1491-1497.
[9]明日科技,张跃进,苏宇.ASP.NET程序开发范例宝典(C#)[M].北京:人民邮电出版社,2009:411-423.
[10]申蔚,曾文琪.虚拟现实技术[M].北京:清华大学出版社,2009:386-388.
[11]章坚武,姚英彪.移动通信实验与实训[M].西安:西安电子科技大学出版社,2011:94-109.
[12]周良.利用Virtools设计与开发基于分布式VR技术的教学游戏[D].上海:华东师范大学,2008.
[13]张晓梅.论高校图书馆的虚拟馆藏建设[J].医学信息学杂志,2007,28(5):475-476,489.