利用粒子系统进行图形处理的方法和装置制造方法及图纸

技术编号:14048198 阅读:111 留言:0更新日期:2016-11-23 23:41
本发明专利技术涉及利用粒子系统进行图形处理的方法和装置。本发明专利技术公开了通过多个线程利用粒子系统进行图形处理的方法,其中所述多个线程包括第一线程和第二线程,所述方法包括:通过所述第一线程创建粒子系统,唤醒所述第二线程,通过所述第二线程执行所述粒子系统的更新操作和粒子朝向计算,以生产渲染数据,阻塞所述第二线程,通过所述第一线程利用所述渲染数据渲染所述粒子系统。

【技术实现步骤摘要】

本专利技术涉及利用粒子系统进行图形处理的方法和装置,更具体地说,本专利技术涉及一种图形引擎粒子系统更新的方法和装置。
技术介绍
粒子系统是用于表示三维计算机图形学中模拟一些特定的模糊现象的技术,而对于这些现象,使用传统的渲染技术是难以实现其真实感的。在图形引擎中,一般使用粒子系统来实现特效。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、落叶、云、雪、流星尾迹或发光轨迹等及其类似的抽象视觉效果。在计算机的图形渲染领域,摄像机是一个非常重要的概念。摄像机是被虚拟出来的一个物件,人们可以从摄像机的视角来“观察”三维世界中的物体。对于任何三维游戏,都存在一个相应的摄像机,比如第一人称射击类(FPS)游戏,摄像机为主视角类型,角色扮演类(RPG)游戏,摄像机为尾随视角类型,而即时战略类(RTS)游戏,其相应的摄像机为第三人称视角类型。不管对于哪一类型的游戏,摄像机的位置和方向都是随着游戏的进行而实时改变的。公告板是与摄像机相关的矩形面片,在游戏中,公告板一般都是朝向摄像机,因此从摄像机的角度,不会“观察”到公告板的侧面。游戏引擎中,渲染图元一般采用三角形,因此可以利用两个渲染图元构造一个公告板。在粒子系统中,一般都是采用公告板来渲染粒子的。在例如游戏等许多应用中,在出现人物技能,天气,火焰等时,为了展现华丽的效果,常常会使用大量的特效,这些特效通常由粒子系统构成。在一般的图形引擎中,粒子系统的操作在主线程中执行,如果使用的粒子
系统太多,将会对这些应用的性能造成影响。而且随着粒子数目的增长,对这些应用性能的影响将会越发显著。基于以上原因,如何能展现更多的效果,同时不会对应用的性能造成过多影响,成为了一个亟待解决的技术问题。
技术实现思路
本专利技术提出了一种客户端引擎粒子系统后台更新的技术。特别是,提供一种粒子系统优化方案,使应用(例如游戏)能够表现更多的效果,并对应用的性能不会产生太多影响。根据本专利技术的优化粒子系统方法,包括:将粒子系统的更新操作以及粒子朝向计算从主线程中剥离出来,放到单独的线程(即粒子系统更新线程)中;将渲染用到所有粒子系统数据统一放到一个内存池中,在渲染前把该内存中的数据传送到显卡中,只执行一次传送过程。本发还提供一种通过多个线程利用粒子系统进行图形处理的方法,其中所述多个线程包括第一线程和第二线程,所述方法包括:通过所述第一线程创建粒子系统,唤醒所述第二线程,通过所述第二线程执行所述粒子系统的更新操作和粒子朝向计算,以生产渲染数据,阻塞所述第二线程,通过所述第一线程利用所述渲染数据渲染所述粒子系统。实施本专利技术,具有如下效果:现在电脑CPU一般都是多核的,将粒子系统的更新操作以及粒子朝向计算移到单独的线程中执行,从而和主线程并行运算在一定程度上可以提高程序的性能;将所有粒子系统渲染数据统一放到一个内存池中,在渲染前把该内存中的数据传入到显存比每个粒子系统执行一次传入操作效率要高的多。附图说明从下面结合附图对本专利技术的具体实施方式的描述中可以更好地理解本专利技术,其中:图1示出了根据本专利技术示例性实施例的采用粒子系统进行图形处理的方法的流程图,图2示出被配置成实施这里提供的一个或多个实施例的计算装置。具体实施方式为了使本专利技术的特征及优点得到更清楚的了解,以下结合附图对本专利技术的示例性实施例进行详细说明。应当理解,这里给出的实施例只是示例性的,并不作为本专利技术的限制。图1示出了根据本专利技术示例性实施例的采用粒子系统进行图形处理的方法的流程图。如图1所示,本专利技术实施例的图形处理方法包括了两个线程,即主线程和粒子系统更新线程。本领域的技术人员应该理解,虽然图1中示出了两个线程,但是也可以包括更多的线程。主线程和粒子系统更新线程例如可以在程序初始化时创建。粒子系统更新线程的工作就是更新粒子系统,计算粒子系统朝向(例如面朝向)以及将渲染数据传入到显存中。粒子系统更新线程具有唤醒和阻塞接口。唤醒接口的作用是启动该线程,开始处理粒子系统,阻塞接口的作用是停止该线程,不占用任何CPU时间。由于该线程创建后,先处于阻塞阶段,因此,主线程将所有的粒子系统放于队列中之后需要通过唤醒接口启动粒子系统更新线程。启动粒子系统更新线程后,主线程和粒子系统更新线程二者开始并行运算。特别是对于多核CPU,将粒子系统的更新操作以及粒子朝向计算移到单独的线程中执行,从而和主线程并行运算在一定程度上可以提高程序的性能。如图1所示,主线程在步骤101开始,例如可以采用心跳来控制主线程每个循环的开始和结束。在步骤102中,主线程执行粒子系统的创建和/或销毁操作。粒子系统由粒子的集合组成,可以使用例如发射器发射粒子(即生成粒子)。每个粒子根据发射器的位置及给定的生成区域在特定的三维空间位置生成,根据粒子生成速度以及更新间隔计算新粒子的数目。根据需要可以生成一个或多个粒子系统。例如,游戏里面为了表现华丽的效果,例如人物技能,天气,火焰等,会用到大量的特效,这就需要使用多个粒子系统。粒子系统中的粒子具有属性,其会影响粒子性态或对粒子进行渲染的方式。可以在生成粒子同时对每个新产生的粒子的属性给出初始值。粒子的属性可以包括:位置、速度(速率和方向)、颜色、形状、大小、透明度等。主线程例如还可以检查所有存活的粒子,根据一定的条件,例如,是否超过生命周期,来判断粒子是否死亡,一个系统中所有的粒子都死亡时,销毁这个粒子系统。然后该方法转到103。在步骤103中,主线程更新摄像机的位置和方位(例如根据游戏的进行),并相应更新粒子系统的位置和方位。之后在步骤104中,主线程将所有的粒子系统放于队列中。然后启动粒子系统更新线程,同时主线程在步骤111中继续执行不涉及粒子系统的其它操作,由此两个线程并行执行。下面描述粒子系统更新线程。粒子系统更新线程启动后,在步骤121中,粒子系统更新线程清空粒子系统内存池,执行粒子系统的更新操作。粒子的更新操作,包括发射粒子和回收粒子,即根据规则在一定范围内产生粒子,同时对超过生命周期而死亡的粒子进行回收。更新操作还改变粒子的属性,例如改变粒子位置(通过移动)和大小等。在队列中具有多个粒子系统时,步骤121例如可以顺序地对这些系统执行更新操作。然后,更新线程转到步骤122。随着摄像机位置,方位的改变,系统中每个粒子的朝向需要在每一帧重新计算,在步骤122中,由粒子系统更新线程执行粒子朝向计算,并将计算结果存储到粒子系统内存池中。根据示例实施例,例如可以采用公告
板作为粒子最终渲染图元,随着摄像机位置,方位的改变,在每一帧重新计算矩形的4个顶点位置(即计算粒子的朝向)。计算完朝向后,粒子系统更新线程将数据(即渲染数据)存储到内存池中。粒子系统更新线程将队列中的所有粒子系统的渲染数据都存储到内存池中之后,在步骤123中,粒子系统更新线程将粒子系统渲染数据从粒子系统内存池中传入到显存,以进行渲染。粒子数据的相关计算结果都是保存在内存中的,因此需要把粒子数据传送到显存用于渲染。由于在步骤122中将所有粒子系统数据统一放到一个内存池中,因此,只需要执行一次传送过程便可以把内存中的数据传送到显卡中。最后,在步骤124中,粒子系统更新线程通知主线程粒子系统更新操作完成。在通知主线程后,粒子系统更新线程将自身挂起,而后继续阻塞状本文档来自技高网
...
利用粒子系统进行图形处理的方法和装置

【技术保护点】
一种通过多个线程利用粒子系统进行图形处理的方法,其中所述多个线程包括第一线程和第二线程,所述方法包括:通过所述第一线程创建粒子系统,唤醒所述第二线程,通过所述第二线程执行所述粒子系统的更新操作和粒子朝向计算,以生产渲染数据,阻塞所述第二线程,通过所述第一线程利用所述渲染数据渲染所述粒子系统。

【技术特征摘要】
1.一种通过多个线程利用粒子系统进行图形处理的方法,其中所述多个线程包括第一线程和第二线程,所述方法包括:通过所述第一线程创建粒子系统,唤醒所述第二线程,通过所述第二线程执行所述粒子系统的更新操作和粒子朝向计算,以生产渲染数据,阻塞所述第二线程,通过所述第一线程利用所述渲染数据渲染所述粒子系统。2.如权利要求1的方法,所述方法还包括在唤醒所述第二线程前更新所述粒子系统的位置和方位。3.如权利要求1的方法,所述方法还包括在唤醒所述第二线程前更新所述图形处理使用的摄像机的位置和方位。4.如权利要求1的方法,所述方法还包括在通过所述第二线程执行所述粒子系统的更新操作前,清空所述粒子系统使用的内存池。5.如权利要求1的方法,还包括在阻塞所述第二线程前,将渲染数据存储到内存池中。6.如权利要求5的方法,还包括在阻塞所述第二线程前,将所述内存池中的渲染数据发送给显存。7.如权利要求6的方法,还包括将所述内存池中的渲染数据发送给显存后,给所述第一线程发送通知。8.如权利要求1的方法,其中通过所述第一线程创建粒子系统,包括通过所述第一线程创建多个粒子系统。9.如权利要求8的方法,所述方法还包括在唤醒所述第二线程前将所述多个粒子系统放入队列中。10.如权利要求9的方法,其中执行所述粒子系统的更新操作和粒子朝向计算包括对所述队列中的所述多个粒子系统执行更新操作和粒子朝向计算。11.如权利要求10的方法,还包括将所述多个粒子系统的更新操作和朝向计算结果作为渲染数据...

【专利技术属性】
技术研发人员:王磐
申请(专利权)人:北京畅游天下网络技术有限公司
类型:发明
国别省市:北京;11

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

1