基于OpenGL与3Dmax的虚拟现实动作仿真系统的研究

龙源期刊网 http://www.qikan.com.cn

基于OpenGL与3Dmax的虚拟现实动作仿真系统的研究

作者:袁观娜 李秋 张琰 来源:《科技资讯》2016年第04期

摘 要:随着科学技术的发展,动画演示为主的仿真已不能满足大型工业器械的技术交流,迫切需要大型工业器械的实时动作仿真。为了能实时模拟大型工业器械的动作过程,研究了基于OpenGL与3Dmax的虚拟现实动作仿真系统。在windows平台上,采用目前流行的三维建模软件3Dmax建立大型工业器械产品的三维模型,并为三维模型添加关节结构,克服其不能实时控制的缺点,引入可视化仿真软件OpenGL,结合OpenGL与3Dmax,根据控制器的命令,可真实再现大型工业器械产品在控制器指挥下的动作状态。 关键词:OpenGL 关节结构 3Dmax 动作仿真

中图分类号:TP391.9 文献标识码:A 文章编号:1672-3791(2016)02(a)-0001-02 随着科学技术的发展,大型工业在工业生产中占有比较重要的作用,大型工业器械的动作仿真是进行技术交流的重要组成部分,如何用简单合理的方式来模拟大型工业器械的动作过程,值得研究和探讨。随着大型器械仿真技术的日益提高,大型器械的实时仿真已成为当今大型器械仿真技术的主要研究方向。针对我国大型器械的仿真主要以动画演示为主,很大方面制约着大型器械的技术交流,迫切需要大型器械的实时仿真。随着计算机技术和三维动画技术的发展,研究能够实时仿真的大型器械动作仿真技术具有十分重要的意义。该文介绍了基于OpenGL与3DS MAX的大型工业器械三维仿真的方法。 1 开发平台与仿真系统

OpenGL即开放性图形库(Open Graphic Library),它实际上是一个图形与硬件的接口它包含了各种图形变换、纹理映射及特殊效果处理等120多个函数,可借助编程环境对各种模型进行人机交互控制。OpenGL只提供了简单的图形操作函数,如点、线、面等最基本的图元,建立简单的模型来说相对容易,但是对于复杂的三维模型,必须从点、线、面开始建立,比较繁琐。但是OpenGL可允许开发者直接使用自己的模型数据,极大地节省了开发者的时间。 3DMax是目前最流行基于PC系统的三维动画渲染和制作的软件之一。它具有强大的模型构建能力,制作的模型逼真。3Dmax最大的优点是可以导出多种文件格式,文件包含建立模型的结构位置数据,方便与其它软件进行交互。

龙源期刊网 http://www.qikan.com.cn

MFC是微软基础类库的简称,主要封装了大部分的windows API函数,可以利用它进行编程,编译,调试。OpenGL必须借助于MFC编程环境才能实现对模型控制,通过在编程环境中调用OpenGL函数库中的这些函数来实现模型图形显示的绘制。

三维建模与仿真系统如图1所示。通过3Dmax建立三维模型,再将图形数据导入VC++程序中,调用OpenGL函数读取显示并编程控制。此外,可以通过控制器与计算机通信,输入动作指令,模型可实现在控制器的指挥下相应的动作。三维建模与仿真系统如图1所示。 2 三维建模与层次模型建立

建立正确合理的三维模型是保证动作仿真的关键。大型工业器械的零部件数量多,结构复杂。动作仿真的主要目的是对动作过程的仿真演示,所以在建立三维模型的时候可忽略一些对动作仿真无关的部件,比如内部的传动机构及伺服装置等。建立大型器械几何模型需要先将完整的模型层层细分,解构成各个零部件,对每个零部件进行单独的建模,再将建好的各个部分按照装配关系组装在一起,同时需保证各个部分之间的相对空间关系。这种建模方法最大的优点是各个部分建模独立,部件与部件之间不互相影响,重建或修改都很方便。

三维模型的运动包括两种,一种是该部件的运动只和自己有关,不影响其它部件的运动,另一种运动是部件的运动影响其它部件的运动或者部件的运动受到其它部件的限制或与其配合运动。对于第一种运动相对较少,可以单独控制。大型器械中更多的是第二种运动,因此控制的时候不能对其进行单独控制,因为部件与部件相对运动时有相对的运动关系。首先要做的是建立这种关系。可以把一个模型看作一个机构,机构之间的相对运动可连接成运动链系统。对于机构里的所有零件都可以看作是一个对象,建立正确的运动链系统即建立正确的运动传递关系,这种关系叫层次关系。在层次关系中,若部件A的运动影响部件B的运动,则把A部件定义为父对象,B对象定义为子对象。当运动的时候,对于父对象的几何运动操作都会自动传递给子对象。以液压支架的底板、立柱、推镏为例,底板的运动会影响立柱和推镏,底板是立柱的父对象,同时底板也是推镏的父对象。通过建立这样的层次关系可以实现复杂的三维模型的动作仿真。

3 OpenGL平台下模型的显示与控制

OpenGL虽然建立复杂的模型工作量大,相对复杂,但是OpenGL可以读取三维模型的数据,根据这些数据再重新恢复模型。3Dmax可输出多种模型数据格式,不同的数据格式应用场合不同。这里需要导出模型数据的定点、法向量、纹理以及相对位置数据,所以选用.X文件格式。.X文件格式是3max用来存放三维模型,它可以描述三维模型的几何数据、框架层次和动作等。调用OpenGL函数读取.X文件即可再现模型。.X文件格式包含了两个最基本的部分;用户自定义的数据类型和层级关系。.X文件是由模板驱动的,模板定义了如何存储一个数据对象,这样用户便可以自己来定义具体的格式。模板定义了3D模型的各种数据是以什么样的格式存放的,即将3D模型的数据格式化。

龙源期刊网 http://www.qikan.com.cn

若要三维模型在控制器的指挥下运动,需要编程来实现。控制器需要把指令发送给计算机,这就需要串口通信。串口通讯系统是将控制器上的按键信号发送到计算机串口,计算机通过串口接收程序接收数据。实时控制和显示需根据串口信号,调用OpenGL实时绘制并显示模型。OpenGL有对应的函数可以实现模型的平移、旋转、放缩变换,即glTranslate()、glRotate()、glScale()。

动作的最终控制是通过编程来实现的。一个动作的可以分为起点位置、中间过程、终点位置来描述。起点位置是已知的,当进行一个动作之后,上个动作的终点位置即下一个动作的起点位置。终点位置即该动作结束的位置,这个可以根据动作设计的要求计算得到。起始、终点位置已知,中间过程如何控制其实是无数个起始位置的变换,动画其实是不连续的,只是利用视觉原理给视觉造成连续变化的画面。在这个过程中,每一幅画面不断的被新的画面所取代,使观察者产生连续运动的动态画面的幻觉,画面的本身其实是静止的。利用这个原理,可以在起始位置的基础上,将所要变换的量分成很多段,每隔一定的时间赋以一定的变化量,当分段足够多时,就可以看见一个连续的动作。 4 结构流程图

图2所示为动作仿真流程,从图2中可以看出大型器械动作仿真的整体流程。 5 结语

详细叙述了在windows平台下,利用3DS Max建立三维模型并建立层次模型,采用VC++和OpenGL结合进行编程,实现三维仿真的原理和方法。利用OpenGL可以对图形进行实时控制仿真,但是缺点是利用OpenGL建立复杂的三维模型较为繁琐,工作量大。借助专门的三维建模软件3Dmax来建立模型。三维建模软件建立的三维模型比较真实,缺点是无法进行编程控制。结合OpenGL和3Dmax,避免了各自的缺点,能很好的实现大型器械的实时动作仿真。这种方法具有一定的适用性,可以实现逼真的三维动态实时仿真,对于大型器械技术交流的宣传展示有着重要的意义。 参考文献

[1] 周扬,刘永涛.基于OpenGL的事故三维综合演示平台[J].重庆理工大学学报,2015(4):77-80,119.

[2] 王昊旻,吴艺菲,王思昱. OpenGL下3D建模软件快速开发可视化系统探讨[J]. 电脑编程技巧与维护,2015(20):12-13,36.

[3] 王国法,徐亚军,孙守山.液压支架三维建模及其运动仿真[J].煤炭科学技术,2003(1):42-45.

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4