消息管理引擎的制作方法

文档序号:6355370阅读:196来源:国知局
专利名称:消息管理引擎的制作方法
技术领域
本发明涉及一种消息管理引擎。
背景技术
OpenGL (Open Graphics Library,开放的图形程序函数)是一个调用方便的底层图形库,用于二维(2D)或者三维(3D)图像。OpenGL ES (OpenGL for Embedded Systems)由桌面 OpenGL 子集组成,是 OpenGL 三维图形 API (Application Programming Interface,调用程序编程函数)的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,它创造了软件与图形加速之间的底层交互函数。OpenGL ES等三维渲染技术广泛应用于嵌入式软件的
开发过程,将它用对数字娱乐产品的绘图、动画等图形进行渲染,可使得数字娱乐产品具有三维展示效果和三维用户界面。但是,直接利用OpenGL ES进行嵌入式软件开发会有比较大的开发复杂度,并影响软件的开发效率和易维护性。

发明内容
本发明主要解决的技术问题是提供一种三维图形引擎、消息管理引擎的管理系统,利用消息机制对三维对象的运动和渲染时机进行管理,降低嵌入式软件的三维图形对象开发的复杂度,且提高嵌入式软件的开发效率,以及增强嵌入式软件的易维护性。为解决上述技术问题,本发明采用的一个技术方案是提供一种消息管理引擎,用于对三维图形引擎进行消息管理,所述三维图形引擎包括添加对象单元、渲染对象单元、删除对象单元、更新对象单元和对象队列单元,所述添加对象单元用于添加对象到对象队列单元中,所述渲染对象单元用于渲染对象以达到三维运动效果,所述删除对象单元用于将不再需要的对象从对象队列单元中删除,所述更新对象单元用于更新对象队列单元中各对象的属性;所述消息管理引擎包括用于控制渲染对象单元的渲染动作的运动消息管理模块和用于控制渲染对象单元的渲染时机的调用消息管理模块。其中,所述运动消息管理模块包括分别对对象进行渲染动作控制的移动消息单元、缩放消息单元、旋转消息单元、淡化消息单元、倒影消息单元和视角转换消息单元。其中,所述调用消息管理模块包括用于启动渲染的调用开始模块和用于关闭渲染的调用结束模块。其中,所述视角转换消息单元中包含有眼睛位置、对准点和方向矢量数据。其中,所述调用开始模块和调用结束模块还包括用于控制消息发送的使能,只有在调用开始模块启动和调用结束模块启动之间发送的消息才生效。其中,调用开始模块启动时还包括加锁动作,调用结束模块启动时还包括解锁动作。本发明的有益效果是本发明利用消息管理引擎对三维图形引擎中三维对象的渲染动作和渲染时机进行管理,进一步优化了三维图形引擎的工作效率,降低了嵌入式软件的三维图形对象开发的复杂度。


图1是本发明给图形引擎库添加消息的过程示意图;图2是本发明给图形引擎库的渲染对象的过程示意图。
具体实施例方式为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。本发明的消息管理引擎,用于对三维图形引擎进行消息管理,所述三维图形引擎包括添加对象单元、渲染对象单元、删除对象单元、更新对象单元和对象队列单元,所述添加对象单元用于添加对象到对象队列单元中,所述渲染对象单元用于渲染对象以达到三维运动效果,所述删除对象单元用于将不再需要的对象从对象队列单元中删除,所述更新对象单元用于更新对象队列单元中各对象的属性;所述消息管理引擎包括用于控制渲染对象单元的渲染动作的运动消息管理模块和用于控制渲染对象单元的渲染时机的调用消息管理模块。本发明利用消息管理引擎对三维图形引擎中三维对象的渲染动作和渲染时机进行管理,进一步优化了三维图形引擎的工作效率,降低了嵌入式软件的三维图形对象开发的复杂度。在一实施例中,所述运动消息管理模块包括分别对对象进行渲染动作控制的移动消息单元、缩放消息单元、旋转消息单元、淡化消息单元、倒影消息单元和视角转换消息单
J Li o在一实施例中,所述调用消息管理模块包括用于启动渲染的调用开始模块和用于关闭渲染的调用结束模块。在一实施例中,所述视角转换消息单元中包含有眼睛位置、对准点和方向矢量数据。在一实施例中,所述调用开始模块和调用结束模块还包括用于控制消息发送的使能,只有在调用开始模块启动和调用结束模块启动之间发送的消息才生效。在一实施例中,调用开始模块启动时还包括加锁动作,调用结束模块启动时还包括解锁动作。对象的属性主要包括对象所处位置的三维坐标、三维的缩放比例的大小、淡化显示的程度、三维的旋转角度大小、倒影的高度和倒影的透明度、对象是否显示的标志。本发明的三维图形对象的管理系统,包括上述的三维图形引擎和上述的消息管理引擎,所述的消息管理引擎对所述的三维图形引擎进行消息管理。下面,以一个优选实施例进行详细说明I.对象消息管理每个对象包括一个消息队列,其中包括移动、缩放、旋转、淡化、倒影和视角转换等运动信息(也称为运动消息),并通过调用开始(EVGEBegin)和结束(EVGEEnd)函数来控制上述动作的串行或者并行。通过消息机制控制对象按照调用程序发送的指令改变动作和渲染方式。在对象消息队列为空时,对象收到消息时马上执行。不同开始和结束函数发送给单个对象的消息可以串行执行,不同时间段发送给不同对象的消息可以并行执行,但不保证不同的对象的消息能串行执行。所述图形引擎中的消息包括对象消息和全局消息,每个对象维护一个对象的消息队列,全局消息由一个消息队列维护。所述图形引擎中有一个渲染线程一直运行,渲染线程根据对象的属性渲染对象的内容到显示画面的Frame Buffer,同时让消息在渲染线程中执行。对象消息包是把对象属性中的所处位置的三维坐标、缩放的三维比例、旋转的三维比例、淡化的alpha值、倒影的高度和透明度及其每个渲染周期中对象属性的变化量封装在一起而形成。对象的消息包括了移动(EVGEMove)、缩放(EVGEScale)、旋转(EVGERotate)JiHt (EVGEFade)、倒影(EVGEReflect)、显示隐藏(EVGEShow)等运动消息,对象函数消息的参数由对象句柄、消息要达到的状态属性值以及需要的渲染帧数组成。
全局消息主要是视角转换消息(EVGELookAt),消息中包括眼睛位置、对准点、方向矢量。全局消息包是把这些属性和每个渲染周期中属性的变化量(简称,每帧增量)封装在一起而形成。开始和结束函数用于控制消息发送的使能,只有在开始和结束之间发送的消息才生效,同时在开始时加锁,结束时解锁以保证多线程控制的安全。所述图形引擎中还包括回调函数提供给调用程序中的调用者使用,消息包执行结束后调用调用程序指定的回调函数。所述回调函数是所述图形引擎提供给用户的一个注册函数和参数的函数,用户可以利用该函数指定函数名和参数给所述图形引擎,所述图形引擎利用指定的参数执行指定的函数。2.消息的添加如图I示,调用开始函数之后,开始添加消息。如果添加的运动消息是全局消息,则将所述运动消息直接加入到全局消息队列的末尾(如果队列为空,则添加成队首)。如果添加的消息是对象消息,则将所述运动消息加入到该对象的消息队列的末尾(如果队列为空,则添加成队首),并调用结束函数。为了增强所述图形引擎的稳定性,所述图形引擎规定了每个消息队列最大的消息个数,若队列中的消息个数超过限制,则抛弃待添加的消息。3.消息执行如图2示,渲染队列的维护由定时器来控制,所述图形引擎启动后,首先启动定时器每秒钟给渲染函数发60次事件,每一个事件执行一件事情,如果渲染锁被锁住则解锁。执行渲染函数的过程中,会去遍历渲染队列中的每个对象,确认是否要根据消息更新对象的状态。只要对象的消息队列中有消息,则执行该消息队列的队首消息,执行完该消息后删掉这个消息。全局的视角转换消息也是一样。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种消息管理引擎,用于对三维图形引擎进行消息管理,所述三维图形引擎包括添加对象单元、渲染对象单元、删除对象单元、更新对象单元和对象队列单元,所述添加对象单元用于添加对象到对象队列单元中,所述渲染对象单元用于渲染对象以达到三维运动效果,所述删除对象单元用于将不再需要的对象从对象队列单元中删除,所述更新对象单元用于更新对象队列单元中各对象的属性; 其特征在于所述消息管理引擎包括用于控制渲染对象单元的渲染动作的运动消息管理模块和用于控制渲染对象单元的渲染时机的调用消息管理模块。
2.根据权利要求I所述的消息管理引擎,其特征在于所述运动消息管理模块包括分别对对象进行渲染动作控制的移动消息单元、缩放消息单元、旋转消息单元、淡化消息单元、倒影消息单元和视角转换消息单元。
3.根据权利要求I所述的消息管理引擎,其特征在于所述调用消息管理模块包括用于启动渲染的调用开始模块和用于关闭渲染的调用结束模块。
4.根据权利要求2所述的消息管理引擎,其特征在于所述视角转换消息单元中包含有眼睛位置、对准点和方向矢量数据。
5.根据权利要求3所述的消息管理引擎,其特征在于所述调用开始模块和调用结束模块还包括用于控制消息发送的使能,只有在调用开始模块启动和调用结束模块启动之间发送的消息才生效。
6.根据权利要求3或5所述的消息管理引擎,其特征在于调用开始模块启动时还包括加锁动作,调用结束模块启动时还包括解锁动作。
全文摘要
本发明公开了一种用于对三维图形引擎进行消息管理的消息管理引擎,消息管理引擎包括用于控制渲染对象单元的渲染动作的运动消息管理模块和用于控制渲染对象单元的渲染时机的调用消息管理模块。本发明利用消息管理引擎对三维图形引擎中三维对象的渲染动作和渲染时机进行管理,进一步优化了三维图形引擎的工作效率,降低了嵌入式软件的三维图形对象开发的复杂度。
文档编号G06T15/00GK102654922SQ201110051159
公开日2012年9月5日 申请日期2011年3月3日 优先权日2011年3月3日
发明者徐继芸, 汤周文 申请人:福建星网视易信息系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1