前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇仿真引擎的关键技术范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
[关键词]游戏引擎;机械动力仿真;虚拟现实技术
中图分类号:TP391.9;TD672 文献标识码:A 文章编号:1009-914X(2014)33-0225-02
一、引言
三维游戏由于引擎技术在建模技术、物理引擎技术、复杂环境的高质量实时渲染技术、动画技术、人工智能技术、对象的行为控制技术等各方面不断的完善和强大,已经极大地引起了人们的关注和重视。游戏引擎不再仅用于游戏娱乐产业的开发,更多的渗透到了教育软件开发、虚拟现实应用、动画影视(特技)制作、军事训练、实时模拟等人类生活的各个领域。极大地改变了人们的生活方式和思维方式。
游戏引擎技术尤其物理引擎技术不断的研究发展,让我们意识到仿真虚拟机械动力的可能性。利用游戏引擎虚拟机械运动,将为开发教育游戏中的虚拟物理实验、网上数字科技馆、娱乐型游戏中的机械道具和多样化游戏任务等具有重要的应用价值和研究意义。
传统的机械动力仿真技术和虚拟现实技术虽然在一定程度上也能虚拟机械的运动,但是由于那些技术不可避免的弊端对机械动力仿真技术应用在其他领域形成了瓶颈。传统的机械工业仿真技术缺乏交互性,设计复杂,表现单调。随着多媒体技术、计算机动画技术、虚拟现实技术、网络技术等技术的渗入,以VRML(Virtual Reality Modeling Language虚拟现实造型语言)或Cult3D为代表的技术给机械仿真领域带来了交互性,但是由于传统的虚拟现实技术固有的特性,如运动行为的硬编码、交互性差、画面不流畅、系统实现复杂等,使得基于游戏引擎技术虚拟机械动力的技术具有很大的优势和更大的发展前景。
本论文研究的技术充分利用了游戏平台的优势,它不仅具有传统虚拟现实系统所有的优点,而且具有3D游戏般的交互性和逼真的动力学模拟。从开发角度而言,游戏引擎的实时渲染能力、快速的计算能力、组件化、可重用性以及面向对象的编程方式等,都使得应用游戏引擎成为一种非常便捷和有效的仿真技术手段。本文描述了利用游戏引擎模拟简单的机械动力实例的核心技术。
二、机械动力仿真技术研究背景
概念设计是机械设计过程中的最初阶段,主要目的是获得产品的本质形状。[3]机械仿真技术的发展为机械工业概念设计注入了新的活力。计算机运算处理能力的提高为机械系统的仿真提供了更好的基础。
我国机械系统传统的计算机辅助工具多数是AutoCAD, Pro/E, Solid Works, Solid Edge, 3D MAX等2D和3D软件,此类建模软件含有大量的图形文件,容量较大,不利于网上传输和远程控制。同时这种方式建立的三维模型是静态的,动画是设计者事先设计好的一副副二维动画,用户只是被动的接受,而不能按照自己的意愿进行实时交互式仿真。
虚拟现实技术作为一种更为人性化的交互技术,近几年来逐渐渗透到各个应用领域。虚拟现实技术的沉浸特征、交互特征和构想特征,刚好弥补了上述传统方法的不足。因此,运用虚拟现实的方法实现机械设计系统成为必然。传统的机械仿真都是代码编写控制的运动效果,没有实现通过物体间力的作用而让物体产生运动,所以不免比较生硬,不能具有可复用性和柔性。
综上可知,机械工业虚拟仿真技术由于其复杂性、综合性决定了开发的困难,因此势必需要一些工具来辅助开发,游戏引擎由于其本身的特点,成为开发机械工业虚拟系统的有力工具。
三、游戏引擎技术
1.三维游戏引擎
一般而言,三维游戏引擎包括:引擎内核、三维图形引擎、物理引擎、人工智能系统、3D模型和图像库、网络引擎、输入系统。三维游戏引擎中各子系统关系可由(图1)表示。
2.游戏引擎技术的优势
(1)利用游戏引擎可以简化系统制作的复杂度,缩短开发时间,降低制作成本。
(2)游戏引擎中强大的物理引擎为该机械动力仿真系统提供了保障,这也是不同于其他虚拟现实技术的闪光点。
(3)该游戏引擎能快速嵌入到网页中运行,因此,极大的活跃了网页式三维虚拟现实技术,因为传统的三维网页虚拟技术在WEB中运行效果不是很好,运行缓慢,效果单调,交互性差,游戏引擎技术的支持在一定程度上可弥补这些不足。
(4)游戏引擎的最大特点是可以实时渲染,这样使得开发者可以及时浏览和调整系统。Unity3D游戏引擎甚至可以支持在程序运行时改动场景中物体的属性。这样的实时性改变,使得开发者能迅速获得最佳的设置效果值。
(5)基于游戏引擎技术开发的机械动力仿真系统,具有游戏般的交互能力,活跃了机械展示的表达方式。
(6)在游戏引擎平台上的二次编程代码被称为“脚本”,大多数脚本语言都是面向对象的编程特点,具有封装、多态、可复用性等特性。简单易学,使虚拟系统设计者易于开发应用。
四、主要结论
3D游戏引擎技术最大的特点就是它把一个程序中可以重复利用的部分,以精巧的模块组织起来,将其规格化、最佳化,以利于程序重用技术。利用引擎不仅可以开发出“景物真实、动作真实、感觉真实”的三维系统,更重要的是利用它我们可以节省大量的人员和资金,简化系统制作的复杂度,缩短开发时间,降低制作成本,并且游戏引擎普遍具有的FPS(First Person Shooting第一人称射击游戏)特性,这一特点可以巧妙的应用于交互设计中。游戏引擎的实时渲染、动态编译和可视化编辑功能有效解决了传统的虚拟现实技术中存在的渲染耗费时间和硬件成本的问题。
3D游戏引擎最吸引人的是它的强大的PhysX物理引擎和真实的图形渲染引擎。强大的功能会提升研究的成功性。从开发方面考虑,该引擎的脚本语言近似c#或javascript,使得开发轻车熟路,而且脚本是动态编译的,运行速度和汇编接近,不会因为脚本的问题而影响系统的执行效率。从方面考虑,该引擎支持跨平台,而且用该引擎开发的作品可以通过网页直接运行,是3D虚拟现实作品轻松实现网页漫游的良好解决方案。
参考文献
[1] 杨红娟,周以齐,石柏成,陈成军.机械系统虚拟现实建模方法的研究.中国图像图形学会.642~646.
[2] 刘强,刘春全.机械动力仿真软件在抽油机运动学上的应用.装备制造技术,2008年,第12期.49~51.
[3] 石其乐.简易型虚拟现实技术的实现.宁夏工程技术,2003 年8 月,第2 卷第3期:227~245
关键词:Unity 三维虚拟技术 桃树 整形修剪
中图分类号:TP39 文献标识码:A 文章编号:1007-9416(2015)07-0000-00
据调查,目前生产中整形修剪的用工量占桃树生产环节总用工量的20%-50%。合理的整形修剪,对桃树丰产、稳产、提高果实品质以及延长树体寿命有极其重要的影响。
随着计算机虚拟技术的不断发展,三维虚拟技术越来越被人们所看重。Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎[1][2]。因此我们希望能将桃树的整形修剪与三维虚拟技术相结合,运用三维虚拟技术将整个桃园以及单个桃树的树形进行展示。
1 桃树三维虚拟系统实现设计
首先通过调研,掌握桃树整形修剪的基础数据,包括树形,枝类,枝量等等数据,为后期进行单元三维建模做准备;其次,根据前期的数据积累,完成主干、主枝、侧枝、枝组、小枝等不同的模型建模部分; 第三,进行Uvw坐标展开与贴图绘制,此步骤主要是将模型展开把拍摄的树皮照片进行贴图,以最大程度的与实物一致;最后,通过UNITY软件对于将前期的内容进行整合,通过C#语言编写程序实现3D引擎的完善,动态展示视角的控制,日照灯光的控制,以及最终的程序界面的设计[3]。具体系统实现设计见图1所示。
2 三维模型建立
三维建模工作是项目具体实施中最基本、重要的工作,也是工作量最大的部分,主要是为了将采集到的桃树相关数据还原成直观的可视化的的3D模型,在此过程中我们与相关果树学专家进行反复沟通,力求桃树还原效果最佳化。
2.1 使用Zbrush制作基础模型
以3人为一小组,组成主干组、主枝组、侧枝组、枝组组、小枝组共5的小组,完成主干、主枝、侧枝、枝组、小枝等不同的模型建模部分。如主干组主要完成主干的建模,以此类推。
2.2 模型导入到3dsmax进行修整
Zbrush输出的模型比较圆滑,需要再次导入到3dsmax软件中进行修正削平,同时需要进行部分树枝模型尖削度的调整,我们还专门配备人员来进行此工作的实施。
2.3 合并成型
各个桃树的主干、主枝、侧枝、枝组、小枝模型构建好后,我们需要将这些元素组合在一起,形成树的最终形态。此工作由于需要工作人员既懂软件操作技能又有桃树修剪经验,所以此项工作我们需要多名课题组成员协调工作,共同完成。
2.4 优化模型
模型在合并后网格和顶点过多,导致数据庞大,一般的计算机的硬件配置无法正常显示,需要将多余的顶点和网格删除或合并,此项工作较繁琐,最终只能使每棵树拥有500000个面左右,这样,一般的计算机显卡才能够承受,运行才会比较流畅[4]。
3 坐标展开与贴图绘制
首先,需要3ds MAX导出到3d-Coat软件中进行展开,使得模型的表皮可以正确的显示贴图,每一个素材模型都需要此操作;其次,要进行贴图绘制,如同上色一样,把树皮画到模型上;最后,进行绘制法线贴图,法线贴图是增强凹凸效果的,此操作相对简单,可以通过树皮模型自动转换。
4 程序实现
本系统的业务逻辑处理用C#、JavaScript技术实现,使用Unity3D引擎开发平台进行开发。通过UNITY软件对于将前期的内容进行整合,通过C#语言编写程序实现3D引擎的完善,动态展示视角的控制,日照灯光的控制,以及最终的程序界面的设计[5]。良好的控制界面是系统成熟应用的最直观的感受。
5 系统实验与分析
采用上述的设计思想和实现方法,实现了基于Unity3D的三维虚拟桃树系统。采用场景漫游技术的虚拟效果逼真,整个画面真实度高,多个场景间的切换采用了Unity3D的相机技术,场景切换效果较好,满足了用户的需求。
参考文献
[1] 陈阿林,胡朝晖,祁相志.校园虚拟现实三维场景建模技术及实现方法研究[J].重庆师范大学学报(自然科学版),2007(10):1-4.
[2] 韩飞.面向虚拟环境的三维地形生成方法[J].计算机工程,2010(10):261-263.
[3] 刘航,王积忠,王春水.虚拟校园三维仿真系统关键技术研究[J].计算机工程与设计,2007(6):2934-2936.
[4] 陈曼,盛业华,温永宁 等.虚拟地理环境三维可视化系统构建[J].系统仿真学报,2008(10):5105-5108.
[5] 邓志红,老松杨,张国华.基于三维GIS的导弹预警视景仿真系统实现[J].计算机仿真,2010(4):40-44.
关键词:分布式 学习管理系统 训练课程
中图分类号:TP315 文献标识码:A 文章编号:1007-9416(2012)10-0196-01
分布式学习管理系统(Distributed Learning Management System)是一种全新的符合SCORM规范的三维虚拟交互式训练课程运行平台,支持加载和运行三维交互式的训练课程,比如虚拟装备对象(如飞机、火炮、舰船等),可供学生进行机械维修/维护任务的训练(如日常维护任务、设备拆装程序、故障排查流程等),可对学生的学习、训练、考核过程进行跟踪记录,非常适合于网络化教学。
1、系统特点
因为分布式学习管理系统从技术上、模式上解决了三维虚拟训练系统不能在常规学习管理系统架构下运行,虚拟课程由专门厂家设计、课程内容不能共享的问题,以及其他通用E_Learning(网络化学习)平台不能支持三维交互对象及实时仿真训练,无法适用于虚拟训练的问题,因而具有以下突出特点:
一是将三维虚拟训练内容封装到SCORM学习系统框架下,使虚拟培训具有在线学习、考核、记录等功能,从而真正成为实用化的培训系统;二是学生在自主训练时可得到虚拟教师的在线指导,提高训练效率;三是三维训练课程按SCORM标准封装,可在异构的运行平台上执行,进而达到课程内容可共享的目的;四是支持按S1000D标准生成的技术手册导入,生成培训课程;五是虚拟训练在E Learning框架下实现,使训练可随时随地开展,降低培训成本,提高培训效率。
2、系统组成
分布式学习管理系统由虚拟课程运行平台及虚拟课程创作平台组成,如图1所示。虚拟课程运行平台包括:至少一服务器端、客户端、API实例端;虚拟课程创作平台主要由:课程结构设计部件、可共享内容对象划分部件、可共享内容对象制作部件、课程包聚合与输出部件及标准课程测试部件组成。(如图1)
服务器端有LMS服务器,客户端有SCO运行环境。SCO运行环境可以加载与运行训练课程,启动、运行SCO后与API适配器通讯,发现LMS提供的API实例。
虚拟课程运行平台使用API实例与LMS服务器进行初始化通信和读取或设置值。通过实现与HLA的通讯机制,同时支持实时分布式仿真的初始参数设置、仿真加载、仿真过程数据记录等。
三维训练课程按SCORM标准在虚拟课程创作平台上进行封装,封装好的课程可在异构的运行平台上执行,进而达到课程内容可共享的目的。虚拟课程创作平台支持按S1000D标准生成的技术手册导入并生成培训课程。实现了虚拟课程内容的结构化、模块化、标准化、制作流程化。
3、系统关键技术
3.1 SCO封装技术
课件内容组织大体可分为两大类:一类是结构化的内容,包括CGM、SVG和3KO等;另一类是非结构化的内容,包括Flash、音频文件等。对于结构化的内容,将被封装成一个个可重复使用的学习对象SCO。可共享内容对象(Sharable Content Object,SCO)代表了一个或多个基本素材的集合,这个集合包含了一个特殊的可基本素材,它利用SCORM运行环境与LMS进行通讯。
为了可以重用,SCO并不依赖于学习内容,而是其本身。比如,一个SCO可以用在不同的学习体验中来执行不同的课件。另外,一个或者多个SCO可以整合成更加高端的教学和培训单元,来执行更高端的学习对象。
SCO被认为是小型的单元,所以跨课件的重用是有可能的。SCORM 对 SCO的大小不会有特别的限制。尽管在设计编写期间,决定SCO大小的时候还是定一个其内容的最小的逻辑大小,而这些内容在运行时可以由LMS跟踪。内容开发者根据学习内容的信息数量和其可重用的水平来决定SCO 的大小。
3.2 仿真模型采用轻量化技术
在以往的三维仿真和虚拟样机应用中采用的是多边形处理方式,当模型复杂时,比如整机,整船的模拟,三角形数量会上百万,数据量在1GB以上,这就对计算机的图形处理能力要求非常高,只能在高档图形工作站上才能开发和运行,不可能进行网络和批量。
在本系统中的虚拟交互模型,将采用NGRAIN公司独特的体素(VOXEL)技术,用cell将三维实体实行网格分割,而非传统的面图形(Surface Graphics),避免了复杂设备多边形面的巨量计算问题;进而专门开发了针对复杂系统的三维可交互的软件平台,做到了三维模型的超轻量化,保证模型物理属性、外观真实条件下的高比例压缩。
渲染引擎完全由软件实现,不需要硬件三维加速,支持低端计算机平台,如普通的台式电脑、笔记本电脑、掌上PDA等。
4、结语
分布式学习管理系统可广泛应用于工科院校机电一体化专业开展虚拟交互式网络课程开发于,可为课堂教学提供信息化的教学手段支撑,也可为学生提供课后网络化的自学自训应用平台,同时分布式学习管理系统还能够把学生的学习状况、学习进度及学习结果同步记录下来,并将结果反馈给授课教师,用于教学质量评估或教学效果考察,对促进教学相长、提升教学质量效益具有重要的推动作用。
[关键词] 虚拟现实 建筑漫游 实现
引言
随着计算机技术的不断发展,人类认识和改造世界的能力得到不断提高,同时,人类生产生活对计算机技术的依赖也越来越强,计算机技术的发展离不开人类的智能,而人类生产生活能力的提高又在一定程度上依赖于计算机技术的发展。这就要求实现人与计算机的信息交流,人机交互技术是实现人与计算机信息交流的关键,虚拟现实就是研究如何实现人机交流的技术。
1、虚拟现实的含义及特征
虚拟现实是近年计算机技术研究的热点之一,虚拟现实技术是众多计算机高新技术的汇集,包括计算机图形学、多媒体技术、人工智能、人机接口技术、传感器技术、实时计算技术以及人类行为学等关键技术。虚拟现实技术是多媒体技术发展的高层次形式,将计算机技术引入了一个更高的层次。该技术能给人以更为逼真的体验,它为人类进一步探索世界、改造世界提供了一个现实的途径。
虚拟现实从本质上来说就是一种先进的计算机用户接口,它是通过为计算机用户提供各种直观而自然的感知交互手段,最大程度地方便用户操作,从而减轻用户负担,以提高整个系统工作效率的一门技术。根据众多学者的观点,可对虚拟现实做出如下界定:虚拟现实是利用计算机生成一种模拟环境(如飞机驾驶舱、操作现场等),通过多种传感设备使用户“投入”到该环境中,实现用户与该环境直接进行自然交互的技术。这里所谓模拟环境就是用计算机生成的具有表面色彩的立体图形,即是通过视、听、触觉等作用于用户,使之产生身临其境的交互式视景仿真,它可以是某一特定现实世界的真文体现,也可以是纯粹构想的世界。传感设备包括立体头盔、数据手套、数据衣等穿戴于用户身上的装置和设置于现实环境中的传感装置(不直接戴在身上)。自然交互是指用日常使用的方式对环境内的物体进行操作(如用手拿东西、行走等)并得到实时立体反馈。
虚拟现实技术具有沉浸性、交互性、构想性等特征。所谓沉浸性是指计算机操作者作为人机环境的主导者存在于虚拟环境之中,虚拟现实技术改变了传统的人机交流形式,在传统人机交流活动中,计算机为人提供了丰富的信息,但是人始终是在环境之外,而虚拟现实技术将人置身于人机环境之中,实现了人机环境的和谐统一。所谓交互性,是指人在虚拟环境中与遇到的对象相互作用,是实现人机和谐统一的关键所在,它包含对象的可操作程度、用户从环境中得到反馈的自然程度及虚拟场景中对象依据物理学定律运动的程度等。所谓构想性,是指虚拟现实是启发人创造性思维的活动,它不仅是一个用户与终端的接口,而且可使用户沉浸于虚拟环境中获取新知识,产生新构思。
2、建筑漫游概述
建立以多维信息空间为基础的人机环境,实现人与计算机和谐而自然的信息交流,一直是计算机信息技术追求的目标之一。有了虚拟现实技术的支撑,达到这一目标成为现实。建筑漫游正是虚拟现实技术在建筑的领域的应用,该技术不仅对建筑领域相关技术的发展具有重要的现实意义,而且还会带动其他相关领域技术的进一步发展。
建筑漫游系统包括一个视、听、触觉一体化的特定范围的虚拟环境,它是一个真实空间的实时空间或假想空间的实时仿真虚拟空间,用户借助必要的装备以自然的方式在该虚拟空间中漫游,从任意角度对环境中的对象进行观察,从而产生身临其境的感觉,同时也可以对其中的物体进行规划和操作。一般来说,虚拟环境漫游系统主要包括场景数据库的生成和通用漫游引擎的设计两部分,其框架如图2所示:
图2 虚拟环境漫游系统结构框图
在虚拟现实技术出现以前,建筑师与用户之间的交流通常是通过二维的建筑图纸或者木制模型。通过这种方式,用户很难在头脑中构建出建筑物的清晰形象,除非用户经过良好的训练,能从二维透视图中想象出三维场景,并且对建筑设计符号十分熟悉,当然具备这样素质的用户是很少的。这就造成了建筑设计者与用户之间的交流障碍,用户无法清楚地意识到建筑设计者的意图,也就无法将模型与自己的需求进行对比,更不能根据模型及自己的需求提出建设性建议,设计者也就很难根据用户的真正需求设计出用户满意的方案。建筑设计者和用户都意识到这一点,希望缩小和对方的距离,更清楚了解对方意图。虚拟现实技术实现了他们的愿望,虚拟社区漫游就是虚拟现实技术应用于建筑领域的一个成功范例。虚拟建筑漫游系统可以在建筑物动正式施工之前,先建立一个该建筑物及其所在社区的虚拟模型,设计师和用户可以通过计算机交互设备控制一个假想的观察者(视点)在建筑群模型中移动,而在显示设备上(计算机屏幕或头部跟踪器等)则显示出这个“观察者”所“看”到的景象。这里的视点可以是一个步行者的视点,也可以是一只鸟的视点或者两者都不是,而仅仅是拥有一定高度和运动速度的“眼睛”而已。
建筑物漫游系统对于建筑师、室内装潢设计师和用户来说都具有非常重要的意义。建筑师和室内装潢设计师通过它可以向用户展示自己的设计思路,并及时得到用户的意见反馈。同时,设计中如果有什么不合理的地方也可以通过对三维场景的漫游及时发现,并及时更正。而用户则可以通过漫游系统对自己想要购买的建筑有一个全面的感性认识,做出放心的选择。
3、虚拟现实技术在建筑漫游中的实现
在建筑漫游中,虚拟现实技术主要通过场景数据库和通用漫游引擎来实现。
3.1场景数据库的构建
构建场景数据库,主要有三个步骤,即选择建模工具、确定场景数据库的树状层次结构、构建场景数据库。
关键词:三维仿真课件;场景图;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月博士后出站,从事计算机网络与应用、流媒体技术、虚拟现实技术方面的研究。