一种粒子渲染方法、装置、电子设备及存储介质与流程

文档序号:16584948发布日期:2019-01-14 18:19阅读:156来源:国知局
一种粒子渲染方法、装置、电子设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种粒子渲染方法、装置、电子设备及存储介质。



背景技术:

粒子系统是一种在三维计算机图形学中模拟一些特定的模糊现象的技术。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹等抽象视觉效果。移动终端的娱乐类app中也时常会使用粒子系统,将绚丽的效果渲染给用户看。

然而,由于粒子播放系统是根据一定的描述文件或者设定好的参数持续的计算渲染数据和变化,并不会对中间状态进行记录,因此无法确定渲染中某一个时间点的粒子状态。这样,当需要对粒子播放中的某个画面进行精确编辑时,现有的粒子系统无法提供相应的支持。



技术实现要素:

有鉴于此,本发明实施例提供一种粒子渲染方法、装置、电子设备及存储介质,能够确定粒子系统生成的粒子在任意时刻的粒子状态,从而对播放出的粒子画面进行精确编辑。

第一方面,本发明实施例提供一种粒子渲染方法,包括:在粒子渲染画面的粒子生成时,缓存所述粒子在边界时刻的粒子状态信息,其中,所述边界时刻包括初始时刻、结束时刻;根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态;根据确定出的所述粒子状态对所述粒子渲染画面进行更新,以使所述粒子渲染画面定格到所述指定时刻。

结合第一方面,在第一方面的第一种实施方式中,所述粒子状态信息包括以下至少一种:渲染时刻、线速度、角速度、颜色、大小、形状、位置。

结合第一方面,在第一方面的第二种实施方式中,所述粒子由一个粒子系统生成或者由多个粒子系统生成。

结合第一方面,在第一方面的第三种实施方式中,所述根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态包括:根据粒子系统的描述文件和/或预设参数,对粒子系统进行第一运算得到第一系统;将所述边界时刻的粒子状态信息以及编辑指令所指定的所述任意指定时刻输入所述第一系统,得到所述任意指定时刻的粒子状态。

结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述第一运算包括微分运算和/或物理运动定律运算。

结合第一方面,在第一方面的第五种实施方式中,所述根据确定出的所述粒子状态对所述粒子渲染画面进行更新包括:根据确定出的所述粒子状态对所述粒子渲染画面执行以下至少一种操作:产生新的粒子、删除到期粒子、刷新生存中的粒子的演化状态。

结合第一方面或第一方面的第一至第五中任一种实施方式,在第一方面的第六种实施方式中,所述缓存所述粒子在边界时刻的粒子状态信息之后,所述根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态之前,所述方法还包括:将生成的粒子与预设视频进行叠加;所述根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态包括:根据缓存的所述粒子状态信息,确定所述预设视频中所述任意指定时刻对应的视频帧中的粒子状态。

第二方面,本发明的实施例还提供一种粒子渲染装置,包括:缓存单元,用于在粒子渲染画面的粒子生成时,缓存所述粒子在边界时刻的粒子状态信息,其中,所述边界时刻包括初始时刻、结束时刻;确定单元,用于根据所述缓存单元缓存的粒子状态信息,确定所述粒子在任意指定时刻的粒子状态;更新单元,用于根据所述确定单元确定出的所述粒子状态对所述粒子渲染画面进行更新,以使所述粒子渲染画面定格到所述指定时刻。

结合第二方面,在第二方面的第一种实施方式中,所述粒子状态信息包括以下至少一种:渲染时刻、线速度、角速度、颜色、大小、形状、位置。

结合第二方面,在第二方面的第二种实施方式中,所述粒子由一个粒子系统生成或者由多个粒子系统生成。

结合第二方面,在第二方面的第三种实施方式中,所述确定单元包括:运算模块,用于根据粒子系统的描述文件和/或预设参数,对粒子系统进行第一运算得到第一系统;输入模块,用于将所述边界时刻的粒子状态信息以及编辑指令所指定的所述任意指定时刻输入所述第一系统,得到所述任意指定时刻的粒子状态。

结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述第一运算包括微分运算和/或物理运动定律运算。

结合第二方面,在第二方面的第五种实施方式中,所述更新单元,具体用于根据确定出的所述粒子状态对所述粒子渲染画面执行以下至少一种操作:产生新的粒子、删除到期粒子、刷新生存中的粒子的演化状态。

结合第二方面或第二方面的第一至第五中任一种实施方式,在第二方面的第六种实施方式中,所述装置还包括:叠加单元,用于在缓存所述粒子在边界时刻的粒子状态信息之后,在根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态之前,将生成的粒子与预设视频进行叠加;所述确定单元,具体用于根据缓存的所述粒子状态信息,确定所述预设视频中所述任意指定时刻对应的视频帧中的粒子状态。

第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种粒子渲染方法。

第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种粒子渲染方法。

本发明的实施例提供的粒子渲染方法、装置、电子设备及存储介质,能够在粒子生成时缓存粒子在边界时刻的粒子状态信息,并根据缓存的粒子状态信息确定粒子在任意指定时刻的粒子状态,然后根据确定出的粒子状态对粒子渲染画面进行更新,以使粒子渲染画面定格到所述指定时刻。这样就可以将本来由随机产生的粒子形成的渲染画面进行精确地还原再现,使用户可以精确编辑粒子渲染画面的每一个细节,从而有效提升了编辑效果和用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的实施例提供的粒子渲染方法的一种流程图;

图2为本发明的实施例提供的粒子渲染方法的一种详细流程图;

图3为本发明的实施例提供的粒子渲染装置的一种结构示意图;

图4为本发明的实施例提供的电子设备的一种结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

第一方面,本发明实施例提供一种粒子渲染方法,能够确定粒子系统生成的粒子在任意时刻的粒子状态,从而对播放出的粒子画面进行精确编辑。

如图1所示,本发明的实施例提供的粒子渲染方法可以包括:

s11,在粒子渲染画面的粒子生成时,缓存所述粒子在边界时刻的粒子状态信息,其中,所述边界时刻包括初始时刻、结束时刻;

具体而言,粒子渲染画面的渲染效果是通过粒子系统生成的一系列的粒子集体呈现的,其中每个粒子在屏幕中的展现效果可以用粒子状态来描述,同时,每个粒子在不同时刻所呈现的不同的粒子状态也会影响整个粒子渲染画面的效果。

虽然粒子系统生成粒子时,不同生成批次之间粒子状态会存在一定的随机性,但针对其中一个特定的生成批次而言,每个粒子生成时,其生命周期的初始时刻、结束时刻的粒子状态就确定了。本步骤中,可以在每个粒子生成时将其初始时刻、结束时刻的粒子状态信息记录下来,将其作为一种边界条件来为后面步骤中粒子生命周期的中间状态的确定提供依据。

可选的,缓存下来的粒子状态信息可以是一些描述性的文字、数字或符号等,这些状态信息的信息量大但占据的存储空间非常小,因此即使对粒子系统生成的大量粒子的状态进行记录,也不会占用太多资源。可选的,状态信息可以以预设的格式或数据结构存储在内存、硬盘或云端,本发明的实施例对此不做限定。

s12,根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态;

本步骤中,可以利用上一个步骤中对每个粒子缓存的边界时刻的粒子状态信息来确定出该粒子在其生命周期的任意指定时刻的粒子状态信息。也就是说,如果用户需要知道粒子系统生成的粒子在中间某个时刻处于何种状态,则只需要通过指令指出该指定时刻,即可根据缓存的边界时刻的粒子状态信息唯一确定该指定时刻对应的粒子状态。

s13,根据确定出的所述粒子状态对所述粒子渲染画面进行更新,以使所述粒子渲染画面定格到所述指定时刻。

本步骤中,可以根据步骤s12中确定的指定时刻的粒子状态对当前的粒子渲染画面进行更新,从而使粒子渲染画面定格到该指定时刻。例如,在本发明的一个实施例中,粒子系统生成一系列粒子来模拟烟花,粒子经过历时10秒钟的一系列变幻后生成“happybirthday”的文字图样。如果想对中间的变幻过程进行详细的查看和编辑,例如需要查看第7秒钟的粒子渲染画面a和第9秒钟的粒子渲染画面b,并比较画面a和画面b之间的差异,则可以发出指令,根据粒子生成时缓存的粒子状态信息确定第7秒时的粒子状态和第9秒时的粒子状态,并对粒子渲染画面进行更新,分别展示出对应的画面a和画面b。进一步的,还可以对画面a和画面b分别截图保存或叠加比较,以方便用户进行图像分析和编辑。

本发明的实施例提供的粒子渲染方法,能够在粒子生成时缓存粒子在边界时刻的粒子状态信息,并根据缓存的粒子状态信息确定粒子在任意指定时刻的粒子状态,然后根据确定出的粒子状态对粒子渲染画面进行更新,以使粒子渲染画面定格到所述指定时刻。这样就可以将本来由随机产生的粒子形成的渲染画面进行精确地还原再现,使用户可以精确编辑粒子渲染画面的每一个细节,从而有效提升了编辑效果和用户体验。

可选的,本发明的实施例中的粒子状态信息是一种对粒子状态的记录和描述,可以包括以下一项或多项:渲染时刻、线速度、角速度、颜色、大小、形状、位置等。其中,渲染时刻可以包括一个粒子生命周期的初始时刻、中间时刻和结束时刻,初始时刻和结束时刻又可以称为边界时刻。例如,在本发明的一个实施例中,粒子系统生成的粒子p,初始时刻(0秒)的线速度为3cm/s,颜色为红色,大小为2mm2,形状为星形,出现位置在屏幕的(50,128)像素点,时刻3秒时,粒子p的线速度为7cm/s,颜色为橙色,大小为4mm2,形状为星形,出现位置在屏幕的(55,140)像素点。

可以理解的,不同的粒子渲染画面可能具有不同的特色和表现内容,相应的,粒子系统的复杂程度也可以有所不同。例如,对于比较简单的渲染画面,整个粒子渲染画面中的粒子可以由一个粒子系统生成,对于表现内容比较丰富的渲染画面,整个粒子渲染画面可以由多个粒子系统生成。

可选的,无论是由同一个粒子系统生成的粒子,还是由多个粒子系统生成的粒子,不同的粒子之间既可以各自运动互不影响,也可以进行相互碰撞从而演化出更复杂的粒子运动和更绚烂的视觉效果。对于其中的每个粒子系统来说,其生成的粒子所模拟的各种视觉效果既可以是一维的,也可以是二维或三维的,本发明的实施例对此不做限定。

缓存粒子在边界时刻的粒子状态信息之后,在步骤s12中,可以根据缓存的边界时刻的粒子状态信息,确定粒子在任意指定时刻的粒子状态。具体而言,由于粒子是由粒子系统根据粒子系统的描述文件和/或预设参数生成的,为了获知粒子状态随时间的变化信息,在本发明的一个实施例中,可以根据粒子系统的描述文件和/或预设参数,对粒子系统进行第一运算得到第一系统;其中,第一系统表达了粒子状态随时间的变化关系。进一步的,可以根据用户的编辑指令和缓存的边界时刻的粒子状态信息确定编辑指令所指定的时刻的粒子状态,例如,可以将边界时刻的粒子状态信息以及编辑指令所指定的任意指定时刻输入第一系统,从而得到该指定时刻的粒子状态。

可选的,在本发明的一个实施例中,对粒子系统进行的第一运算可以包括微分运算和/或物理运动定律运算等。其中,如果粒子之间单独运动、不互相影响,则第一运算既可以包括微分运算,又可以包括物理运动定律运算,例如,速度等于加速度乘以时间,位移等于速度乘以时间等。如果粒子之间会发生碰撞等相互作用,则第一运算优选包括微分运算。

需要说明的是,第一系统虽然反映了粒子状态随时间的变化关系,但由于生成的粒子数量庞大,要想确定每一个粒子在其生命周期中是如何演化的,还需要获知该粒子边界时刻的粒子状态信息。具体而言,可以将缓存的边界时刻的粒子状态信息输入第一系统,即可以以其作为边界条件确定出每一个粒子确定每一个生成的粒子在其生命周期中具体是如何演化的。此时,如果想获知一个粒子在某个指定时刻的粒子状态,则直接将该指定时刻输入第一系统即可。例如想获知一个粒子在其生命周期的第5秒中的粒子状态,则可以直接将5秒输入第一系统,第一系统即可输出相应的粒子状态。

得出任意指定时刻的粒子状态后,在步骤s13中即可根据确定出的粒子状态对粒子渲染画面进行更新。可选的,在本发明的一个实施例中,根据确定出的粒子状态对粒子渲染画面可以执行以下一种或多种操作:产生新的粒子、删除到期粒子、刷新生存中的粒子的演化状态。其中,产生新的粒子,也就是看在这一指定时刻粒子系统新产生了哪个或哪些粒子,在粒子渲染画面中表现出该粒子从无到有的新生成过程;删除到期粒子则正好相反,即看这一指定时刻哪个或哪些粒子的生命周期即将结束,在粒子渲染画面中表现出该粒子从存在到消失的过程;刷新生存中的粒子的演化状态,即,如果一个粒子既不是新产生的粒子,也不是到期粒子,则在其生命周期中的这一指定时刻粒子状态是如何演化的,在粒子渲染画面中表现出此指定时刻的粒子状态与上一时刻的粒子状态之间的变化。通过对粒子渲染画面中的粒子进行上述操作,粒子渲染画面中的所有粒子的表现效果得以更新,定格在用户需要的指定时刻。

上述实施例中,都是对粒子渲染画面中的粒子状态进行准确定位,重复再现和精确边界,但本发明的实施例不限于此。在本发明的其他实施例中,粒子渲染画面还可以与其他视频、动画等叠加,相应的,可以对视频或动画中的任何一帧连同其叠加的粒子渲染画面一起进行定位、再现和精确编辑。

具体而言,在本发明的一个实施例中,在缓存粒子在边界时刻的粒子状态信息之后,在根据缓存的粒子状态信息,确定所述粒子在任意指定时刻的粒子状态之前,本发明的实施例提供的粒子渲染方法还可以包括:将生成的粒子与预设视频进行叠加;基于此,根据缓存的粒子状态信息,确定所述粒子在任意指定时刻的粒子状态具体可以包括:根据缓存的粒子状态信息,确定所述预设视频中所述任意指定时刻对应的视频帧中的粒子状态。

举例说明,在本发明的一个实施例中,在一段30秒的广告视频中,从第15秒至25秒叠加了一段粒子渲染画面,以在该广告视频中增添视觉效果,则可以根据粒子生成时缓存的边界时刻的粒子状态信息,精确编辑第15秒至25秒的视频帧。

下面通过具体实施例对本发明的实施例提供的粒子渲染方法进行详细说明。

如图2所示,本发明的实施例提供的粒子渲染方法可以包括:

s201、粒子系统a1和粒子系统a2分别按照各自的描述文件不断生成新粒子;

s202、将粒子系统a1和a2生成的每个新粒子的边界时刻的粒子状态信息分别进行缓存;

其中,边界时刻的粒子状态信息可以包括粒子生成时刻和结束时刻的线速度、角速度、颜色、大小、形状、位置等;

s203、粒子系统a1生成的粒子与粒子系统a2生成的粒子被叠加在视频b中;

可选的,粒子系统a1生成的粒子和粒子系统a2生成的粒子之间既可以互不影响,也可以存在相互作用,如碰撞等;

s204、接收编辑指令,该编辑指令指示对视频b中第6秒对应的视频帧进行精确编辑;

s205、对粒子系统a1和粒子系统a2进行对时间的微分运算,分别得到第一系统c1和c2;

s206、将时刻t=6s以及通过粒子系统a1生成的粒子的边界时刻的粒子状态信息输入第一系统c1,将时刻t=6s以及通过粒子系统a2生成的粒子的边界时刻的粒子状态信息输入第一系统c2,得到t=6s时视频b中存在的粒子的粒子状态;

s207、对比当前时刻视频b的视频帧画面,对视频b中的画面进行刷新,以使视频b展示第6秒的视频帧;

可选的,刷新时的具体操作可以包括:绘制新产生的粒子,删除到期的粒子,刷新生存中的粒子的演化状态。

第二方面,本发明的实施例还提供一种粒子渲染装置,能够确定粒子系统生成的粒子在任意时刻的粒子状态,从而对播放出的粒子画面进行精确编辑。

如图3所示,本发明的实施例提供的粒子渲染装置可以包括:

缓存单元31,用于在粒子渲染画面的粒子生成时,缓存所述粒子在边界时刻的粒子状态信息,其中,所述边界时刻包括初始时刻、结束时刻;

确定单元32,用于根据所述缓存单元缓存的粒子状态信息,确定所述粒子在任意指定时刻的粒子状态;

更新单元33,用于根据所述确定单元确定出的所述粒子状态对所述粒子渲染画面进行更新,以使所述粒子渲染画面定格到所述任意指定时刻。

本发明的实施例提供的粒子渲染装置,能够在粒子生成时缓存粒子在边界时刻的粒子状态信息,并根据缓存的粒子状态信息确定粒子在任意指定时刻的粒子状态,然后根据确定出的粒子状态对粒子渲染画面进行更新,以使粒子渲染画面定格到所述指定时刻。这样就可以将本来由随机产生的粒子形成的渲染画面进行精确地还原再现,使用户可以精确编辑粒子渲染画面的每一个细节,从而有效提升了编辑效果和用户体验。

可选的,所述粒子状态信息包括以下至少一种:渲染时刻、线速度、角速度、颜色、大小、形状、位置。

可选的,所述粒子由一个粒子系统生成或者由多个粒子系统生成。

可选的,确定单元32可以包括:

运算模块,用于根据粒子系统的描述文件和/或预设参数,对粒子系统进行第一运算得到第一系统;

输入模块,用于将所述边界时刻的粒子状态信息以及编辑指令所指定的所述任意指定时刻输入所述第一系统,得到所述任意指定时刻的粒子状态。

可选的,所述第一运算包括微分运算和/或物理运动定律运算。

可选的,更新单元33,具体可用于根据确定出的所述粒子状态对所述粒子渲染画面执行以下至少一种操作:产生新的粒子、删除到期粒子、刷新生存中的粒子的演化状态。

可选的,本发明的实施例提供的粒子渲染装置还可包括:

叠加单元,用于在缓存所述粒子在边界时刻的粒子状态信息之后,在根据缓存的所述粒子状态信息,确定所述粒子在任意指定时刻的粒子状态之前,将生成的粒子与预设视频进行叠加;

确定单元32,具体可用于根据缓存的所述粒子状态信息,确定所述预设视频中所述任意指定时刻对应的视频帧中的粒子状态。

第三方面,本发明实施例提供一种电子设备,能够确定粒子系统生成的粒子在任意时刻的粒子状态,从而对播放出的粒子画面进行精确编辑。

如图4所示,本发明的实施例提供的电子设备,可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例提供的粒子渲染方法。

处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。

上述电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种粒子渲染方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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