胡圣武,韩合轩
(1.河南理工大学测绘学院,河南焦作 454000;2.河南省公路工程局集团有限公司,河南郑州,450052)
基于OGRE渲染引擎虚拟拆装的研究
胡圣武1,韩合轩2
(1.河南理工大学测绘学院,河南焦作 454000;2.河南省公路工程局集团有限公司,河南郑州,450052)
研究了基于OGRE渲染引擎虚拟拆装的方法及实现。三维模型虚拟装配软件采用MFC混合三维绘制ActiveX组件实现。界面负责将配置文件、模型文件的名称传递给三维模型装配软件,在其加载三维模型完毕后,界面可以访问其三维绘制功能,获取其内部的数据信息;同时可以操作三维空间内的任意一个模型的组件;最后通过修改每个关键帧内的模型组件位置和旋转信息,自动生成过渡帧动画,来实现最后的动画录制和播放功能。
虚拟拆装;OGRE渲染引擎;三维模型
装配是按一定的精度和技术要求,将一组零散的零件按一定的次序连接组合成产品的过程,其核心内容是装配序列规划,对产品质量起着决定性的作用。据统计,在产品的生产过程中大约1/3以上的人直接或间接从事与装配有关的活动,装配费用则占整个生产成本的30%~50%(对于某些复杂产品,这个比例会更高)。另外,装配环节也是制约生产自动化的主要因素,装配性能的好坏是决定产品能否采用自动化装配的关键。因此,一个好的装配顺序规划和工艺规划,对改进产品设计、降低成本、缩短产品生产周期具有重要意义。
传统的产品开发过程中,对产品装配性能的分析和评价通常都是借助实物模型来完成的,这种方法既费时、费力、准确性差,又不能及时、方便地进行修改,延长了产品的设计过程,造成了财力、物力的浪费。
虚拟现实技术的发展为解决上述问题提供了新的途径[1-2]。在虚拟环境下,工程师可以模拟实际的装配过程。这样,在利用装配工程师经验的同时,产生的装配信息又可以用于装配规划,经过整理归纳,经验形成规则被存入知识库,系统可以根据已有的规划处理类似的产品,从而可以解决自动装配规划中类似的装配问题。
2.1 OGRE简介
OGRE(面向对象的图形渲染引擎)是用C++开发的面向对象且使用灵活的 3D引擎[3-4]。它的目的是让开发者能更方便和直接地开发基于3D硬件设备的应用程序或游戏。引擎中的类库对更底层的系统库的全部使用细节进行了抽象,并提供了基于现实世界对象的接口和其他类。
2.2 OGRE设计理念
OGRE通过面向对象的方法实现了这样的一个入口,从实际应用进入到3D引擎具体的本职工作:把基本几何体渲染到目标区域(一般情况下指的是CRT或LCD显示设备的屏幕缓存,但也有例外)[5-6]。
如果使用面向对象的方法来渲染几何体,就可以从几何体级别的处理工作中抽离出来,转而处理具体的场景和在场景中的物体。其中的物体包括:可活动的物体、静态物体组成的场景本身、灯光、摄像机以及其他。你只需简单的把物体放到场景之中,Ogre会帮助你完成杂乱的几何渲染处理,从而脱离对调用API的依赖。而且你也可以通过简单的方法来操作场景中的物体来代替矩阵变换:例如,可以简单地通过角度或者弧度来控制物体在不同空间内旋转,而不必要通过矩阵的变换这种抽象的方法来操作实现变换。简而言之,面向对象让你可以处理更具象的物体、属性和方法;而不用处理抽象的顶点列表、三角形列表、旋转矩阵等底层概念。
OGRE的面向对象框架提供了包括全部渲染过程的对象模型。渲染系统把复杂且不同的底层API的功能抽象成一个统一的操作接口;场景图也被抽象成为另外的一组接口,并且允许使用不同的场景管理算法实现“即插即用”的效果;所有可渲染对象,不论是动态还是静态,都被抽象出一组接口,用来被具体的渲染操作调用,可活动对象提供了一组通用接口接受各种各样的操作方法。
3.1 几何建模技术
几何建模是计算机图形学的传统方法。首先,在计算机中建立起三维几何模型(用多边形表示,通常为三角形),在给定观察点和观察方向以后,利用计算机和相应的绘制算法,完成消隐,光照及投影等成像过程,从而产生几何模型的图像。几何建模一般包括建立对象的外形建模和对象的外表材质建模。
3.2 高亮效果显示
三维模型装配软件系统使用模板缓存技术实现三维模型的高亮显示,模板缓存可以保持屏幕上某些部位的图形不变,而其他部位仍然可以进行图形绘制。比如说,可以通过模板缓存来绘制透过汽车挡风玻璃观看车外景物的画面。首先,将挡风玻璃的形状存贮到模板缓存中去,然后再绘制整个场景。这样,模板缓存挡住了通过挡风玻璃看不见的任何东西,而车内的仪表及其他物品只需绘制一次。因此,随着汽车的移动,只有外面的场景在不断地更改。
模板缓冲还能够用来实现一些抽象的效果,如轮廓。如果我们将一个模板掩模应用到一个与图元有相同形状但是尺寸较小一些的图像上,那么最终的图像就会得到这个图元的轮廓。然后,可以在模板掩模的区域填充一个具有固定颜色的图像,从而得到一种类似于高亮轮廓的效果。
3.3 移植性技术
与传统的针对某个具体系统的建模方式不同,气路图形建模软件对气路系统的建模采用模块化方法。采用模块化方法后,计算程序与系统结构无关,如果系统结构有所改变——例如添加删除一些元件,或者元件的组合形式有所改变时,只需要修改系统结构矩阵输入文件并对添加或者删除的文件进行属性设置,就可以进行新系统的仿真,而无需深入到计算程序中修改源代码。此外,仿真程序还具有改进和扩充模型库的二次开发能力。模型库中仿真模块的类型按照要求不少8个,并具有扩展接口的能力。
三维模型虚拟装配系统大体功能需求划分如图 1所示。
1)跨平台三维模型数据支持功能。跨平台三维模型数据支持功能主要实现三维软件数据向三维模型装配系统的导入。导入功能要求保留三维软件中模型的点、面、纹理、纹理坐标、空间位置、旋转属性,要求支持导入三维软件中已经建立的灯光、摄像机。本功能包括三维软件数据导出、模型导入、摄像机自适应、灯光自适应功能。
2)三维模型绘制功能。主要实现实时三维模型的绘制功能。支持高效率的绘制三维模型,同时需要支持动态的缩放窗口,并且自动对齐鼠标以支持后续的三维模型的空间操作功能。
3)三维模型空间操作功能。三维模型空间操作功能为三维模型装配软件的核心功能,其主要包括:①模型定位与选取功能;②模型部件拆卸功能;③模型高保真突出显示功能;④外部事件与数据转换组件;⑤模型空间漫游功能;⑥交互方式参数配置功能。
4)三维模型装配动画录制功能。三维模型装配动画录制功能实现三维模型装配软件的动画录制功能,其包括:关键帧生成与记录功能、关键帧信息导入与重建功能。
5)三维模型装配动画播放功能。主要包括自动生成过渡帧、播放动画功能。
图1 系统功能需求划分图
5.1 项目背景
此项目名称为装甲兵工程学院三维模型虚拟装配系统。此系统主要是为了解决军队教学中多种弊端,在现实生活中依靠实物进行教学、训练,费用高且效率低,而利用开发的虚拟仿真系统,不需要借助实物就可在计算机上进行日常的教学、训练,费用低廉而且安全,在身临其境的人机交互中,原本复杂深奥的装置构造、原理、拆装、维修知识变得直观易懂,这样极大地提高了教学效率和学员学习热情。
5.2 项目实现方案
三维模型虚拟装配软件采用MFC+BCG+OGRE实现,BCG是MS的界面库,像office这样的办公软件的界面就是采用的BCG,OGRE是一个开源的渲染引擎。界面负责将三维模型装配软件需要的配置文件、模型文件的名称传递给三维模型装配软件,三维模型装配软件负责加载显示该软件。在其加载完毕三维模型后,界面可以访问其三维绘制功能,获取其内部的数据信息;同时可以操作三维空间内的任意一个模型的组件;最后通过修改每个关键帧内的模型组件位置和旋转信息,自动生成过渡帧动画,来实现最后的动画录制和播放功能。系统整体构架如图2所示。
图2 系统整体构架图
本文提出的OGRE+BCG+VC++虚拟仿真系统开发方案有着广泛的适用性,还具有能够实现用户的个性化需求,满足计算机通讯实时性的优点;但它的缺点是要求用户掌握较深的编程知识,三维实体模型数据的文件大且结构复杂,直接进行场景驱动对硬件水平要求高,编程困难,利用dotsceneformat得到了文件格式简单、占用内存少、便于添加渲染效果的 Scene文件,使低硬件条件下的场景实时驱动成为可能,从而为从现有机械模型进行视觉仿真和交互开辟了一条新途径。
虚拟装配将从根本上改变传统的产品设计和制造模式,在实际生产之前,首先在虚拟制造环境中完成虚拟产品原型代替实际产品进行实验,对其性能和可装配性等进行评价,从而达到整个产品全局最优,缩短产品设计与制造周期,降低产品开发成本,提高产品快速响应市场变化的能力。随着国家工业化和信息化建设速度的加快,必将带来更大的经济和社会效益。
[1](美)普雷斯曼著,郑人杰等译.软件工程:实践者的研究方法(原书第6版)[M].北京:机械工业出版社,2007
[2] 毋国庆.软件需求工程[M].北京:机械工业出版社,2006
[3] 伽玛等著,李英军等译.设计模式--可复用面向对象软件的基础[M].北京:机械工业出版社,2005
[4](美)科曼(Cormen,T.H.)等著,潘金贵 等译.算法导论(原书第2版)[M].北京:机械工业出版社,2006
[5](美)Frank D.luna.DirectX 9.0 3D游戏开发编程基础[M].北京:清华大学出版社,2007
[6] 洪炳 等编著.虚拟现实及其应用[M].北京:国防工业大学出版社,2005
Research on Virtual Destuffing Based on OGRE Rendering Engine
by HU Shengwu
The system provided a rendering engine based on OGRE virtual dismantling of the method and implementation of three-dimensional virtual simulation.Threedimensional model of virtual assembly software used MFC,Active X components to achieve three-dimensional rendering.Interface was responsible for assembling threedimensional model of software configuration files needed,the model name of the file passed to the three-dimensional model assembly software,3D model display assembly software responsible for loading the software.Loaded in its three-dimensional model, the interface could access the3D rendering capabilities,access to its internal data.At the same time three-dimensionalspace could operate any component of a model.Finally,modify the frame of the model components for each key position and rotation information,automatically generate the transition frame animation,to achieve the final animation recording and playback functions.
Virtual disassembly,OGRE rendering engine,three-dimensional model(Page:16)
P208
B
1672-4623(2011)02-0016-03
2010-09-15
项目来源:国家自然科学基金资助项目(40474003)。
胡圣武,副教授,博士。现主要从事GIS基础理论和图像处理技术研究工作。