马本源 李占利 马天 靳红梅
【摘 要】虚拟实验系统侧重于实验操作的规划、判断以及实验数据的验证,具有仿真性、开放性和交互性等特点,要在效果和操作上尽可能的接近实际操作,才能达到实验训练的目的。本文分析了三维虚拟实验系统的典型类型,总结了其标准的实现流程,以及三维建模、实时仿真和实验交互操作等关键技术。本文工作对于三维虚拟实验系统的研究和开发具有一定的指导意义。
【关键词】虚拟实验;三维仿真;交互操作;渲染引擎
0 引言
虚拟现实技术[1]是一种可以创建和体验虚拟世界的计算机技术,是能够生成多种感官刺激的人机交互系统,具有想象性、交互性和沉浸感等特点。对于一些比较危险的课程实验,稍微的操作不慎就可能会对操作人员构成严重的伤害;受到实际教学空间和实验仪器数量限制,也很难保证每个学生都能进行充分训练。因此,迫切需要将虚拟现实技术引入到实验教学过程中。三维虚拟实验系统利用计算机仿真来模拟整个实验环境和过程,对传统的实验方法进行了彻底改革,让学生通过计算机操作来做实验,以代替或加强传统的真实实验[2]。其扩大了人们的认识领域,得到了普遍的应用。
三维虚拟实验系统侧重于实验操作的规划、判断以及实验数据的验证,具有仿真性、开放性和交互性[3]等特点,要在效果和操作上尽可能的接近实际操作,才能达到实验训练的目的。本文从系统分类、实现流程和关键技术研究两个层面对三维虚拟实验系统进行探讨,详细分析了三维虚拟实验系统的典型类型,总结了其标准的实现流程,以及三维建模、实时仿真和实验交互操作等关键技术。
1 系统分类
目前,关于三维虚拟实验的研究越来越多,被广泛应用到从初中到大学的化学、物理、电气工程、力学、计算机硬件等教学实验,以及人体解剖、交通驾驶教学实验等众多领域。从实现平台来看,大致可划分为这样两类:
(1)以Virtools、Unity3D、VR-Platform等商业三维渲染引擎平台为基础实现。华中师范大学的朱柱[3]基于Unity3D平台,开发了一套三维金属燃烧实验系统,可交互展示不同金属的三维燃烧效果;北京理工大学的陈岩等[4]基于Virtools平台,开发了一套三维虚拟液力变矩器性能试验台,可在三维虚拟场景中进行油路管道连接等交互操作;山东师范大学的冀巧玲[5]基于3dMax建立场景三维模型和实验演示动画,基于VR-Platform平台的纹理烘培和脚本编辑等功能开发了一套中学物理实验平台,并对操作流程和使用效果进行了分析。该类系统的优点是商业软件一般都提供比较完善的功能模块,开发周期短,不需要花费太多精力在技术细节,可以专注于实验的设计和规划。但是,由于商业软件功能和接口限制,显示效果和再开发自由度受到一定限制。
(2)以OpenGL、OpenSceneGraph、Orge等开源三维渲染引擎平台为基础实现。华中科技大学的冯清秀等[6]基于VisualC++和OpenGL平台,建立了真实可控的三维虚拟PLC实验系统,实现了PLC运动过程的控制仿真。西安科技大学的马天[7]等基于OpenSceneGraph平台,开发了一套三维虚拟高压实验系统,设计了一种通用的实验数据格式和操作处理方法。安徽工业大学的谢圣学[8]基于Orge平台,开发了一套建筑钢筋构件仿真学习平台,实现了三维建筑钢筋模型的动态生成、三维立体文字生成等功能。该类系统的优点是开发平台完全免费和开放,开发自由度不受限制,可拥有完全的自主知识产权,推广应用方便。但是,开源软件功能模块不完善,需花费很多精力在技术细节实现上。
从系统结构来看,大致可划分为这样两类:
(1)单机结构系统。文献[3-6]都是这种结构,该类系统专注于个人的实验训练,只需设计独立的三维实验场景和交互操作,系统之间不存在数据交换,系统部署简单,一般安装在实验室的电脑上。但是,这种封闭结构切断了师生之间的指导交流,使得教师不能实时掌握学生的练习情况;学生也只能在实验室才能使用系统进行实验练习。
(2)C/S或B/S网络结构系统。文献[7]采用C/S模式的网络架构,实验设备零件三维模型本机存储,实验操作数据文件和成绩信息数据库放在服务器端。西安电子科技大学的苗晓锋[9]采用B/S模式的网络架构,基于HTML和VRML技术,构建了三层体系结构的远程教育网络虚拟实验系统,可进行电路分析课程二维连线实验和三维实验模型展示。该类系统部署和维护复杂,需要专门的服务器管理实验数据。但是,其弥补了单机系统的不足,客户端位置可不仅局限于实验室,学生可通过网络在任何电脑进入实验系统进行练习,教师也可通过网络实时掌握学生的练习情况。三维虚拟实验系统开放性特点决定其更适合采用网络结构。
2 实现流程与关键技术
根据以上文献的分析,三维虚拟实验系统的实现流程与关键技术总结如下:
(1)开发平台选择,根据开发周期和技术水平选择合适的三维渲染引擎。为了系统后续升级、维护和推广方便,推荐选择开源引擎。
(2)系统结构选择与设计,根据系统部署情况进行系统结构设计。如果只是部署在实验室电脑,可设计成单机结构或者C/S结构;如果希望能够通过网络开放使用,可设计成B/S结构或者C/S结构,需要配置专门的外网服务器支持。
(3)三维实验场景建模与实时渲染管理,一般是通过3DMax、Maya等主流三维建模工具制作高品质的设备模型,然后采用选择的三维渲染引擎平台进行场景模型导入、绘制和管理。为了保证系统实时交互的性能,模型的几何复杂度可通关纹理映射的技术简化;高级光照效果可通过纹理烘培的技术预先渲染成图片,以避免实时渲染计算。如果场景对象多而复杂,可采用场景图的技术来管理和绘制三维场景,即采用自顶向下的分层树形结构来组织场景对象,以提升渲染的效率。
(4)实验步骤数据管理,为了实现控制实验操作和判断正误的程序逻辑,需要设计合适的方式来管理操作步骤等信息。一种方式是直接将信息放在程序判断逻辑或模型文件中,这可以满足单一实验的需求;对于实验对象不同的多种复杂实验,另一种方式是将这些信息写在单独的数据文件中,在程序中取出需要信息,然后采用通用逻辑进行操作控制判断。
(5)实验交互操作,首先需要分析归纳实验操作类型,然后为每种类型设计交互方式。对于传统的桌面式三维虚拟实验系统,一般是通过鼠标和键盘来交互,需要细分鼠标的三个按键的每一种操作方式。对于沉浸式的系统,可配合立体眼镜,通过数据手套等更直观的方式进行交互,需要为每种操作类型设计合理的手势动作。
3 结语
三维虚拟实验系统利用计算机仿真来模拟整个实验环境和过程,对传统的实验方法进行了彻底改革,让学生通过计算机操作来做实验,以代替或加强传统的真实实验。其扩大了人们的认识领域,得到了普遍的应用。三维虚拟实验系统侧重于实验操作的规划、判断以及实验数据的验证,具有仿真性、开放性和交互性等特点。本文从系统类型、实现流程和关键技术研究两个层面对三维虚拟实验系统进行探讨,详细分析了三维虚拟实验系统的典型类型,总结了其标准的实现流程,以及三维建模、实时仿真和实验交互操作等关键技术。本文工作对于三维虚拟实验系统的研究和开发具有一定的指导意义。
【参考文献】
[1]苗志宏,马金强.虚拟现实技术基础与应用[M].北京:清华大学出版社,2014.5.
[2]李耀麟,张吕彦.虚拟实验的研究现状及其发展前景[J].陇东学院学报,2009,2(20):118-121.
[3]朱柱.基于Unity3D的虚拟实验系统设计与应用研究[D].武汉:华中师范大学,2012.
[4]陈岩,姚寿文,刘树成,等.Virtools底层开发技术在虚拟实验中的应用[J].机械设计与制造,2013,3:70-73.
[5]冀巧玲.基于VR_Platform的中学物理虚拟实验的设计与开发[D].济南:山东师范大学,2011.
[6]冯清秀,夏俊力.基于OpenGL的交互式PLC虚拟实验系统[J].实验室研究与探索,2011,2(30):47-50.
[7]Tian Ma, Hongmei Jin, Benyuan Ma, etc. Study on 3D virtual experiment teaching system[C].ICSPCC 2015,Ningbo,2015.9:1-5.
[8]谢圣学.基于OGRE的建筑钢筋构件仿真学习平台技术研究[D].合肥:安徽工业大学,2014.
[9]苗晓锋.远程教育网络虚拟实验系统的研究与设计[D].西安:西安电子科技大学,2008.
[责任编辑:王楠]