一种粒子发射方法和装置与流程

文档序号:16397820发布日期:2018-12-25 19:57阅读:215来源:国知局
一种粒子发射方法和装置与流程

本发明涉及计算机图形学领域,特别是涉及一种粒子发射方法,以及一种粒子发射装置。



背景技术:

Reeves于1983年提出了粒子系统为模糊物体建模的方法,其基本思想是把模糊的物体看做众多粒子组成的粒子团,粒子可以看做简单的点。各粒子均具有自己的属性,如颜色、形状、大小、生存周期和速度等等,粒子的动力学性质决定了其在不同的时刻的状态,粒子随时间的推移而不断变化。

粒子由粒子系统发射,一个粒子系统是由一个粒子发射器、多个粒子影响器共同构成的,即粒子系统产生粒子效果。

粒子的发射是在空间中发射的,在空间三个维度的坐标分别为X、Y和Z,观察者从Z方向观看粒子效果,粒子相对于观察者的位置在前还是在后,与Z方向的坐标值相关,即Z方向呈现的是粒子发射的展示效果。

以上背景技术中存在的问题是,当粒子发射的初始位置相同时(比如点发射),粒子发射呈现的效果却可能是杂乱无章的,没有一个顺序的关系,无法做到粒子发射都是从最前面发射出来的,或者从后面发射出来的,也即是,按照背景技术中的粒子发射方法,无法生成整齐的粒子效果图。



技术实现要素:

本发明提供了一种粒子发射的方法及装置,以解决背景技术中的粒子发射方法无法生成整齐的粒子效果图的问题。

为了解决上述问题,本发明公开了一种粒子发射方法,包括:

接收选择的粒子系统和针对所述粒子系统设置的发射属性,所述发射属性包括粒子数量N和粒子发射参数,N为正整数;

创建N个粒子系统,针对每个粒子系统配置相同的粒子发射参数;

所述N个粒子系统间隔预定时间逐个发射粒子,在发射粒子时,将当前发射粒子在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值。

优选地,所述发射属性还包括粒子整齐方式,所述粒子整齐方式包括衰减在前和衰减在后。

优选地,所述将已发射粒子在发射方向的坐标位置缩减或增加预设值的步骤包括:

当所述粒子整齐方式为衰减在前时,将已发射粒子在发射方向的坐标位置增加预设值;

当所述粒子整齐方式为衰减在后时,将已发射粒子在发射方向的坐标位置缩减预设值。

优选地,通过调用粒子系统函数针对每个粒子系统配置相同的粒子发射参数。

优选地,每个粒子系统发射一个粒子;

所述粒子系统的发射属性还包括粒子在发射位置的X坐标值和Y坐标值、发射速度、发射角度、发射范围。

本发明还提供了一种粒子发射装置,包括:

属性接收模块,用于接收选择的粒子系统和针对所述粒子系统设置的发射属性,所述发射属性包括粒子数量N和粒子发射参数,N为正整数;

系统创建模块,用于创建N个粒子系统,针对每个粒子系统配置相同的粒子发射参数;

粒子发射模块,用于所述N个粒子系统间隔预定时间逐个发射粒子,在发射粒子时,将当前发射粒子在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值。

优选地,所述发射属性还包括粒子整齐方式,所述粒子整齐方式包括衰减在前和衰减在后。

优选地,所述粒子发射模块包括:

第一调整子模块,用于当所述粒子整齐方式为衰减在前时,将已发射粒子在发射方向的坐标位置增加预设值;

第二调整子模块,用于当所述粒子整齐方式为衰减在后时,将已发射粒子在发射方向的坐标位置缩减预设值。

优选地,通过调用粒子系统函数针对每个粒子系统配置相同的粒子发射参数。

优选地,每个粒子系统发射一个粒子;

所述粒子系统的发射属性还包括粒子在发射位置的X坐标值和Y坐标值、发射速度、发射角度、发射范围。

与现有技术相比,本发明包括以下优点:

本发明在接收到选择的粒子系统和针对粒子系统设置的发射属性后,创建等同粒子数量的多个粒子系统,多个粒子系统间隔预设时间发射,并且在发射时通过在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值,来调整多个粒子在发射方向的效果,从而生成整齐的粒子效果图。

附图说明

图1是本发明实施例所述一种粒子发射方法的流程图;

图2是本发明实施例所述一种粒子发射装置的结构框图;

图3是本发明实施例中设置粒子属性示意图;

图4是采用本发明实施例的粒子发射的效果图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

下面通过实施例对本发明所述方法的实现流程进行详细说明。

参照图1,其示出了本发明实施例所述一种粒子发射方法的流程图。

步骤101、接收选择的粒子系统和针对所述粒子系统设置的发射属性,所述发射属性包括粒子数量N和粒子发射参数,N为正整数。

本发明实施例中,可以通过预置的链接提交对粒子属性的设置,具体包括选择的粒子系统,以及针对粒子系统设置的发射属性,发射属性包括,发射多少个粒子以及粒子的发射参数。

具体而言,一个粒子系统是由一个粒子发射器、多个粒子影响器共同构成的,粒子系统产生粒子效果。用户可以通过选择模板库中的发射器模板,然后选择当前界面的粒子效果浏览窗口,即可将粒子系统的模板添加到粒子发射场景中对应的位置上。

在设定粒子的发射属性时,可以通过在粒子效果浏览窗口触发对粒子发射属性的设置,如图3所示,为设置粒子属性示意图。除了包含发射多少个粒子,还包括发射粒子的参数,粒子系统的发射属性还可以包括粒子在发射位置的X坐标值和Y坐标值、发射速度、发射角度、发射范围等各种属性。

在具体的实现中,进一步的,粒子系统的发射属性还可以包括生命、重力、旋转、运动范围、反弹性、可见性、色彩浓度、活跃性、角度、生命变化、数量变化、大小X变化、大小Y变化、速度变化、重力变化、旋转变化、运动范围变化、反弹性变化、生命周期内大小X、生命周期内大小Y、生命周期内速度、生命周期内重力、生命周期内旋转、生命周期内运动范围和生命周期内反弹等。其中生命和生命变化两个参数决定粒子从产生到消亡经历的时间。

步骤102、创建N个粒子系统,针对每个粒子系统配置相同的粒子发射参数。

粒子的发射位置相同时(以点发射为例,在空间中的坐标为(X、Y、Z)),粒子在前还是在后,与Z值相关。依据背景技术,按照步骤101的设置,一个粒子系统发射多个粒子,各个粒子的Z值相同,经过粒子发射后产生的粒子效果是新产生的粒子并不是在最前面,也不是在最后面,它是随机的,粒子杂乱无章。无法做到粒子发射都是从最前面发射出来的,或者从后面发射出来的,也即是,按照背景技术中的粒子发射方法,无法生成整齐的粒子效果图。

本发明实施例中,在接收到选择的粒子系统后,首先可以进一步按照选择的粒子数量,创建等同于粒子数量的多个粒子系统,并且针对每个粒子系统都配置与步骤101中相同的粒子发射参数。每个粒子系统发射一个粒子,以保证总共产生的粒子数量不变。

具体而言,可以通过调用粒子系统函数针对每个粒子系统配置相同的粒子发射参数。

步骤103、所述N个粒子系统间隔预定时间逐个发射粒子,在发射粒子时,将当前发射粒子在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值。

在步骤102中创建了N个粒子系统,并针对各个粒子系统设置发射参数后,可以将N个粒子发射出去。为了保持粒子发射后生成整齐的粒子效果图,本发明实施例中,将N个粒子系统间隔预定时间逐个发射粒子,即N个粒子系统逐一发射粒子,一个粒子系统发送粒子后,下一个粒子系统间隔一定时间后再发射粒子,并且,在发射每个粒子时,将当前发射的粒子在发射方向的坐标值设置为零,并将已经发射的粒子在发射方向的坐标值进行改动。

具体而言,在设置粒子系统的发射属性时,可以进一步设置粒子整齐方式,所述粒子整齐方式包括衰减在前和衰减在后,衰减在前表示发射器每一次发射的粒子是在上一次发射的粒子之后的位置发射的,用户会看到粒子瞬间消亡的过程,而不是创建的过程。,衰减在后表示发射器每一次发射的粒子是在上一次发射的粒子之前的位置发射的,用户会看到粒子产生的瞬间过程,而不是消亡的过程。

在接收到通过预置连接提交的粒子整齐方式后,后台调用粒子系统函数void setOrderZ(int curOrderZ,int numOrderZ,float OrderZFactor,bool bOldestInBack),设置保持粒子整齐的相关参数。curOrderZ表示当前的粒子系统在整个粒子系统列表的索引值,numOrderZ表示粒子系统列表中的粒子系统总数,OrderZFactor表示单位步长,bOldestInBack表示是否衰减在后。

以衰减在后为例,如创作开花的过程,则是用户能看到每片花瓣创建出来的过程,而要看到花瓣凋谢的过程则是衰减在前的效果了。图4a和图4b给出了采用本发明实施例的粒子发射的效果图,粒子整齐方式为衰减在后,对比图4a和图4b可以看出,宝石是从前面一颗一颗发射出来的。

本发明实施例中,将已发射粒子在发射方向的坐标位置缩减或增加预设值的步骤可以包括:

子步骤S11、当所述粒子整齐方式为衰减在前时,将已发射粒子在发射方向的坐标位置增加预设值;

子步骤S12、当所述粒子整齐方式为衰减在后时,将已发射粒子在发射方向的坐标位置缩减预设值。

根据用户的设置,选择衰减在前时,发射当前粒子的过程中,可以将已发射粒子在发射方向的坐标位置增加预设值,例如,增加单位步长;选择衰减在后时,发射当前粒子的过程中,可以将已发射粒子在发射方向的坐标位置缩减预设值,例如,缩减单位步长。

按照背景技术的方法,直接采用一个粒子系统发射N个粒子,由于多个粒子在发射方向的坐标位置(即Z值)是相同的,粒子的发射没有顺序,不整齐,观察者看到发射出的粒子可能从画面的前面开始显示,也可能从画面的中间开始显示。依据本发明实施例,可以调整多个粒子在发射方向的效果,以衰减在前为例,已经产生的粒子的Z值增加预设值,新生成的粒子的位置Z为0,如此,每次产生的粒子都是从距观察者远的地方开始发射,粒子的发射就有了顺序,生成整齐的粒子效果图。并且,当预设值为单位步长时,由于步长的值很小,不会引起其他效果的改变。

后台在发射每个粒子时,粒子系统ParticleSystem通过调用processOrderZ()处理保持粒子整齐的功能。

具体的,processOrderZ()实现过程包括:

设置当前的粒子位置Z=0,x和y不变,newParticle.position.z=0。

设置粒子系统列表其余的粒子系统中的粒子位置Z值为:衰减在前时加OrderZFactor值,在衰减在后时减去OrderZFactor值。

具体的实现代码如下所示:

依据本发明,在接收到选择的粒子系统和针对粒子系统设置的发射属性后,创建等同粒子数量的多个粒子系统,多个粒子系统间隔预设时间发射,并且在发射时通过在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值,来调整多个粒子在发射方向的效果,从而生成整齐的粒子效果图。

需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。

基于上述方法实施例的说明,本发明还提供了相应的3D文件的时间矫正装置实施例,来实现上述方法实施例所述的内容。

参照图2,其示出了本发明实施例所述一种粒子发射装置的结构框图,具体可以包括:

属性接收模块201,用于接收选择的粒子系统和针对所述粒子系统设置的发射属性,所述发射属性包括粒子数量N和粒子发射参数,N为正整数;

系统创建模块202,用于创建N个粒子系统,针对每个粒子系统配置相同的粒子发射参数;

粒子发射模块203,用于所述N个粒子系统间隔预定时间逐个发射粒子,在发射粒子时,将当前发射粒子在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值。

本发明实施例中,所述发射属性还可以包括粒子整齐方式,所述粒子整齐方式包括衰减在前和衰减在后。

本发明实施例中,所述粒子发射模块可以包括:

第一调整子模块,用于当所述粒子整齐方式为衰减在前时,将已发射粒子在发射方向的坐标位置增加预设值;

第二调整子模块,用于当所述粒子整齐方式为衰减在后时,将已发射粒子在发射方向的坐标位置缩减预设值。

本发明实施例中,通过调用粒子系统函数针对每个粒子系统配置相同的粒子发射参数。

本发明实施例中,每个粒子系统发射一个粒子;

所述粒子系统的发射属性还包括粒子在发射位置的X坐标值和Y坐标值、发射速度、发射角度、发射范围。

依据本发明,在接收到选择的粒子系统和针对粒子系统设置的发射属性后,创建等同粒子数量的多个粒子系统,多个粒子系统间隔预设时间发射,并且在发射时通过在发射方向的坐标值设置为零,将已发射粒子在发射方向的坐标位置缩减或增加预设值,来调整多个粒子在发射方向的效果,从而生成整齐的粒子效果图。

对于上述粒子发射装置的实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。

本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本发明中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

以上对本发明所提供的一种粒子发射方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1