远程交互式三维仿真课件编辑平台的设计与实现

时间:2022-10-10 12:18:05

远程交互式三维仿真课件编辑平台的设计与实现

摘要:针对目前教育信息资源库中缺少三维仿真精品课件的问题,我校创造性地开发了远程交互式三维仿真课件编辑平台。本文首先介绍该平台的总体功能结构,并详细说明了各模块的工作机制,最后结合实例说明使用该平台开发的课件在实际教学中的具体运用。

关键词:三维仿真课件;场景图;OpenGL着色语言

中图分类号:G642

文献标识码:B

文章编号:1672-5913(2008)02-0095-05

1引言

随着计算机网络和虚拟现实技术的发展,现代远程教育引发了一场深刻的教育模式和教育观念的变革。传统的文字、幻灯、实物模型的教学方式已不能满足教育变革的要求,如何把枯燥的学习对象构造成三维可视化的、所见即所得的学习教具和学习培训环境,成了教育信息领域努力追求的目标之一。

本文开发的远程交互式三维仿真课件编辑平台是在对OSG(Open Scene Graph)进行功能扩展与大幅度改造后的一个易于快速定做仿真课件的平台。该平台将三维仿真设计、实时渲染浏览和远程网络压缩等功能融为一体,使用户可以针对教学重点、难点,方便快捷地制作出三维仿真教具和实物模型,用于形象教学和交互式趣味教学。

该平台通过标准化设计把一些知名的开源软件和引擎融为一体,如Open Scene Graph(OSG)、Open Dynamics Engine(ODE)、Character Animation Library(CAL3D)、OpenGL等。通过对这些底层模块进行隐藏封装、模块整合等技术开发,继承与发展了各类引擎所具有的先进特性。不但仿真效果的真实性大大提高,而且能直接处理大量模型数据,使高质量的三维画面在远程交互中能快速传输,为广大师生展现了全方位的、真实的学习对象和学习环境。

2总体功能结构

远程交互式三维仿真课件编辑平台由3dsmax建模及输出模块、场景编辑器模块、仿真数据库管理模块、仿真算法模块、VR仿真内容系统模块、流体动力学粒子系统仿真模块、网络仿真及通讯模块、多通道视觉仿真模块、各类仿真特效模块、OCX控件二次开发包模块等功能模块组成,如图1所示。

2.13dsmax建模及输出模块

在仿真项目的制作过程中,明确需求并确定计划后,首先要面对的工作就是仿真场景的构建。该模块支持对Multigen openflight等多种文件格式的导入,且能对输入的场景自动优化。用户不但可以在场景中建立新的几何物体,而且能创建自己的实时图库,可以随时入库和调用。此外,模块还支持MAX的视图操作功能,用户可对模型进行平移、旋转、缩放等操作,建模模块如图2所示。

仿真项目的场景构建完毕后,可以通过这个模块向原来内容相对比较单一的几何体赋予仿真需要的各种属性,诸如LOD、switch节点、碰撞、物理属性等。此外用户还可以对各节点进行增加、删除、重命名等操作,或者改变节点的Group关系。同时该模块提供对形体、光源和相机的直接操作,以及真实感属性的编辑,极大地提高了虚拟世界的真实度。如图3所示。

2.3仿真核心工作模块

这个模块是仿真系统的工作核心,主要处理一些内核的仿真任务的调度,各个任务之间的结构是基于事件驱动的结构关系。模块初始化时会建立一个动态的事件列表,并按时间的先后顺序确定任务的优先级。当某个事件被触发时,核心工作模块就会通过消息机制激活所有的与该事件相关的过程或函数,协调各仿真模块共同工作。它主要调度以下几个模块:

Ø 仿真数据库管理模块

数据库是与仿真紧密联系的一个部分,很多仿真数据的读入及保存都必须通过数据库进行。该模块在内核中保留了最基本但功能又非常强大的数据库处理能力,通过这个模块,可以处理海量的数据。当数据量大而导致内存不够时,这个模块会通过一套内置的虚拟内存系统将硬盘与物理内存进行动态交换,并且对大型场景进行动态加载。

该模块的另一作用是将各种插件式开发的.dll功能增强模块作为一个数据库进行动态管理。这样如果用户或者软件研发者需要增加额外的系统功能,只需要编写一个.dll插件,再在这个数据库系统中进行一次注册,然后就会在下次系统启动时自动加载。

Ø 仿真算法模块

无论在数值仿真或者视觉仿真领域,都会面临着许多的仿真算法。这个模块提供了一些仿真领域中最常见或者使用频率最高的算法。用户不用重复编写常用算法,只需要调用几个现成的函数就能解决常见问题。

Ø 流体动力学粒子系统仿真模块

在军事或者其他常见领域的仿真中,粒子系统是种常见的现象,如轮船开动时的尾迹、飞机航行时的尾迹与烟雾等。在粒子系统仿真模块中,大量的粒子图元集合在一起,通过其属性的变化表现物体的物理特性,用以进行不规则物体的模拟。用户可以通过定义粒子的形状、大小、生存期、位置、速度、加速度、颜色、透明度等属性来实现对各种烟雾、火焰、闪光等现象的模拟。如图4所示。

Ø 各类仿真特效模块

在自然界中存在着很多的自然现象,如下雨、下雪、水面的反射、有阳光或者灯光时的镜头光晕等等各种效果。该模块支持以上提到的各种特效,令仿真的效果栩栩如生。如图5所示。

Ø 网络仿真及网络通讯模块

该模块支持内部网与互联网方式演示。当互联网因带宽受限以及客户机配置未能达到基本要求时,可采用降低图形质量的方法进行传输。内部教学网络则可以不受限制,便于集中培训教学与虚拟实践。该模块还设置了分级权限使用,给不同身份的用户授予不同的权限,便于系统管理。

Ø 多通道视觉仿真模块

在一般的视景仿真系统中,通常采用单视觉通道来显示三维图形。单视觉通道只能显示一个视野,而利用多通道视觉仿真系统就可以得到更广阔的视角效果,增强了“沉浸”感。

该模块提供了获取当前视角的函数,且支持水平和垂直视角自动匹配的功能。在视点位置、方向以及远近裁剪面的距离确定后,系统还可自动完成视景体的裁剪。

2.4VR仿真内容系统模块

该模块可将仿真课件成独立的exe文件,且所有必需的库文件与资源均打包在内,用户可自行设计图形界面,便于分发与保密。打包后的可执行文件在运行时支持用户的交互式浏览,用户可以根据需要选择自动播放或单步操作,方便教学与虚拟装配。

2.5OCX控件二次开发包模块

交互式三维仿真课件的开发一直被认为是一项复杂的工作,因为涉及到C语言、OpenGL、Direct3D等基础开发工具的应用,这无疑降低了开发效率,延长了开发周期。因此这一模块引入了与各类开发平台挂接和无缝植入的快速虚拟现实开发工具3DVR OCX,通过此可编程控件OCX,用户可以轻松做出实用的仿真课件,极大地提高了开发工作的效率。如图6所示。

3关键技术研究

3.1场景图

内核采用场景图SG(Scene Graph)结构,通过场景图把各场景及其属性组织成一棵场景树。场景图中的根结点表的是整个三维场景,子结点表示场景中每个对象的位置信息、动画设置以及逻辑关系等属性,叶子结点则代表物理对象本身、可拉伸的几何模型和材质属性。

采用这种树状组织结构可以大大缩减剔除的执行时间。当父结点对象被遮挡或处于观察区域以外时,父结点就被设置为不可见,位于父结点以下的所有子结点对象也都是不可见的,这样就无需再比较子结点对象的空间边界,避免了重复执行对多个对象物体的剔除处理,从而加快了场景渲染的速度。例如,要剔除一座大楼时,只需计算这座大楼的空间边界是否在观察区域内,而大楼的门、窗等对象因为属于大楼对象的子结点,就无需再判断其空间边界,从而缩短了剔除的执行时间。

此外,场景图结构还使得动画设置变得更加灵活。当我们要对一辆汽车设置平移动画时,只需对汽车这个结点设置移动的相关参数,处于子结点位置的车轮、车门等对象就无需再进行重复设置。如果用户只要求车轮做旋转动画或者车门做开门动画时,只要查找到对应结点,设置动画参数即可。由此可见,对于一个包含有多个对象的三维场景,这种树状结构有效地简化了动画设置的操作过程。

场景图结构中还集中了对各个对象的状态管理。场景图中的每个对象都有一个指向状态集的指针,这个状态集中包含了颜色、纹理、灯光、透明度等信息。对处在同一层的对象,首先归纳出它们的相似状态,并设置状态指针指向同一个状态集。例如,图7中坦克的炮塔和基座同处在场景图的第二层,所以状态都设置为迷彩色。这种状态管理方式可以简化状态设置的过程。当对象状态发生改变时,我们只需先按照广度优先的顺序遍历场景树,查找到对象后,将状态集中的属性进行一次更改,则同层的所有对象状态都会发生改变。当场景中的图形对象达到成百上千时,这种状态管理方式的优势就会更加明显。

3.2OpenGL着色语言

内置了对GLSL(OpenGL Shading Language,OpenGL着色语言)的支持,突破了OpenGL传统渲染模型的固定功能性。用户可以自定义渲染管线的处理过程,实现顶点着色和片断着色,从而绘制出更丰富的纹理,模拟更真实的自然景象。同时该技术是直接对显卡编程,源代码在OpenGL内部编译,不占用CPU资源,因此在处理三维图形的实时渲染方面显示了强大的优势。

具体的实现过程是,当处理图形渲染任务时,首先调用OpenGL的一个API函数glCreateShader来创建着色器(shader),同时在OpenGL的驱动程序中为着色器分配数据结构。着色器通过获取当前OpenGL中的状态信息(如位置、颜色、法线等)进行投影变换、坐标转换、颜色计算等操作,然后调用glShaderSource命令将着色器代码传递给OpenGL驱动程序,用glCompileShader命令将代码编译成机器语言,并以二进制文件的格式传递给显示硬件。该方法不依赖显示硬件的汇编语言接口,突破了图形硬件在汇编语言接口上的诸多限制,有效地提高了图形渲染的效率。

4实例研究

三维仿真课件可以模拟各种真实的空间和实体,能展现那些在传统教学中无法实现的教学效果,如一些危险的或是耗资巨大的实验。尤其在工科教学中,许多知识点抽象难懂,成为了教学中的难点。

目前使用远程交互式三维仿真课件编辑平台已经开发了很多直接面向应用的精品课件,使用该系统开发的“千斤顶的组装与工作原理”课件在实际教学中已收到良好的效果,如图8所示。该课件主要用于培训千斤顶的组装与拆卸,课件中所展示的千斤顶的各个零部件,都是与实际大小相符的三维模型,且零件表面按实物材质仿真,教师和学生可以旋转任意视角观看设备的外形、细节部分和整体外观。课件中设置有整体或局部零件的工作动态演示,用户可以选择自动播放设备零部件拆分和组装演示,也可以进行手动单步拆分与组装。其中自动演示过程是可控的,用户可随时中止或重播动画。这种交互方式不但增强了装配过程的直观性,也提高了学生的动手能力。为了加强学生对千斤顶工作原理的理解,课件中还增加了整体和局部零部件的工作动态演示,任何零部件只要用鼠标点击,其应有的工作动态、工作原理和装配方式就能自动展示出来,同时还配有零部件的详细参数信息、文字说明与二维设计图。

“千斤顶的组装与工作原理”课件以其强大的交互功能、简便直观的操作方法以及实时的三维表现能力得到了广大师生的一致赞同,也推动了三维仿真课件在教学一线的普及。

5结束语

远程交互式三维仿真课件编辑平台是针对教学重点、难点的培训而开发的集三维仿真设计、实时功能渲染浏览和远程网络压缩于一体的仿真系统设计开发包。

该设计平台的成功开发将解决教育领域重点、难点课程的仿真教学课件的制作难题,完善了教育领域远程教学平台的建设,并节约教学培训设备的巨大开销。我们相信,在未来的教育领域中,远程交互式三维仿真课件编辑平台将为信息时代的教育发展注入新的活力。

收稿日期:2007-10

参考文献

[1] 项慨. Java3D应用于现代远程教育的关键技术[J]. 教育信息化,2006,(10).

[2] 刘少华. 虚拟仿真引擎及其在三维飞行再现中的应用[D]. 国防科技大学,2004,(12).

[3] 赵春霞,张艳,战守义. 基于粒子系统方法的三维火焰模拟[J]. 计算机工程与应用,2004,(2).

[4] 陶唐飞,韩崇昭. 视景仿真系统光学视觉通道技术研究与实现[J]. 系统仿真学报,2004,(4).

作者简介

申闫春(1957-),男,河南开封市人,1999年7月在中国矿业大学计算机应用专业获博士学位,2001年12月博士后出站,从事计算机网络与应用、流媒体技术、虚拟现实技术方面的研究。

TEL:010-8216188713341083100

E-mail:

上一篇:高职计算机通信专业课程设置研究 下一篇:高职软件测试专业的构建与探索