CN107978014A - 一种粒子渲染方法、装置、电子设备及存储介质 - Google Patents

一种粒子渲染方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN107978014A
CN107978014A CN201711402103.0A CN201711402103A CN107978014A CN 107978014 A CN107978014 A CN 107978014A CN 201711402103 A CN201711402103 A CN 201711402103A CN 107978014 A CN107978014 A CN 107978014A
Authority
CN
China
Prior art keywords
rendered
duration
particle
video
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711402103.0A
Other languages
English (en)
Other versions
CN107978014B (zh
Inventor
刘伟
刘倍余
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuomi Private Ltd
Original Assignee
Happy Honey Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Happy Honey Co Ltd filed Critical Happy Honey Co Ltd
Priority to CN201711402103.0A priority Critical patent/CN107978014B/zh
Publication of CN107978014A publication Critical patent/CN107978014A/zh
Application granted granted Critical
Publication of CN107978014B publication Critical patent/CN107978014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开一种粒子渲染方法、装置、电子设备及存储介质,涉及计算机技术领域,能够有效解决视频播放进行粒子渲染时容易出现卡顿的问题。所述方法包括:检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,所述单位粒子集为具有预设粒子数量的粒子的集合;比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系;根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。本发明可用于视频播放的粒子渲染中。

Description

一种粒子渲染方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种粒子渲染方法、装置、电子设备及存储介质。
背景技术
移动终端的娱乐类App中时常会使用粒子系统,将绚丽的效果渲染给用户看,或者通过编码渲染进视频文件中。然而,基于目前的手机CPU、显示系统等软硬件的计算及显示等能力,当计算和渲染大量粒子系统时,常常会引起视频播放及粒子渲染卡顿。
现有的移动终端App渲染粒子系统时,可以通过提前在应用中设定粒子系统最大粒子渲染数量安全值的方案来规避渲染卡顿问题,但该方案仍存在以下几个缺点:
(1)不同移动终端性能不一,难以实现给所有机型的终端预设合理安全值,仍可能产生卡顿;
(2)同一移动终端的性能发生变化时,不能实时动态调整安全值,可能会造成渲染卡顿;
(3)针对新机型移动终端或系统更新,不能及时更新安全值,仍可能造成卡顿。
发明内容
有鉴于此,本发明实施例提供一种粒子渲染方法、装置、电子设备及存储介质,能够有效解决视频播放进行粒子渲染时容易出现卡顿的问题。
第一方面,本发明实施例提供一种粒子渲染方法,包括:检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,所述单位粒子集为具有预设粒子数量的粒子的集合;比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系;根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。
结合第一方面,在第一方面的第一种实施方式中,所述检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长包括:检测所述待渲染的视频中渲染所述预设粒子数量的粒子所需要的时长。
结合第一方面,在第一方面的第二种实施方式中,所述根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长包括:如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长;如果所述实际渲染时长小于或等于所述参考渲染时长,保持粒子渲染参数不变。
结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长包括:如果所述实际渲染时长与所述参考渲染时长的时长比值大于1,将所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长减小所述时长比值倍。
结合第一方面,在第一方面的第四种实施方式中,所述比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系之前,所述方法还包括:检测所述待渲染的视频是否以变倍速方式播放;在所述待渲染的视频以变倍速方式播放的情况下,根据相应的倍速调整所述单位粒子集对应的参考渲染时长。
结合第一方面或第一方面的第一至第四中任一种实施方式,在第一方面的第五种实施方式中,所述检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长之前,所述方法还包括:根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量。
结合第一方面的第五种实施方式,在第一方面的第六种实施方式中,所述根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量包括:根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量;根据所述待渲染的视频中单位时间内的最大粒子发射数量及每个粒子的生存时长,获取在每个视频帧中的最大渲染粒子数;根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量;确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量。
结合第一方面的第六种实施方式,在第一方面的第七种实施方式中,所述根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量包括:在所述实际视频帧率大于所述预设帧率的情况下,按照预设速率逐渐增大单位时间内的粒子发射数量,直至所述实际视频帧率小于所述预设帧率,其中,所述预设速率小于预设阈值;确定所述实际视频帧率首次小于所述预设帧率时、单位时间内的粒子发射数量为所述单位时间内的最大粒子发射数量。
结合第一方面的第六种实施方式,在第一方面的第八种实施方式中,所述根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量包括:将每个视频帧中渲染的最大粒子数与所述预设帧率的乘积再乘以所述参考渲染时长得到所述参考渲染时长内渲染的最大粒子数量。
结合第一方面的第六种实施方式,在第一方面的第九种实施方式中,所述确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量包括:对至少两个所述参考渲染时长内渲染的最大粒子数量求平均值,得到所述单位粒子集对应的所述预设粒子数量。
第二方面,本发明的实施例还提供一种粒子渲染装置,包括:检测单元,用于检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,所述单位粒子集为具有预设粒子数量的粒子的集合;比较单元,用于比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系;调整单元,用于根据所述比较单元的比较结果,调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。
结合第二方面,在第二方面的第一种实施方式中,所述检测单元,具体用于检测所述待渲染的视频中渲染所述预设粒子数量的粒子所需要的时长。
结合第二方面,在第二方面的第二种实施方式中,所述比较单元包括:减少模块,用于如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长;保持模块,用于如果所述实际渲染时长小于或等于所述参考渲染时长,保持粒子渲染参数不变。
结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述减少模块,具体用于如果所述实际渲染时长与所述参考渲染时长的时长比值大于1,将所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长减小所述时长比值倍。
结合第二方面,在第二方面的第四种实施方式中,所述检测单元,还用于在比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系之前,检测所述待渲染的视频是否以变倍速方式播放;所述调整单元,还用于在所述待渲染的视频以变倍速方式播放的情况下,根据相应的倍速调整所述单位粒子集对应的参考渲染时长。
结合第二方面或第二方面的第一至第四中任一种实施方式,在第二方面的第五种实施方式中,所述装置还包括确定单元,用于在检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长之前,根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量。
结合第二方面的第五种实施方式,在第二方面的第六种实施方式中,所述确定单元包括:第一确定模块,用于根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量;获取模块,用于根据所述待渲染的视频中单位时间内的最大粒子发射数量及每个粒子的生存时长,获取在每个视频帧中的最大渲染粒子数;第二确定模块,用于根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量;第三确定模块,用于确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量。
结合第二方面的第六种实施方式,在第二方面的第七种实施方式中,所述第一确定模块,具体用于:在所述实际视频帧率大于所述预设帧率的情况下,按照预设速率逐渐增大单位时间内的粒子发射数量,直至所述实际视频帧率小于所述预设帧率,其中,所述预设速率小于预设阈值;确定所述实际视频帧率首次小于所述预设帧率时、单位时间内的粒子发射数量为所述单位时间内的最大粒子发射数量。
结合第二方面的第六种实施方式,在第二方面的第八种实施方式中,所述第二确定模块,具体用于:将每个视频帧中渲染的最大粒子数与所述预设帧率的乘积再乘以所述参考渲染时长得到所述参考渲染时长内渲染的最大粒子数量。
结合第二方面的第六种实施方式,在第二方面的第九种实施方式中,所述第三确定模块,具体用于:对至少两个所述参考渲染时长内渲染的最大粒子数量求平均值,得到所述单位粒子集对应的所述预设粒子数量。
第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种粒子渲染方法。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种粒子渲染方法。
本发明的实施例提供的粒子渲染方法、装置、电子设备及存储介质,能够检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,然后比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系,并根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。这样,即可根据实际的渲染状态动态调整粒子的渲染参数,有效解决了视频播放进行粒子渲染时容易出现卡顿的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的粒子渲染方法的一种流程图;
图2为本发明的实施例提供的粒子渲染方法中参考渲染时长对应的单位粒子集的确定过程的一种流程图;
图3为本发明的实施例提供的粒子渲染方法的一种详细流程图;
图4为本发明的实施例提供的粒子渲染装置的一种结构示意图;
图5为本发明的实施例提供的粒子渲染装置的另一种结构示意图;
图6为本发明的实施例提供的电子设备的一种结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种粒子渲染方法,能够根据实际的渲染状态动态调整粒子的渲染参数,有效解决了视频播放进行粒子渲染时容易出现卡顿的问题。
如图1所示,本发明的实施例提供的粒子渲染方法,包括:
S11,检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,所述单位粒子集为具有预设粒子数量的粒子的集合;
在粒子系统中,粒子随着视频的播放进行渲染,每个视频帧中都对应渲染一定数量的粒子。由于粒子的渲染效果需要通过一定数量的粒子集体呈现,为了便于描述粒子的渲染效果,在本发明的实施例中,提出单位粒子集的概念,单位粒子集也就是具有预设粒子数量的粒子的集合。在粒子渲染中,以单位粒子集为基本单位对粒子及其渲染效果进行描述。
单位粒子集渲染的时长与单位粒子集中包含的粒子数量有关,同等条件下,单位粒子集中包含的粒子数量越多,渲染该单位粒子集所需的时间越长,因此,在其他条件一定的情况下,单位粒子集所对应的渲染时长也是一定的。检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,有利于对粒子渲染是否顺畅、是否卡顿作出判断。
本步骤中,可以在视频播放和粒子渲染的过程中,检测渲染的粒子数和所花费的时间,检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长具体可以包括:检测所述待渲染的视频中渲染所述预设粒子数量的粒子所需要的时长。
S12,比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系;
本步骤中,参考渲染时长是预先设置的时长参数。在本发明的一个实施例中,可以在标准的、不卡顿的情况下为单位粒子集确定一个对应的参考渲染时长,然后以该参考时长为标准,可以根据单位粒子集的实际渲染时长与参考渲染时长的关系,确定粒子渲染是否卡顿,是否需要调节,以及怎样调节。
S13,根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。
本步骤中,需要根据步骤S12中的比较结果,调整粒子渲染参数,从而保证粒子渲染流畅。具体的,可以调整待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数,也可以调整每个粒子的生存时长,还可以二者一起调整。例如,可以减少当前帧中正在渲染的粒子数,同时减少每个粒子的生存时长,并且减少下一帧对应的渲染粒子数,同时保持下一帧中每个粒子的生存时长不变。具体的调整方案可以根据渲染需要进行,本发明的实施例对此不做限定。
本发明的实施例提供的粒子渲染方法,能够检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,然后比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系,并根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。这样,即可根据实际的渲染状态动态调整粒子的渲染参数,有效解决了视频播放进行粒子渲染时容易出现卡顿的问题。
具体而言,步骤S13中,根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长可包括:
如果所述实际渲染时长大于所述参考渲染时长,则可以减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长;
如果所述实际渲染时长小于或等于所述参考渲染时长,则可以保持粒子渲染参数不变。
也就是说,如果检测到的实际渲染时长大于参考渲染时长,则说明渲染同样的单位粒子集所需的时间比参考时间要长,因此可以推断出粒子渲染出现了卡顿,为了缓解卡顿情况,可以减少待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。如果检测到的时间渲染时长小于或等于该参考渲染时长,则说明渲染同样的单位粒子集所需的时间并没有比参考时间长,因此可以推断出粒子渲染没有卡顿,可以保持原来的粒子渲染参数不变。
在需要对粒子渲染参数进行调整的情况下,如何进行调整关系到卡顿现象是否能及时解决,因此对粒子渲染参数调整的具体量也具有很大意义。在本发明的一个实施例中,如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长可包括:
如果所述实际渲染时长与所述参考渲染时长的时长比值大于1,将所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长减小所述时长比值倍。
需要说明的是,只要将每个视频帧对应的渲染粒子数和每个粒子的生存时长这两者的乘积减小所述时长比值倍即可,以便保证渲染效果不失真,置于渲染粒子数减小多少倍,生存时长减小多少倍不做限定。
举例说明,在本发明的一个实施例中,假如检测到一个单位粒子集的实际渲染时长为12ms,而对应的参考渲染时长为10ms,二者的时长比值为1.2,则可以将当前帧及后续帧中每个视频帧对应的渲染粒子数减小1.2倍,或者将当前帧及后续帧中每个粒子的生存时长都减小1.2倍,或者将当前帧及后续帧中每个视频帧对应的渲染粒子数减小倍并且将当前帧及后续帧中每个粒子的生存时长减小倍。
需要说明的是,本发明的实施例中,粒子渲染参数的调整可以逐帧进行,每个视频帧中对应的渲染参数可以相同,也可以不同。例如,本实施例中,当前帧和后续帧的调整方式可以不同,例如可以将当前帧的每个粒子的生存时长都减小1.2倍,而将后续帧中的每个视频帧对应的渲染粒子数和每个粒子的生存时长分别减小倍。
在实际应用中,视频播放除了按照正常的速率播放外,还可以采用变速率的方式播放,例如,整段视频都按照正常速度的2倍速播放,或者视频的一段按照正常速度的5倍速播放,另一段按照正常速度的0.5倍速播放。对于这种变速率方式的视频播放,仍然需要解决粒子渲染的卡顿问题。
为此,在本发明的一个实施例中,在步骤S12比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系之前,本发明的实施例提供的粒子渲染方法还可包括:
检测所述待渲染的视频是否以变倍速方式播放;
在所述待渲染的视频以变倍速方式播放的情况下,根据相应的倍速调整所述单位粒子集对应的参考渲染时长,从而在步骤S12中,利用检测到的实际渲染时长与调整后的参考渲染时长进行比较,根据比较结果完成对粒子渲染参数的调整。
可以理解的,如果视频以X倍的变倍速方式播放,则视频帧率也变为原来的X倍,则渲染同样的单位粒子集所需要的参考渲染时长变为原来的1/X倍。
例如,在本发明的一个实施例中,正常速度的视频播放时,渲染单位粒子集的参考渲染时长为10ms,当以2倍速播放时,将参考渲染时长调整为10/2=5ms,然后检测渲染单位粒子集的实际渲染时长为6ms,实际渲染时长与参考渲染时长的时长之比为6/5=1.2,因此可以判定为有卡顿情况出现,需要调整粒子渲染参数。具体的调整方法已经在前文进行了详细说明,此处不再赘述。
以上实施例中,粒子渲染参数的调整主要以单位粒子集为基本单位,看渲染单位粒子集所需要的实际时长与参考时长之间的关系,然而,究竟一定的参考渲染时长内渲染多少粒子不会引起卡顿,渲染多少粒子会因此卡顿,渲染的粒子数量的临界值是什么还需要提前确定出来,才能够有一个比较准确的参数调整基础。
有鉴于此,在本发明的一个实施例中,在步骤S11检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长之前,本发明的实施例提供的粒子渲染方法还可包括:
根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量。
也就是说,以参考渲染时长为一个基本的时间单位,可以首先测试一下在这段参考渲染时长内,最多渲染多少粒子可以仍然保持不卡顿,将这个对应的最大粒子数量确定为单位粒子集对应的预设粒子数量。
具体而言,根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量可包括:
根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量;
根据所述待渲染的视频中单位时间内的最大粒子发射数量及每个粒子的生存时长,获取在每个视频帧中的最大渲染粒子数;
根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量;
确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量。
可选的,所述根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量可包括:
在所述实际视频帧率大于所述预设帧率的情况下,按照预设速率逐渐增大单位时间内的粒子发射数量,直至所述实际视频帧率小于所述预设帧率,其中,所述预设速率小于预设阈值;
确定所述实际视频帧率首次小于所述预设帧率时、单位时间内的粒子发射数量为所述单位时间内的最大粒子发射数量。
确定了单位时间内的最大粒子发射数量后,每帧视频渲染的粒子数N也会达到最大值,从而可以根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量,具体可包括:
将每个视频帧中渲染的最大粒子数与所述预设帧率的乘积再乘以所述参考渲染时长得到所述参考渲染时长内渲染的最大粒子数量。
举例说明,在本发明的一个实施例中,根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量可包括:
S201、播放视频,产生渲染粒子(为确保第一次产生不引起卡帧,第一次尽量少产生粒子);
S202、记录单位时间内产生粒子数量A,当前帧渲染粒子数为N,视频的实际帧率B’以及视频设置帧率B;
S203、B’是否大于B,如果是,执行步骤S204,如果否,执行步骤S205;
S204、对单位时间内产生的粒子数少量增加M,即单位时间内产生粒子数量A=A+M,当前视频帧渲染的粒子数量也相应增加,执行步骤S201;
S205、求出参考渲染时长内渲染的最大粒子数量;
首先求出当前帧每毫秒的粒子渲染数量P,P=N*B/1000;然后用P乘以时间段系数F,得到F毫秒内渲染的最大粒子数量E,E=P*F=N*B*F/1000;如果F毫秒即定义为参考渲染时长,则E即为单位粒子集所具有的预设粒子数量,也就是说,渲染单位粒子集E所需时间为F。
进一步的,为了减小统计误差,得到更为准确的预设粒子数量,在本发明的一个实施例中,确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量可具体包括:
对至少两个所述参考渲染时长内渲染的最大粒子数量求平均值,得到所述单位粒子集对应的所述预设粒子数量。
也就是说,步骤S201至步骤S203的整个流程可以重复K次,取多次测验的单位粒子集数量值得平均值为最终单位粒子集数量值D,D=(E1+E2+E3+……+Ek)/K;得到数量为D的单位粒子集所需的参考渲染时长F。
下面通过具体实施例对本发明的实施例提供的粒子渲染方法进行详细说明。
如图3所示,本发明的实施例提供的粒子渲染方法可包括如下步骤:
S301、在应用中设置正常播放速度下待渲染的视频渲染单位粒子集所需的参考渲染时长F;
S302、播放视频产生并渲染粒子;
S303、检测待渲染视频是否变速播放,如果是,执行步骤S304,如果否,执行步骤S305;
S304、对参考渲染时长F进行调整,执行步骤S305;
S305、检测待渲染的视频中渲染单位粒子集所需的实际渲染时长F’,其中,每个粒子的生存时长为L,粒子产生速率为S,当前帧渲染的粒子数为T;
S306、F’是否大于F,如果是,执行步骤S307,如果否,执行步骤S309;
S307、计算得到比值R=F’/F,根据比值R减少当前帧正在渲染的粒子的生存时长和渲染粒子数量,例如
可选的,当同时存在多个粒子系统时,分别减少每个粒子系统中粒子的生存时长L和渲染的粒子数量T。
S308、根据比值R减少即将产生的粒子的生存时长L及粒子产生速率S,例如
S309、粒子渲染未卡顿,执行S302。
可选的,步骤S307和S308中,粒子的生存时长、正在渲染或即将产生的粒子数量中的调整系数,可以根据需求进行个性化动态配置,根据不同类型的粒子系统设置不同的除数系数。
本发明的实施例提供的粒子渲染方法,在使用任何性能或机型的播放器播放视频并渲染大量粒子系统时,能够实时监控粒子系统渲染状态,通过动态计算,实时调控粒子系统的参数,从而解决了大量粒子系统渲染卡顿的问题,大大提升了产品的用户体验。
第二方面,本发明的实施例还提供一种粒子渲染装置,能够根据实际的渲染状态动态调整粒子的渲染参数,有效解决了视频播放进行粒子渲染时容易出现卡顿的问题。
如图4所示,本发明的实施例提供粒子渲染装置,可包括:
检测单元41,用于检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,所述单位粒子集为具有预设粒子数量的粒子的集合;
比较单元42,用于比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系;
调整单元43,用于根据所述比较单元的比较结果,调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。
本发明的实施例提供的粒子渲染装置,能够检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,然后比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系,并根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。这样,即可根据实际的渲染状态动态调整粒子的渲染参数,有效解决了视频播放进行粒子渲染时容易出现卡顿的问题。
可选的,检测单元41,具体用于检测所述待渲染的视频中渲染所述预设粒子数量的粒子所需要的时长。
可选的,比较单元42可包括:
减少模块,用于如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长;
保持模块,用于如果所述实际渲染时长小于或等于所述参考渲染时长,保持粒子渲染参数不变。
可选的,所述减少模块,具体用于如果所述实际渲染时长与所述参考渲染时长的时长比值大于1,将所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长减小所述时长比值倍。
可选的,检测单元41,还可用于在比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系之前,检测所述待渲染的视频是否以变倍速方式播放;
调整单元43,还可用于在所述待渲染的视频以变倍速方式播放的情况下,根据相应的倍速调整所述单位粒子集对应的参考渲染时长。
进一步的,如图5所示,本发明的实施例提供的粒子渲染装置还可包括确定单元44,用于在检测单元41检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长之前,根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量。
可选的,确定单元44可包括:
第一确定模块,用于根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量;
获取模块,用于根据所述待渲染的视频中单位时间内的最大粒子发射数量及每个粒子的生存时长,获取在每个视频帧中的最大渲染粒子数;
第二确定模块,用于根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量;
第三确定模块,用于确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量。
可选的,所述第一确定模块,可具体用于:
在所述实际视频帧率大于所述预设帧率的情况下,按照预设速率逐渐增大单位时间内的粒子发射数量,直至所述实际视频帧率小于所述预设帧率,其中,所述预设速率小于预设阈值;
确定所述实际视频帧率首次小于所述预设帧率时、单位时间内的粒子发射数量为所述单位时间内的最大粒子发射数量。
可选的,所述第二确定模块,可具体用于:
将每个视频帧中渲染的最大粒子数与所述预设帧率的乘积再乘以所述参考渲染时长得到所述参考渲染时长内渲染的最大粒子数量。
可选的,所述第三确定模块,可具体用于:
对至少两个所述参考渲染时长内渲染的最大粒子数量求平均值,得到所述单位粒子集对应的所述预设粒子数量。
第三方面,本发明实施例提供一种电子设备,能够根据实际的渲染状态动态调整粒子的渲染参数,有效解决了视频播放进行粒子渲染时容易出现卡顿的问题。
如图6所示,本发明的实施例提供的电子设备,可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例提供的人数统计方法。
处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。
上述电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种粒子渲染方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种粒子渲染方法,其特征在于,包括:
检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长,所述单位粒子集为具有预设粒子数量的粒子的集合;
比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系;
根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长。
2.根据权利要求1所述的方法,其特征在于,所述检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长包括:
检测所述待渲染的视频中渲染所述预设粒子数量的粒子所需要的时长。
3.根据权利要求1所述的方法,其特征在于,所述根据比较结果调整所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长包括:
如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长;
如果所述实际渲染时长小于或等于所述参考渲染时长,保持粒子渲染参数不变。
4.根据权利要求3所述的方法,其特征在于,所述如果所述实际渲染时长大于所述参考渲染时长,减少所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长包括:
如果所述实际渲染时长与所述参考渲染时长的时长比值大于1,将所述待渲染的视频的当前帧及后续帧中每个视频帧对应的渲染粒子数和/或每个粒子的生存时长减小所述时长比值倍。
5.根据权利要求1所述的方法,其特征在于,所述比较所述实际渲染时长与所述单位粒子集对应的参考渲染时长的大小关系之前,所述方法还包括:
检测所述待渲染的视频是否以变倍速方式播放;
在所述待渲染的视频以变倍速方式播放的情况下,根据相应的倍速调整所述单位粒子集对应的参考渲染时长。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述检测待渲染的视频中渲染一个单位粒子集所需要的实际渲染时长之前,所述方法还包括:
根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量。
7.根据权利要求6所述的方法,其特征在于,所述根据所述待渲染的视频中所述参考渲染时长内渲染的最大粒子数量,确定所述单位粒子集对应的所述预设粒子数量包括:
根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量;
根据所述待渲染的视频中单位时间内的最大粒子发射数量及每个粒子的生存时长,获取在每个视频帧中的最大渲染粒子数;
根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量;
确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量。
8.根据权利要求7所述的方法,其特征在于,所述根据所述待渲染的视频的实际视频帧率与预设帧率的大小关系,确定所述待渲染的视频中单位时间内的最大粒子发射数量包括:
在所述实际视频帧率大于所述预设帧率的情况下,按照预设速率逐渐增大单位时间内的粒子发射数量,直至所述实际视频帧率小于所述预设帧率,其中,所述预设速率小于预设阈值;
确定所述实际视频帧率首次小于所述预设帧率时、单位时间内的粒子发射数量为所述单位时间内的最大粒子发射数量。
9.根据权利要求7所述的方法,其特征在于,所述根据每个视频帧中的最大渲染粒子数以及所述预设帧率,确定所述参考渲染时长内渲染的最大粒子数量包括:
将每个视频帧中渲染的最大粒子数与所述预设帧率的乘积再乘以所述参考渲染时长得到所述参考渲染时长内渲染的最大粒子数量。
10.根据权利要求7所述的方法,其特征在于,所述确定所述参考渲染时长内渲染的最大粒子数量为所述单位粒子集对应的所述预设粒子数量包括:
对至少两个所述参考渲染时长内渲染的最大粒子数量求平均值,得到所述单位粒子集对应的所述预设粒子数量。
CN201711402103.0A 2017-12-21 2017-12-21 一种粒子渲染方法、装置、电子设备及存储介质 Active CN107978014B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711402103.0A CN107978014B (zh) 2017-12-21 2017-12-21 一种粒子渲染方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711402103.0A CN107978014B (zh) 2017-12-21 2017-12-21 一种粒子渲染方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN107978014A true CN107978014A (zh) 2018-05-01
CN107978014B CN107978014B (zh) 2021-06-18

Family

ID=62007442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711402103.0A Active CN107978014B (zh) 2017-12-21 2017-12-21 一种粒子渲染方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN107978014B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665531A (zh) * 2018-05-08 2018-10-16 阿里巴巴集团控股有限公司 3d粒子模型的变换方法及装置
CN108810597A (zh) * 2018-06-25 2018-11-13 百度在线网络技术(北京)有限公司 视频特效处理方法及装置
CN109191550A (zh) * 2018-07-13 2019-01-11 乐蜜有限公司 一种粒子渲染方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722647A (zh) * 2012-05-30 2012-10-10 北京像素软件科技股份有限公司 一种基于运动路径生成条带粒子路径的方法及装置
WO2013001685A1 (ja) * 2011-06-29 2013-01-03 パナソニック株式会社 複合蛍光体および発光装置
CN103778656A (zh) * 2014-02-12 2014-05-07 腾讯科技(深圳)有限公司 一种图像渲染方法、装置及电子设备
CN104571993A (zh) * 2014-12-30 2015-04-29 北京像素软件科技股份有限公司 粒子系统的处理方法、显卡和移动应用平台
CN106210859A (zh) * 2016-08-11 2016-12-07 合网络技术(北京)有限公司 全景视频渲染方法和装置
US20170091983A1 (en) * 2015-09-30 2017-03-30 Visual Music Systems, Inc. Four-dimensional path-adaptive anchoring for immersive virtual visualization systems
CN106952329A (zh) * 2017-02-21 2017-07-14 长沙趣动文化科技有限公司 基于Unity3D与NGUI的粒子特效编辑方法及系统
CN107123077A (zh) * 2017-03-30 2017-09-01 腾讯科技(深圳)有限公司 对象的渲染方法和装置
CN107248188A (zh) * 2017-05-24 2017-10-13 上海交通大学 动态粒子集合的表面渲染方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013001685A1 (ja) * 2011-06-29 2013-01-03 パナソニック株式会社 複合蛍光体および発光装置
CN102722647A (zh) * 2012-05-30 2012-10-10 北京像素软件科技股份有限公司 一种基于运动路径生成条带粒子路径的方法及装置
CN103778656A (zh) * 2014-02-12 2014-05-07 腾讯科技(深圳)有限公司 一种图像渲染方法、装置及电子设备
CN104571993A (zh) * 2014-12-30 2015-04-29 北京像素软件科技股份有限公司 粒子系统的处理方法、显卡和移动应用平台
US20170091983A1 (en) * 2015-09-30 2017-03-30 Visual Music Systems, Inc. Four-dimensional path-adaptive anchoring for immersive virtual visualization systems
CN106210859A (zh) * 2016-08-11 2016-12-07 合网络技术(北京)有限公司 全景视频渲染方法和装置
CN106952329A (zh) * 2017-02-21 2017-07-14 长沙趣动文化科技有限公司 基于Unity3D与NGUI的粒子特效编辑方法及系统
CN107123077A (zh) * 2017-03-30 2017-09-01 腾讯科技(深圳)有限公司 对象的渲染方法和装置
CN107248188A (zh) * 2017-05-24 2017-10-13 上海交通大学 动态粒子集合的表面渲染方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
任琛琛: "基于粒子系统的雪景模拟", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665531A (zh) * 2018-05-08 2018-10-16 阿里巴巴集团控股有限公司 3d粒子模型的变换方法及装置
CN108810597A (zh) * 2018-06-25 2018-11-13 百度在线网络技术(北京)有限公司 视频特效处理方法及装置
CN108810597B (zh) * 2018-06-25 2021-08-17 百度在线网络技术(北京)有限公司 视频特效处理方法及装置
CN109191550A (zh) * 2018-07-13 2019-01-11 乐蜜有限公司 一种粒子渲染方法、装置、电子设备及存储介质
CN109191550B (zh) * 2018-07-13 2023-03-14 卓米私人有限公司 一种粒子渲染方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107978014B (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN110809214B (zh) 音频播放方法、音频播放装置及终端设备
CN106201430A (zh) 一种音量调节的方法及电子设备
CN104836783B (zh) 数据传输的方法、装置及系统
CN107978014A (zh) 一种粒子渲染方法、装置、电子设备及存储介质
US8320586B2 (en) System and method for reducing volume spike in an electronic device
CN108174031A (zh) 一种音量调节方法、终端设备及计算机可读存储介质
CN107423213A (zh) 一种文件描述符分配检测方法和装置
CN106384599B (zh) 一种破音识别的方法和装置
CN105677512A (zh) 一种数据处理方法、装置及电子设备
CN103530109A (zh) 同时确定多个参数变体的设置的系统、方法
CN109726821B (zh) 数据均衡方法、装置、计算机可读存储介质及电子设备
CN103929692B (zh) 一种音频信息处理方法及电子设备
CN105808376A (zh) 一种数据备份方法、装置及电子设备
CN105187692A (zh) 视频拍摄方法及装置
CN109346102B (zh) 音频开头爆音的检测方法、装置及存储介质
CN107734121A (zh) 音量控制方法、装置、存储介质及电子设备
CN107016990A (zh) 音频信号生成方法及装置
CN105099383B (zh) 一种信息处理方法和电子设备
CN105005612A (zh) 一种音乐文件的获取方法及移动终端
CN108777745A (zh) 一种音量调节方法及装置
CN111159038B (zh) 一种模拟cpu负载的方法及电子设备
CN110021289B (zh) 一种声音信号处理方法、装置及存储介质
CN107820122A (zh) 一种视频音量调节方法、存储介质及移动终端
CN107087231A (zh) 视频数据播放方法及装置
CN107018192A (zh) 音频播放系统的升级方法、装置及音频播放设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190621

Address after: Room 1101, Santai Commercial Building, 139 Connaught Road, Hong Kong, China

Applicant after: Hong Kong Lemi Co., Ltd.

Address before: Cayman Islands, Greater Cayman Island, Camana Bay, Western Asia, Seitus Chamber of Commerce, 2547 Mailbox

Applicant before: Happy honey Company Limited

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210601

Address after: 25, 5th floor, shuangjingfang office building, 3 frisha street, Singapore

Applicant after: Zhuomi Private Ltd.

Address before: Room 1101, Santai Commercial Building, 139 Connaught Road, Hong Kong, China

Applicant before: HONG KONG LIVE.ME Corp.,Ltd.

GR01 Patent grant
GR01 Patent grant