一种多线程环境下基于消息的无同步3D渲染方法技术

技术编号:8452785 阅读:162 留言:0更新日期:2013-03-21 13:18
本发明专利技术涉及一种多线程环境下基于消息的无同步3D渲染方法,该方法采用操作系统的消息机制作为通信手段,通过监测当前3D场景的使用情况,动态分配CPU时间进行逻辑事务处理、资源访问和3D渲染操作,进行多线程同步控制。与现有技术相比,本发明专利技术可在不使用线程同步手段的情况下实现逻辑处理和3D渲染并行计算,具有并行处理高效等优点。

【技术实现步骤摘要】

本专利技术涉及一种动画数据处理方法,尤其是涉及一种多线程环境下基于消息的无 同步3D渲染方法。
技术介绍
典型的3D应用,如3D游戏等,需要把3D渲染和逻辑事件的处理分开,以提高系统 逻辑处理能力和3D渲染效果。为此,3D开发中往往使用多线程来处理,以提升并行处理能 力。但是,多线程的加入也为软件开发复杂度带来更高的要求,更重要的是对资源的管理要 求更为严格,特别是资源的访问不能冲突。已有解决方案是,对多线程访问的资源进行同步,如加线程锁进行控制。这种方法 能有效地解决资源访问冲突造成的系统崩溃等问题,但对软件开发人员的要求会很高,对 多线程控制能力要求很强,只要出现任何一个纰漏都可能让整个系统出错。同时,频繁的多 线程同步反而会降低系统的性能。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种可实现逻辑处 理和3D渲染并行计算,且并行处理高效的多线程环境下基于消息的无同步3D渲染方法。本专利技术的目的可以通过以下技术方案来实现一种多线程环境下基于消息的无同步3D渲染方法,该方法采用操作系统的消息 机制作为通信手段,通过监测当前3D场景的使用情况,动态分配CPU时间进行逻辑事务处 理、资源访问和3D渲染操作,进行多线程同步控制,具体包括以下步骤a)初始化3D环境,根据硬件显卡及所使用的图形API初始化3D环境;b) CPU分配线程模块监测并统计当前3D场景的使用情况,计算并动态分配CPU时 间片;c) CPU分配线程模块把分配的CPU时间片通过消息方式通知主线程模块;d)主线程模块处理接收到消息,并判断是否需要退出系统,若是,则退出,若否,则 执行步骤e);e)主线程模块根据接收到的消息,以消息响应方式进行逻辑事务处理、资源访问 和3D渲染。所述的动态分配CPU时间片具体为I)统计当前3D场景所渲染的对象数量,包括实体对象和纹理数据;2)记录前一帧逻辑事务处理所花费的时间;3)预测下一帧的逻辑事务处理时间及3D渲染对象数量;4)根据下一帧预测值和前一帧统计值获得CPU时间片分配值。与现有技术相比,本专利技术具有以下优点I、保持传统的多线程功能,以实现逻辑处理和3D渲染的并行计算;2、取消多线程同步机制,通过机制保障资源的无冲突访问,带来高效并行的处理。 附图说明图I为本专利技术的结构示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案 为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于 下述的实施例。实施例一种多线程环境下基于消息的无同步3D渲染方法,该方法采用操作系统的消息 机制作为通信手段,通过监测当前3D场景的使用情况,动态分配CPU时间进行逻辑事务处 理、资源访问和3D渲染操作,进行多线程同步控制。如图I所示,上述渲染方法具体包括以下步骤a)初始化3D环境,根据硬件显卡及所使用的图形API初始化3D环境;b) CPU分配线程模块监测并统计当前3D场景的使用情况,计算并动态分配CPU时 间片;c) CPU分配线程模块把分配的CPU时间片通过消息方式通知主线程模块;d)主线程模块判断是否收到消息,若否,则返回步骤C),若是,则处理接收到消 息,并判断是否需要退出系统,若是,则退出,若否,则执行步骤e);e)主线程模块根据接收到的消息,以消息响应方式进行逻辑事务处理、资源访问 和3D渲染,处理完毕后,接收下一条消息。所述的动态分配CPU时间片具体为I)统计当前3D场景所渲染的对象数量,包括实体对象和纹理数据;2)记录前一帧逻辑事务处理所花费的时间;3)预测下一帧的逻辑事务处理时间及3D渲染对象数量;4)根据下一帧预测值和前一帧统计值获得CPU时间片分配值。上述多线程环境下基于消息的无同步3D渲染方法保持传统的多线程功能,以实 现逻辑处理和3D渲染的并行计算,同时取消多线程同步机制,通过机制保障资源的无冲突 访问,带来高效并行的处理。权利要求1.一种多线程环境下基于消息的无同步3D渲染方法,其特征在于,该方法采用操作系统的消息机制作为通信手段,通过监测当前3D场景的使用情况,动态分配CPU时间进行逻辑事务处理、资源访问和3D渲染操作,进行多线程同步控制,具体包括以下步骤 a)初始化3D环境,根据硬件显卡及所使用的图形API初始化3D环境; b)CPU分配线程模块监测并统计当前3D场景的使用情况,计算并动态分配CPU时间片; c)CPU分配线程模块把分配的CPU时间片通过消息方式通知主线程模块; d)主线程模块处理接收到消息,并判断是否需要退出系统,若是,则退出,若否,则执行步骤e); e)主线程模块根据接收到的消息,以消息响应方式进行逻辑事务处理、资源访问和3D渲染。2.根据权利要求I所述的一种多线程环境下基于消息的无同步3D渲染方法,其特征在于,所述的动态分配CPU时间片具体为 1)统计当前3D场景所渲染的对象数量,包括实体对象和纹理数据; 2)记录前一帧逻辑事务处理所花费的时间; 3)预测下一帧的逻辑事务处理时间及3D渲染对象数量; 4)根据下一帧预测值和前一帧统计值获得CPU时间片分配值。全文摘要本专利技术涉及一种多线程环境下基于消息的无同步3D渲染方法,该方法采用操作系统的消息机制作为通信手段,通过监测当前3D场景的使用情况,动态分配CPU时间进行逻辑事务处理、资源访问和3D渲染操作,进行多线程同步控制。与现有技术相比,本专利技术可在不使用线程同步手段的情况下实现逻辑处理和3D渲染并行计算,具有并行处理高效等优点。文档编号G06F9/38GK102981809SQ201210587740公开日2013年3月20日 申请日期2012年12月28日 优先权日2012年12月28日专利技术者林秀全, 郑婉清, 高小玲 申请人:上海创图网络科技发展有限公司本文档来自技高网...

【技术保护点】
一种多线程环境下基于消息的无同步3D渲染方法,其特征在于,该方法采用操作系统的消息机制作为通信手段,通过监测当前3D场景的使用情况,动态分配CPU时间进行逻辑事务处理、资源访问和3D渲染操作,进行多线程同步控制,具体包括以下步骤:a)初始化3D环境,根据硬件显卡及所使用的图形API初始化3D环境;b)CPU分配线程模块监测并统计当前3D场景的使用情况,计算并动态分配CPU时间片;c)CPU分配线程模块把分配的CPU时间片通过消息方式通知主线程模块;d)主线程模块处理接收到消息,并判断是否需要退出系统,若是,则退出,若否,则执行步骤e);e)主线程模块根据接收到的消息,以消息响应方式进行逻辑事务处理、资源访问和3D渲染。

【技术特征摘要】

【专利技术属性】
技术研发人员:林秀全郑婉清高小玲
申请(专利权)人:上海创图网络科技发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1