CN112750182A - 一种动效实现方法、装置和计算机可读存储介质 - Google Patents
一种动效实现方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112750182A CN112750182A CN201911035923.XA CN201911035923A CN112750182A CN 112750182 A CN112750182 A CN 112750182A CN 201911035923 A CN201911035923 A CN 201911035923A CN 112750182 A CN112750182 A CN 112750182A
- Authority
- CN
- China
- Prior art keywords
- dynamic effect
- image frame
- carrier
- information
- historical
- 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.)
- Pending
Links
- 230000000694 effects Effects 0.000 title claims abstract description 743
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000009877 rendering Methods 0.000 claims abstract description 143
- 239000000969 carrier Substances 0.000 claims description 48
- 230000001133 acceleration Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 5
- 239000002245 particle Substances 0.000 description 130
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000779 smoke Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种动效实现方法、装置和计算机可读存储介质;本发明实施例在获取待生成动效的图像帧集后,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,然后,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,然后,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集;可以简单快速实现动效。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种动效实现方法、装置和计算机可读存储介质。
背景技术
随着计算机图形学技术的发展,传统渲染技术难以实现的真实感的游戏动效,可以采用粒子动效来模拟,比如常见的火、爆炸、水流等动效。现有的粒子动效实现方法主要采用粒子动效插件(Particle.js)和三维场景创建库(ThreeJS)。
在对现有技术的研究和实践过程中,本发明的发明人发现对于粒子动效实现方法来说,采用粒子动效插件实现的粒子动效类型较少,二次开发的成本较高,而采用三维场景创建库来实现的话,粒子动效实现只用到了三维场景创建库其中一小部分功能,并且需要进行二次开发,使得维护不便,性能也受到影响,因此,导致动效实现速度慢且实现方式复杂。
发明内容
本发明实施例提供一种动效实现方法、装置和计算机可读存储介质。可以简单快速实现动效。
一种动效实现方法,包括:
获取待生成动效的图像帧集,所述图像帧集至少包括一个图像帧;
确定生成动效的动效类型和所述动效类型对应的描述信息;
根据所述动效类型和所述动效描述信息,生成图像帧的动效载体配置信息,所述动效载体配置信息包括动效载体属性信息和动效渲染信息;
基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体;
根据所述动效渲染信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧;
将所述当前图像帧更新为所述渲染后图像帧,得到具有动效的图像帧集。
相应的,本发明实施例提供一种文本标签生成装置,包括:
获取单元,用于获取待生成动效的图像帧集,所述图像帧集至少包括一个图像帧;
确定单元,用于确定生成动效的动效类型和所述动效类型对应的描述信息;
生成单元,用于根据所述动效类型和所述动效描述信息,生成图像帧的动效载体配置信息,所述动效载体配置信息包括动效载体属性信息和动效渲染信息;
更新单元,用于基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体;
渲染单元,用于根据所述动效渲染信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧;
得到单元,用于将所述当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集。
可选的,在一些实施例中,所述更新单元,具体可以用于获取所述历史图像帧中已生成的历史动效载体,在所述历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体,基于所述当前图像帧的动效载体属性信息,对所述历史图像帧中的第二历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体。
可选的,在一些实施例中,所述更新单元,具体可以用于在所述当前图像帧的动效载体配置信息中提取出待生成的目标动效载体集合,在所述待生成的目标动效载体集合中筛选出除了所述第二历史动效载体以外的第三动效载体,生成所述第三动效载体,并将所述第三动效载体和所述第二历史动效载体进行融合,得到所述当前图像帧对应的目标动效载体。
可选的,在一些实施例中,所述渲染单元,具体可以用于在所述动效渲染信息中提取所述目标动效载体的运动参数信息和渲染参数信息,根据所述运动参数信息,生成所述目标动效载体在所述当前图像帧中的位置信息,根据所述位置信息和所述渲染参数信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧。
可选的,在一些实施例中,所述渲染单元,具体可以用于基于所述渲染参数信息,获取所述目标动效载体在所述当前图像帧中的运动区域,根据所述目标动效载体的速度、加速度和运动时间,在所述运动区域中计算所述目标动效载体在所述当前图像帧中的位置信息。
可选的,在一些实施例中,所述渲染单元,具体可以用于将所述历史图像帧的内容进行清除,将清除内容后的所述历史图像帧作为画布,在所述画布上添加所述目标动效载体,得到待渲染画布,根据所述位置信息和所述渲染参数信息,在所述待渲染画布上对所述目标动效载体进行渲染,得到渲染后图像帧。
可选的,在一些实施例中,所述渲染单元,具体可以用于根据所述位置信息,将所述目标动效载体移动至所述待渲染画布上对应的位置;基于所述渲染参数信息,在所述待渲染画布上对移动后的目标动效载体进行渲染,得到渲染后图像帧。
可选的,在一些实施例中,所述生成单元,具体可以用于在预设基础动效信息中筛选所述动效类型对应的基础动效信息,根据所述基础动效信息和所述动效描述信息,生成所述图像帧集对应的初始动效配置信息,根据所述图像帧集的帧数,对所述初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息。
此外,本发明实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本发明实施例提供的动效实现方法。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种动效实现方法中的步骤。
本发明实施例获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,然后,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,然后,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集;由于该方案可以提供多种动效类型,根据动效类型和描述信息直接生成动效载体配置信息,根据动效载体配置信息对图像帧进行渲染即可实现动效,简单快捷复用性高,也不需要二次开发,因此,可以简单快速实现动效。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的动效实现方法的场景示意图;
图2是本发明实施例提供的动效实现方法的流程示意图;
图3是本发明实施例提供的动效实现页面的示意图;
图4是本发明实施例提供的生成动效的图像帧的静态示意图;
图5是本发明实施例提供的动效实现方法的另一流程示意图;
图6是本发明实施例提供的动效实现装置的结构示意图;
图7是本发明实施例提供的动效实现装置的生成单元的结构示意图;
图8是本发明实施例提供的动效实现装置的更新单元的结构示意图;
图9是本发明实施例提供的动效实现装置的渲染单元的结构示意图;
图10是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种动效实现方法、装置和计算机可读存储介质。其中,该动效实现装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
所谓动效,顾名思义可以为动态效果,比如,画面中一种闪烁的火苗。通常动效需要通过载体来实现,通过动效载体在画面中的不断变化来实现动效,因此,动效常见于视频或者动态画面中。本申请实施例提供的动效实现方法可以在用户提供的多个图像帧组成的视频或者动态画面中实现用户需要的动效。
例如,参见图1,以动效实现装置集成在电子设备中为例,获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从动效实现装置的角度进行描述,该动效实现装置具体可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备;其中,该终端可以包括平板电脑、笔记本电脑、以及个人计算(PC,Personal Computer)等设备。
一种动效实现方法,包括:获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集。
如图2所示,该动效实现方法的具体流程如下:
101、获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧。
其中,图像帧集可以为组成视频或者动态画面的图像帧的集合,该图像帧集合至少包括一个图像帧,该图像帧集合可以用户直接上传的图像帧,还可以为将用户上传的图像或者视频分割成一个或者多个图像帧。
例如,获取待生成动效的图像帧集的方式有多种,比如,可以直接获取用户上传或者发送的一个或多个图像帧,将上传或发送的图像帧组成图像帧集合,还可以将用户上传或发送的视频按照一定的时间间隔分割成多个图像帧,将图像帧组成图像帧集合,还可以将用户上传或发送的图像按照一定的时间间隔制作成一个或多个图像帧,比如,用户上传了一张背景图像,需要在该背景图像实现动效,可以将以背景图像为底版生成一个或者多个图像帧,这些图像帧的背景都是该背景图像,将这些图像帧组成图像帧集合。
102、确定生成动效的动效类型和动效类型对应的描述信息。
其中,动效类型可以包括火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹、重力等抽象视觉动效,还可以基于用户需要将两个或多个动效组合形成新的动效。
其中,描述信息可以包括动效起点位置、速度、生命周期和运动方向等描述信息,比如,以火为例,描述信息可以为在图像帧某个具体位置生成火苗,火苗上下左右摆动的速度和方向,还可以为火苗在图像帧或者动态画面中存在的时间等信息。
例如,可以根据用户在动效实现页面选择的动效类型和动效类型对应的描述信息,确定需要生成动效的类型和动效类型对应的描述信息。比如,该动效实现方法可以基于网页来实现,用户在动效实现页面选择或输入想要实现的动效类型,动效实现页面如图3所示,还可以在动效实现页面的描述信息中输入想要实现的动效的描述信息,接收用户通过动效实现页面输入或选择的动效类型及对应的描述信息。还可以对用户输入的动效实例的动效类型进行识别,比如,用户可以将在互联网或者数据库中获取的包含动效的图像或者视频上传至动效实现装置,对用户上传的包含未知或已知动效类型的图像或者视频实例进行识别,识别出图像或视频实例中包含的动效的类型和动效类型对应的描述信息,用户如果对图像或视频实例中的描述信息进行更换,还可以通过动效实现页面输入新的描述信息。当无法识别出用户上传的图像或视频示例的动效类型时,还可以生成提示信息,提示用户可以重新上传其他的图像或视频示例,当识别出图像或者视频示例的动效类型后,动效实现装置中没有对应的动效类型时,可以推荐与它相类似的动效类型,供用户重新选择。
103、根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息。
其中,动效载体配置信息可以为图像帧中的动效载体的属性信息和动效渲染信息,比如,以动效载体为粒子为例,动效载体配置信息可以为粒子在图像中的数量、类型、生命周期等属性信息,还可以为粒子在图像帧中需要进行渲染的相关信息,譬如,以动效为烟时,需要渲染的信息就可以为亮度变化程度、模糊度变化程度和粒子存在的密度等信息。
所谓动效载体,可以为在图像或者视频中展现动态效果的载体,比如,可以为粒子,粒子的形状可以方形、圆形或火苗形,还可以为用户上传的自定义图像,譬如,用户可以画一个房子的形状的图像,将该图像作为粒子。通过粒子的变化,才能实现图像或者视频中的动效。
例如,在预设基础动效信息中筛选动效类型对应的动效信息,根据基础动效信息和动效描述信息,生成图像帧集对应的初始动效载体配置信息,比如,根据动效类型选择对应的基础动效信息,该基础动效信息可以为动效类型对应的基础参数信息,譬如,可以为该动效类型对应的动效载体的类型范围和数量范围等基础信息,根据动效描述信息譬如动效起点和速度等信息,在一个范围内选择出图像帧集对应的初始动效载体配置信息,比如,整个图像帧集需要的动效载体数量、类型以及总体的渲染参数。对初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息,比如,图像帧集中有三帧图像帧,对初始动效载体信息进行分割,分割成三帧图像帧的动效载体配置信息,将分割后的动效载体配置信息与图像帧集中的各图像帧进行匹配,可以得到每个图像帧对应的动效载体配置信息,譬如,匹配出每一帧需要多个类型的动效载体,每一类型的动效载体需要的数量,还可以为每一个动效载体的速度和生命周期等信息。
104、基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体。
其中,动效载体属性信息可以为动效载体的数量、类型和生命周期等信息。
其中,历史动效载体可以为历史图像帧中已生成的动效载体,即为已经渲染的图像帧中生成的动效载体,比如,当前图像帧为第二帧,此时历史图像帧可以为第一帧,对第一帧经过渲染,得到渲染后的第一帧,此时渲染后的第一帧中包含已生成的动效载体,第二帧时基于渲染后的第一帧来更新的。
例如,可以通过浏览器提供的函数请求动画帧(requestAnimationFrame)在每一帧渲染完后通过JavaScript(一种直译式语言)调用回传函数(callback)对历史图像帧中的动效载体配置信息进行解析,得到历史图像帧中已生成的历史动效载体,还可以调用渲染信息对当前图像帧终端中的动效载体进行渲染。具体方式如下:
(1)获取历史图像帧中已生成的历史动效载体
例如,可以通过调用回调函数读取历史图像帧的动效载体配置信息,在历史图像帧的动效载体配置信息中提取历史动效载体属性信息,从而获取历史图像帧中已生成的历史动效载体,还可以直接从历史图像帧中识别已经生成的历史动效载体。
(2)在历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体
例如,对已生成的历史动效载体的生命周期进行检测,将检测出的已过期的第一历史动效载体从已生成的历史动效载体中去除出去,得到未过期的第二历史动效载体,比如,从历史动效载体属性信息中获取每个历史动效载体的预先设定的生命周期,比如,历史图像帧为第一图像帧,第一图像帧中历史动效载体A预先设定的生命周期为2帧,假设当前图像帧为第二帧,则此时历史动效载体A未过期,假设当前图像帧为第三帧时,则此时历史动效载体A已过期。如果第一图像帧中历史动效载体A预先设定的生命周期为4秒,每一帧预设的时间间隔为2秒,假设当前图像帧为第二帧时,则此时历史动效载体A未过期,假设当前图像帧为第三帧时,则此时历史动效载体A已过期。参考上述检测方法,对历史画面帧中所有的历史动效载体的生命周期进行检测,将检测出的已过期的第一历史动效载体从已生成的历史动效载体中去除出去,得到未过期的第二历史动效载体。
(3)基于当前图像帧的动效载体属性信息,对历史图像帧中的第二历史动效载体进行更新,得到当前图像帧对应的目标动效载体
其中,目标动效载体可以为对当前图像帧进行渲染需要的动效载体,比如,对当前图像帧进行渲染需要动效载体A、B和C,则此时动效载体A、B和C为目标动效载体。
例如,在当前图像帧的动效载体属性信息中提取出待生成的目标动效载体集合,在待生成的目标动效载体集合中筛选除了第二历史动效载体以外的第三动效载体,比如,待生成的目标动效载体集合包括A类型动效载体10个,B类型动效载体5个,C类型动效载体6个,而第二历史动效载体包括A类型动效载体7个,B类型动效载体5个,则此时对当前图像帧进行渲染需要的未生成的动效载体就可以为3个A类型动效载体和6个C类型动效载体,将这3个A类型动效载体和6个C类型动效载体作为第三生成动效载体。生成第三动效载体,将生成的第三动效载体和第二历史动效载体进行融合,融合的方式有多种,可以将两种动效载体进行组合,也可以将这种动效动效载体组成一个集合,最后将组合后的动效载体作为当前图像帧对应的目标动效载体。
其中,在此需要强调的是,待生成的目标动效载体集合可以理解为存储在当前图像帧的动效载体配置信息中一种虚拟的清单,该清单为当前图像帧中需要存在或生成的动效载体的类型和数量等,譬如,当前图像帧中需要3个A类型动效载体,5个B类型动效载体,此时可以将3个A类型动效载体,5个B类型动效载体作为一个集合,根据该集合(清单)去判断在当前图像帧中还需要生成的第三动效载体。
还需强调的是,当前图像帧对应的目标动效载体已经生成了并存储在本地数据库了,在需要对当前图像帧进行渲染时,将生成的目标动效载体调用出来,并按照相对应的渲染参数进行渲染。
105、根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧。
其中,渲染后图像帧可以为生成动效需要的图像帧,该渲染后图像帧中已经包含渲染后的动效载体,将图像帧集中的图像全部渲染后即可生成动效。
(1)在动效渲染信息中提取目标动效载体的运动参数信息和渲染参数信息
其中,运动参数信息可以为动效载体的速度变化范围、位置随机范围、加速度随机范围,随机生成位置、随机生成加速度、生命周期和自定义动效载体的地址等信息。
渲染参数信息可以为将动效载体的透明变换、伸缩变换、摩擦力和/或重力转化为具体的数值配置,比如,透明变换中亮度、模糊度的变换范围或者值等信息。
例如,可以通过requestAnimationFrame调用回调函数在动效渲染信息中提取当前画面帧中的目标动效载体的运动参数信息和渲染参数信息,具体可以如下:
(2)根据运动参数信息,生成目标动效载体在当前图像帧中的位置信息
其中,位置信息可以为目标动效载体在当前图像帧中的初始位置,也可以为最终的位置,还可以为固定位置或者随机位置范围。
例如,基于渲染参数信息,获取目标动效载体在当前图像帧中的运动区域,根据运动参数信息中的目标载体的速度、加速度和运动时间,在运动区域中计算目标动效载体在当前图像帧中的位置信息,比如,以当前图像帧的右下顶点为坐标原点,运动区域为右上方坐标范围为100mm×100mm,在获取初始运动位置后,根据速度、加速度和运动时间,可以计算出在该范围目标动效载体的位置信息。
可选的,在针对目标动效载体的位置信息的计算过程还可以通过在浏览器中内置一些C++(一种计算机编程语言)的计算模块,采用WASM进行扩展以计算位置信息,可以提高计算性能,也可以实现复杂的动效。
(3)根据位置信息和渲染参数信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧
例如,将历史画面帧的内容进行清除,去除掉历史画面帧中已生成的历史动效载体,将清除内容后的历史画面帧作为画布,在画布上添加目标动效载体,得到待渲染画布,比如,将预先生成的目标动效载体添加至画布的区域,但此时还未在画布上对目标动效载体进行渲染,添加的时候只是将目标动效载体存储在画布的区域,并未将目标动效载体绘制在画布上目标动效载体对应的位置。根据位置信息,将目标动效载体移动至待渲染画布上对应的位置,比如,位置信息可以包括定点位置,还可以包括范围位置,以定点位置为例,主要从某一固定位置移动至另一个固定位置,也可以理解为将动效载体从一个固定发射至另一固定位置,还可以从某一个固定位置发射至某一个范围。至于移动过程,可以理解为固定位置的动效载体可以在配置信息中将生成动目标动效载体的初始位置设定为固定位置,范围位置的动效载体可以在配置信息中将生成目标动效载体的初始位置设定为随机范围内的值即可。
基于渲染参数信息,在待渲染画布上对移动后的目标动效载体进行渲染,得到渲染后图像帧,比如,在目标动效载体的属性信息中为动效载体本身提供了初始状态,譬如,初始速度值、加速度值、初始位置和/或初始亮度等信息,渲染参数信息主要在目标动效载体的生命周期提供持续的变化,渲染的过程也可以理解为调用函数将目标动效载体及其生命周期的持续性变化绘制在待渲染画布中,以抽象类的动效为例,采用apply函数,将动效载体的渲染信息当做传入参数,直接修改当前帧中的目标动效载体的属性,具体可以如下:
以重力效果为例,如下:
根据渲染参数信息和修改后目标动效载体的属性后,对当前图像帧中的目标动效载体进行渲染,渲染方式可以为通过调用目标动效载体对应的绘制函数(draw)对当前图像帧中的每一个目标动效载体进行绘制,比如,实现雨的动效时,可以绘制完一个或多个目标动效载体组成的雨滴后,对雨滴的模糊程度和亮度进行绘制,绘制的过程也可以理解为渲染的过程。渲染的方式还可以通过3D绘图协议(Web Graphics Library,WebGL)对目标动效载体进行渲染,使用WebGL可以实现更酷炫的动效,有更高的表现能力。
106、将当前图像帧更新为渲染后图像帧,得到具有动效的图像帧集。
例如,将图像帧集中的当前图像帧更新为渲染后图像帧,更新完成之后,开始下一个图像帧的更新,比如,以图像帧集中包含三帧图像帧为例,当前图像帧为图像帧集中的第二图像帧,则在第二图像帧更新成渲染后图像帧之后,对第三图像帧继续进行更新,更新过程和第二图像帧更新过程相同,基于第三图像帧的动效载体属性信息,对第二图像帧中已生产的历史动效载体进行更新,得到第三图像帧对应的目标动效载体,再根据第三图像帧的动效渲染信息,在第二图像帧中渲染目标动效载体,得到渲染后图像帧,将第三图像帧更新为该渲染后图像帧,此时完成了图像帧集中所有图像帧的更新,得到具有动效的图像帧集。当图像帧集中超过三帧图像帧时,对第三图像帧以后的图像帧,按照第二图像帧和第三图像帧的更新方式进行更新,直到将图像帧集中的所有图像帧更新完成,得到具有动效的图像帧集。采用网页播放该图像帧集中的所有图像帧,即可在该图像帧集中显示动效,如图4所示。
在此需要说明的是,当图像帧集中只有一帧图像帧时或者当前图像帧为第一图像帧时,直接按照图像帧对应的动效配置信息中的目标动效载体属性信息和动效渲染信息直接在Canvas生成的画布上直接生成目标动效载体,并对目标动效载体按照渲染参数信息进行渲染,即可得到生成动效的图像帧。
由以上可知,本发明实施例在获取待生成动效的图像帧集后,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,然后,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,然后,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集;由于该方案可以提供多种动效类型,根据动效类型和描述信息直接生成动效载体配置信息,根据动效载体配置信息对图像帧进行渲染即可实现动效,简单快捷复用性高,也不需要二次开发,因此,可以简单快速实现动效。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该动效实现装置具体集成在电子设备,动效载体为粒子为例进行说明。
如图5所示,一种动效实现方法,具体流程如下:
201、电子设备获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧。
例如,电子设备可以直接获取用户上传或者发送的一个或多个图像帧,将上传或发送的图像帧组成图像帧集合,还可以将用户上传或发送的视频按照一定的时间间隔分割成多个图像帧,将图像帧组成图像帧集合,还可以将用户上传或发送的图像按照一定的时间间隔制作成一个或多个图像帧,比如,用户上传了一张背景图像,需要在该背景图像实现动效,可以将以背景图像为底版生成一个或者多个图像帧,这些图像帧的背景都是该背景图像,将这些图像帧组成图像帧集合。
202、电子设备确定生成动效的动效类型和动效类型对应的描述信息。
例如,电子设备可以根据用户在动效实现页面选择的动效类型和动效类型对应的描述信息,确定需要生成动效的类型和动效类型对应的描述信息。比如,该动效实现方法可以基于网页来实现,用户在动效实现页面选择或输入想要实现的动效类型,动效实现页面如图3所示,还可以在动效实现页面的描述信息中输入想要实现的动效的描述信息,接收用户通过动效实现页面输入或选择的动效类型及对应的描述信息。还可以对用户输入的动效实例的动效类型进行识别,比如,用户可以将在互联网或者数据库中获取的包含动效的图像或者视频上传至动效实现装置,对用户上传的包含未知或已知动效类型的图像或者视频实例进行识别,识别出图像或视频实例中包含的动效的类型和动效类型对应的描述信息,用户如果对图像或视频实例中的描述信息进行更换,还可以通过动效实现页面输入新的描述信息。当无法识别出用户上传的图像或视频示例的动效类型时,还可以生成提示信息,提示用户可以重新上传其他的图像或视频示例,当识别出图像或者视频示例的动效类型后,动效实现装置中没有对应的动效类型时,可以推荐与它相类似的动效类型,供用户重新选择。
203、电子设备根据动效类型和动效描述信息,生成图像帧的粒子配置信息,粒子配置信息包括粒子属性信息和动效渲染信息。
例如,电子设备在预设基础动效信息中筛选动效类型对应的动效信息,根据基础动效信息和动效描述信息,生成图像帧集对应的初始粒子配置信息,比如,根据动效类型选择对应的基础动效信息,该基础动效信息可以为动效类型对应的基础参数信息,譬如,可以为该动效类型对应的粒子的类型范围和数量范围等基础信息,根据动效描述信息譬如动效起点和速度等信息,在一个范围内选择出图像帧集对应的初始粒子配置信息,比如,整个图像帧集需要的粒子数量、类型以及总体的渲染参数。对初始动效配置信息进行分割,得到各个图像帧对应的粒子配置信息,比如,图像帧集中有三帧图像帧,对初始粒子信息进行分割,分割成三帧图像帧的粒子配置信息,将分割后的粒子配置信息与图像帧集中的各图像帧进行匹配,可以得到每个图像帧对应的粒子配置信息,譬如,匹配出每一帧需要多个类型的粒子,每一类型的粒子需要的数量,还可以为每一个粒子的速度和生命周期等信息。
204、电子设备获取历史图像帧中已生成的历史粒子。
例如,可以通过浏览器提供的函数请求动画帧(requestAnimationFrame)在每一帧渲染完后通过JavaScript(一种直译式语言)调用回传函数(callback)对历史图像帧中的粒子配置信息进行解析,得到历史图像帧中已生成的历史粒子,具体方式如下:
通过调用回调函数读取历史图像帧的粒子配置信息,在历史图像帧的粒子配置信息中提取历史粒子属性信息,从而获取历史图像帧中已生成的历史粒子,还可以直接从历史图像帧中识别已经生成的历史粒子。
205、电子设备在历史粒子中去除已过期的第一历史粒子,得到未过期的第二历史动粒子。
例如,电子设备从历史粒子属性信息中获取每个历史粒子的预先设定的生命周期,比如,历史图像帧为第一图像帧,第一图像帧中历史粒子A预先设定的生命周期为2帧,假设当前图像帧为第二帧,则此时历史粒子A未过期,假设当前图像帧为第三帧时,则此时历史粒子A已过期。如果第一图像帧中历史粒子A预先设定的生命周期为4秒,每一帧预设的时间间隔为2秒,假设当前图像帧为第二帧时,则此时历史粒子A未过期,假设当前图像帧为第三帧时,则此时历史粒子A已过期。参考上述检测方法,对历史画面帧中所有的历史粒子的生命周期进行检测,将检测出的已过期的第一历史粒子从已生成的历史粒子中去除出去,得到未过期的第二历史粒子。
206、电子设备基于当前图像帧的粒子属性信息,对历史图像帧中的第二历史粒子进行更新,得到当前图像帧对应的目标粒子。
例如,电子设备例如,在当前图像帧的粒子属性信息中提取出待生成的目标粒子集合,在待生成的目标粒子集合中筛选除了第二历史粒子以外的第三粒子,比如,待生成的目标粒子集合包括A类型粒子10个,B类型粒子5个,C类型粒子6个,而第二历史粒子包括A类型粒子7个,B类型粒子5个,则此时对当前图像帧进行渲染需要的未生成的粒子就可以为3个A类型粒子和6个C类型粒子,将这3个A类型粒子和6个C类型粒子作为第三生成粒子。生成第三粒子,将生成的第三粒子和第二历史粒子进行融合,融合的方式有多种,可以将两种粒子进行组合,也可以将这种动效粒子组成一个集合,最后将组合后的粒子作为当前图像帧对应的目标粒子。
207、电子设备根据动效渲染信息,在历史图像帧中渲染目标粒子,得到渲染后图像帧。
(1)电子设备在动效渲染信息中提取目标粒子的运动参数信息和渲染参数信息
例如,电子设备可以通过requestAnimationFrame调用回调函数在动效渲染信息中提取当前画面帧中的目标粒子的运动参数信息和渲染参数信息,具体可以如下:
(2)电子设备根据运动参数信息,生成目标粒子在当前图像帧中的位置信息
例如,电子设备基于渲染参数信息,获取目标动效载体在当前图像帧中的运动区域,根据运动参数信息中的目标载体的速度、加速度和运动时间,在运动区域中计算目标动效载体在当前图像帧中的位置信息,比如,以当前图像帧的右下顶点为坐标原点,运动区域为右上方坐标范围为100mm×100mm,在获取初始运动位置后,根据速度、加速度和运动时间,可以计算出在该范围目标动效载体的位置信息。
可选的,在针对目标动效载体的位置信息的计算过程还可以通过在浏览器中内置一些C++(一种计算机编程语言)的计算模块,采用WASM进行扩展以计算位置信息,可以提高计算性能,也可以实现复杂的动效。
(3)电子设备根据位置信息和渲染参数信息,在历史图像帧中渲染目标粒子,得到渲染后图像帧
例如,电子设备将历史画面帧的内容进行清除,去除掉历史画面帧中已生成的历史粒子,将清除内容后的历史画面帧作为画布,在画布上添加目标粒子,得到待渲染画布,比如,将预先生成的目标粒子添加至画布的区域,但此时还未在画布上对目标粒子进行渲染,添加的时候只是将目标粒子存储在画布的区域,并未将目标粒子绘制在画布上目标粒子对应的位置。根据位置信息,将目标粒子移动至待渲染画布上对应的位置,比如,位置信息可以包括定点位置,还可以包括范围位置,以定点位置为例,主要从某一固定位置移动至另一个固定位置,也可以理解为将粒子从一个固定发射至另一固定位置,还可以从某一个固定位置发射至某一个范围。至于移动过程,可以理解为固定位置的粒子可以在配置信息中将生成动目标粒子的初始位置设定为固定位置,范围位置的粒子可以在配置信息中将生成目标粒子的初始位置设定为随机范围内的值即可。
基于渲染参数信息,在待渲染画布上对移动后的目标粒子进行渲染,得到渲染后图像帧,比如,在目标粒子的属性信息中为粒子本身提供了初始状态,譬如,初始速度值、加速度值、初始位置和/或初始亮度等信息,渲染参数信息主要在目标粒子的生命周期提供持续的变化,渲染的过程也可以理解为调用函数将目标粒子及其生命周期的持续性变化绘制在待渲染画布中,以抽象类的动效为例,采用apply函数,将粒子的渲染信息当做传入参数,直接修改当前帧中的目标粒子的属性,具体可以如下:
以重力效果为例,如下:
根据渲染参数信息和修改后目标粒子的属性后,对当前图像帧中的目标粒子进行渲染,渲染方式可以为通过调用目标粒子对应的绘制函数(draw)对当前图像帧中的每一个目标粒子进行绘制,比如,实现雨的动效时,可以绘制完一个或多个目标粒子组成的雨滴后,对雨滴的模糊程度和亮度进行绘制,绘制的过程也可以理解为渲染的过程。渲染的方式还可以通过3D绘图协议(Web Graphics Library,WebGL)对目标粒子进行渲染,使用WebGL可以实现更酷炫的动效,有更高的表现能力。
208、电子设备将当前图像帧更新为渲染后图像帧,得到具有动效的图像帧集。
例如,电子设备将图像帧集中的当前图像帧更新为渲染后图像帧,更新完成之后,开始下一个图像帧的更新,比如,以图像帧集中包含三帧图像帧为例,当前图像帧为图像帧集中的第二图像帧,则在第二图像帧更新成渲染后图像帧之后,对第三图像帧继续进行更新,更新过程和第二图像帧更新过程相同,基于第三图像帧的粒子属性信息,对第二图像帧中已生产的历史粒子进行更新,得到第三图像帧对应的目标粒子,再根据第三图像帧的动效渲染信息,在第二图像帧中渲染目标粒子,得到渲染后图像帧,将第三图像帧更新为该渲染后图像帧,此时完成了图像帧集中所有图像帧的更新,得到具有动效的图像帧集。当图像帧集中超过三帧图像帧时,对第三图像帧以后的图像帧,按照第二图像帧和第三图像帧的更新方式进行更新,直到将图像帧集中的所有图像帧更新完成,得到具有动效的图像帧集。采用网页播放该图像帧集中的所有图像帧,即可在该图像帧集中显示动效,如图4所示。
由以上可知,本发明实施例的电子设备在获取待生成动效的图像帧集后,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,然后,根据动效类型和动效描述信息,生成图像帧的粒子配置信息,粒子配置信息包括粒子属性信息和动效渲染信息,然后,基于当前图像帧的粒子属性信息,对历史图像帧中已生成的历史粒子进行更新,得到当前图像帧对应的目标粒子,根据动效渲染信息,在历史图像帧中渲染目标粒子,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集;由于该方案可以提供多种动效类型,根据动效类型和描述信息直接生成粒子配置信息,根据粒子配置信息对图像帧进行渲染即可实现动效,简单快捷复用性高,也不需要二次开发,因此,可以简单快速实现动效。
为了更好地实施以上方法,本发明实施例还提供一种动效实现装置,该动效实现装置可以集成在电子设备,比如服务器或终端等设备中,该终端可以包括平板电脑、笔记本电脑和/或个人计算机等。
例如,如图6所示,该动效实现装置可以包括获取单元301、确定单元302、生成单元303、更新单元304、渲染单元305和得到单元306,如下:
(1)获取单元301;
获取单元301,用于获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧。
例如,获取单元301,具体可以用于直接获取用户上传或者发送的一个或多个图像帧,将上传或发送的图像帧组成图像帧集合,还可以将用户上传或发送的视频按照一定的时间间隔分割成多个图像帧,将图像帧组成图像帧集合,还可以将用户上传或发送的图像按照一定的时间间隔制作成一个或多个图像帧,将这些图像帧组成图像帧集合。
(2)确定单元302;
确定单元302,用于确定生成动效的动效类型和动效类型对应的描述信息。
例如,确定单元302,具体可以用于根据用户在动效实现页面选择的动效类型和动效类型对应的描述信息,确定需要生成动效的类型和动效类型对应的描述信息。
(3)生成单元303;
生成单元303,具体用于根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,该动效载体配置信息包括动效载体属性信息和动效渲染信息。
其中,生成单元303还可以包括筛选子单元3031、第一生成子单元3032和分割单元3033,如图7所示,具体如下:
筛选子单元3031,用于在预设基础动效信息中筛选动效类型对应的基础动效信息;
第一生成子单元3032,用于根据基础动效信息和所述动效描述信息,生成图像帧集对应的初始动效配置信息;
分割单元3033,用于根据图像帧集的帧数,对初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息。
例如,筛选子单元3031在预设基础动效信息中筛选动效类型对应的基础动效信息,第一生成子单元3032根据基础动效信息和所述动效描述信息,生成图像帧集对应的初始动效配置信息,分割子单元3033根据图像帧集的帧数,对初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息。
(4)更新单元304;
更新单元304,用于基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体。
其中,更新单元304还可以包括获取子单元3041、去除子单元3042和更新子单元3043,如图8所示,具体如下:
获取子单元3041,用于获取历史图像帧中已生成的历史动效载体;
去除子单元3042,用于在历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体;
更新子单元3043,用于基于当前图像帧的动效载体属性信息,对历史图像帧中的第二历史动效载体进行更新,得到当前图像帧对应的目标动效载体。
例如,获取子单元3041获取历史图像帧中已生成的历史动效载体,去除子单元3042在历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体,更新子单元3043基于当前图像帧的动效载体属性信息,对历史图像帧中第二历史动效载体进行更新,得到当前图像帧对应的目标动效载体。
(5)渲染单元305;
渲染单元305,用于根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧。
其中,渲染单元305还可以包括提取子单元3051、第二生成子单元3052和渲染子单元3053,如图9所示,具体如下:
提取子单元3051,用于在动效渲染信息中提取目标动效载体的运动参数信息和渲染参数信息;
第二生成子单元3052,用于根据运动参数信息,生成目标动效载体在当前图像帧中的位置信息;
渲染子单元3053,用于根据位置信息和渲染参数信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧。
例如,提取子单元3051在动效渲染信息中提取目标动效载体的运动参数信息和渲染参数信息,第二生成子单元3052根据运动参数信息,生成目标动效载体在当前图像帧中的位置信息,渲染子单元3053根据位置信息和渲染参数信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧。
(6)得到单元306;
得到单元306,用于将当前图像帧更新为渲染后图像帧,得到具有动效的图像帧集。
例如,将图像帧集中的当前图像帧更新为渲染后图像帧,更新完成之后,开始下一个图像帧的更新,直到将图像帧集中的所有图像帧更新完成,得到具有动效的图像帧集。采用网页播放该图像帧集中的所有图像帧,即可在该图像帧集中显示动效。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由以上可知,本实施例在获取单元301获取待生成动效的图像帧集后,该图像帧集至少包括一个图像帧,确定单元302确定生成动效的动效类型和动效类型对应的描述信息,然后,生成单元303根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,然后,更新单元304基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,渲染单元305根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,得到单元306将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集;由于该方案可以提供多种动效类型,根据动效类型和描述信息直接生成动效载体配置信息,根据动效载体配置信息对图像帧进行渲染即可实现动效,简单快捷复用性高,也不需要二次开发,因此,可以简单快速实现动效。
本发明实施例还提供一种电子设备,如图10所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图10中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集。
例如,直接获取用户上传或者发送的一个或多个图像帧,将上传或发送的图像帧组成图像帧集合,还可以将用户上传或发送的视频按照一定的时间间隔分割成多个图像帧,将图像帧组成图像帧集合,还可以将用户上传或发送的图像按照一定的时间间隔制作成一个或多个图像帧,将这些图像帧组成图像帧集合,根据用户在动效实现页面选择的动效类型和动效类型对应的描述信息,确定需要生成动效的类型和动效类型对应的描述信息,在预设基础动效信息中筛选动效类型对应的基础动效信息,根据基础动效信息和动效描述信息,生成图像帧集对应的初始动效载体配置信息,根据图像帧集的帧数,对初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息。获取历史图像帧中已生成的历史动效载体,在历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体,基于当前图像帧的动效载体属性信息,对历史图像帧中的第二历史动效载体进行更新,得到当前图像帧对应的目标动效载体。在动效渲染信息中提取目标动效载体的运动参数信息和渲染参数信息,根据运动参数信息,生成目标动效载体在当前图像帧中的位置信息,根据位置信息和渲染参数信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧。将图像帧集中的当前图像帧更新为渲染后图像帧,更新完成之后,开始下一个图像帧的更新,直到将图像帧集中的所有图像帧更新完成,得到具有动效的图像帧集。采用网页播放该图像帧集中的所有图像帧,即可在该图像帧集中显示动效。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由以上可知,本发明实施例在获取待生成动效的图像帧集后,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,然后,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,然后,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集;由于该方案可以提供多种动效类型,根据动效类型和描述信息直接生成动效载体配置信息,根据动效载体配置信息对图像帧进行渲染即可实现动效,简单快捷复用性高,也不需要二次开发,因此,可以简单快速实现动效。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种动效实现方法中的步骤。例如,该指令可以执行如下步骤:
获取待生成动效的图像帧集,该图像帧集至少包括一个图像帧,确定生成动效的动效类型和动效类型对应的描述信息,根据动效类型和动效描述信息,生成图像帧的动效载体配置信息,动效载体配置信息包括动效载体属性信息和动效渲染信息,基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到当前图像帧对应的目标动效载体,根据动效渲染信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧,将当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集。
例如,直接获取用户上传或者发送的一个或多个图像帧,将上传或发送的图像帧组成图像帧集合,还可以将用户上传或发送的视频按照一定的时间间隔分割成多个图像帧,将图像帧组成图像帧集合,还可以将用户上传或发送的图像按照一定的时间间隔制作成一个或多个图像帧,将这些图像帧组成图像帧集合,根据用户在动效实现页面选择的动效类型和动效类型对应的描述信息,确定需要生成动效的类型和动效类型对应的描述信息,在预设基础动效信息中筛选动效类型对应的基础动效信息,根据基础动效信息和动效描述信息,生成图像帧集对应的初始动效载体配置信息,根据图像帧集的帧数,对初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息。获取历史图像帧中已生成的历史动效载体,在历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体,基于当前图像帧的动效载体属性信息,对历史图像帧中的第二历史动效载体进行更新,得到当前图像帧对应的目标动效载体。在动效渲染信息中提取目标动效载体的运动参数信息和渲染参数信息,根据运动参数信息,生成目标动效载体在当前图像帧中的位置信息,根据位置信息和渲染参数信息,在历史图像帧中渲染目标动效载体,得到渲染后图像帧。将图像帧集中的当前图像帧更新为渲染后图像帧,更新完成之后,开始下一个图像帧的更新,直到将图像帧集中的所有图像帧更新完成,得到具有动效的图像帧集。采用网页播放该图像帧集中的所有图像帧,即可在该图像帧集中显示动效。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种动效实现方法中的步骤,因此,可以实现本发明实施例所提供的任一种动效实现方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种动效实现方法、装置和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种动效实现方法,其特征在于,包括:
获取待生成动效的图像帧集,所述图像帧集至少包括一个图像帧;
确定生成动效的动效类型和所述动效类型对应的描述信息;
根据所述动效类型和所述动效描述信息,生成图像帧的动效载体配置信息,所述动效载体配置信息包括动效载体属性信息和动效渲染信息;
基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体;
根据所述动效渲染信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧;
将所述当前图像帧更新为所述渲染后图像帧,得到具有动效的图像帧集。
2.根据权利要求1所述的动效实现方法,其特征在于,所述基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体,包括:
获取所述历史图像帧中已生成的历史动效载体;
在所述历史动效载体中去除已过期的第一历史动效载体,得到未过期的第二历史动效载体;
基于所述当前图像帧的动效载体属性信息,对所述历史图像帧中的第二历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体。
3.根据权利要求2所述的动效实现方法,其特征在于,所述基于所述当前图像帧的动效载体属性信息,对所述历史图像帧中的第二历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体,包括:
在所述当前图像帧的动效载体配置信息中提取出待生成的目标动效载体集合;
在所述待生成的目标动效载体集合中筛选出除了所述第二历史动效载体以外的第三动效载体;
生成所述第三动效载体,并将所述第三动效载体和所述第二历史动效载体进行融合,得到所述当前图像帧对应的目标动效载体。
4.根据权利要求1所述的动效实现方法,其特征在于,所述根据所述动效渲染信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧,包括:
在所述动效渲染信息中提取所述目标动效载体的运动参数信息和渲染参数信息;
根据所述运动参数信息,生成所述目标动效载体在所述当前图像帧中的位置信息;
根据所述位置信息和所述渲染参数信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧。
5.根据权利要求4所述的动效实现方法,其特征在于,所述运动参数包括目标动效载体的速度、加速度和运动时间,根据所述运动参数信息,生成所述目标动效载体在所述当前图像帧中的位置信息,包括:
基于所述渲染参数信息,获取所述目标动效载体在所述当前图像帧中的运动区域;
根据所述目标动效载体的速度、加速度和运动时间,在所述运动区域中计算所述目标动效载体在所述当前图像帧中的位置信息。
6.根据权利要求4所述的动效实现方法,其特征在于,所述根据所述位置信息和所述渲染参数信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧,包括:
将所述历史图像帧的内容进行清除,将清除内容后的所述历史图像帧作为画布;
在所述画布上添加所述目标动效载体,得到待渲染画布;
根据所述位置信息和所述渲染参数信息,在所述待渲染画布上对所述目标动效载体进行渲染,得到渲染后图像帧。
7.根据权利要求6所述的动效实现方法,其特征在于,所述根据所述位置信息和所述渲染参数信息,在所述待渲染画布上对所述目标动效载体进行渲染,得到渲染后图像帧,包括:
根据所述位置信息,将所述目标动效载体移动至所述待渲染画布上对应的位置;
基于所述渲染参数信息,在所述待渲染画布上对移动后的目标动效载体进行渲染,得到渲染后图像帧。
8.根据权利要求1所述的动效实现方法,其特征在于,所述根据所述动效类型和所述动效描述信息,生成图像帧的动效载体配置信息,包括:
在预设基础动效信息中筛选所述动效类型对应的基础动效信息;
根据所述基础动效信息和所述动效描述信息,生成所述图像帧集对应的初始动效配置信息;
根据所述图像帧集的帧数,对所述初始动效配置信息进行分割,得到各个图像帧对应的动效载体配置信息。
9.一种动效实现装置,其特征在于,包括:
获取单元,用于获取待生成动效的图像帧集,所述图像帧集至少包括一个图像帧;
确定单元,用于确定生成动效的动效类型和所述动效类型对应的描述信息;
生成单元,用于根据所述动效类型和所述动效描述信息,生成图像帧的动效载体配置信息,所述动效载体配置信息包括动效载体属性信息和动效渲染信息;
更新单元,用于基于当前图像帧的动效载体属性信息,对历史图像帧中已生成的历史动效载体进行更新,得到所述当前图像帧对应的目标动效载体;
渲染单元,用于根据所述动效渲染信息,在所述历史图像帧中渲染所述目标动效载体,得到渲染后图像帧;
得到单元,用于将所述当前图像帧更新为所渲染后图像帧,得到具有动效的图像帧集。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的动效实现方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035923.XA CN112750182A (zh) | 2019-10-29 | 2019-10-29 | 一种动效实现方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035923.XA CN112750182A (zh) | 2019-10-29 | 2019-10-29 | 一种动效实现方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112750182A true CN112750182A (zh) | 2021-05-04 |
Family
ID=75640682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911035923.XA Pending CN112750182A (zh) | 2019-10-29 | 2019-10-29 | 一种动效实现方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112750182A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113476837A (zh) * | 2021-07-01 | 2021-10-08 | 网易(杭州)网络有限公司 | 画质展示方法、装置、设备和存储介质 |
CN114664331A (zh) * | 2022-03-29 | 2022-06-24 | 深圳万兴软件有限公司 | 一种周期可调的变速特效渲染方法、系统及其相关组件 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106385591A (zh) * | 2016-10-17 | 2017-02-08 | 腾讯科技(上海)有限公司 | 视频处理方法及视频处理装置 |
CN107392835A (zh) * | 2016-05-16 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 一种粒子系统的处理方法及装置 |
CN107592475A (zh) * | 2017-09-20 | 2018-01-16 | 北京奇虎科技有限公司 | 视频数据处理方法及装置、计算设备 |
CN107743263A (zh) * | 2017-09-20 | 2018-02-27 | 北京奇虎科技有限公司 | 视频数据实时处理方法及装置、计算设备 |
CN109598777A (zh) * | 2018-12-07 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN110136230A (zh) * | 2019-03-29 | 2019-08-16 | 北京达佳互联信息技术有限公司 | 动画显示方法、装置、电子设备及存储介质 |
-
2019
- 2019-10-29 CN CN201911035923.XA patent/CN112750182A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392835A (zh) * | 2016-05-16 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 一种粒子系统的处理方法及装置 |
CN106385591A (zh) * | 2016-10-17 | 2017-02-08 | 腾讯科技(上海)有限公司 | 视频处理方法及视频处理装置 |
US20190132642A1 (en) * | 2016-10-17 | 2019-05-02 | Tencent Technology (Shenzhen) Company Limited | Video processing method, video processing device, and storage medium |
CN107592475A (zh) * | 2017-09-20 | 2018-01-16 | 北京奇虎科技有限公司 | 视频数据处理方法及装置、计算设备 |
CN107743263A (zh) * | 2017-09-20 | 2018-02-27 | 北京奇虎科技有限公司 | 视频数据实时处理方法及装置、计算设备 |
CN109598777A (zh) * | 2018-12-07 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN110136230A (zh) * | 2019-03-29 | 2019-08-16 | 北京达佳互联信息技术有限公司 | 动画显示方法、装置、电子设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113476837A (zh) * | 2021-07-01 | 2021-10-08 | 网易(杭州)网络有限公司 | 画质展示方法、装置、设备和存储介质 |
CN113476837B (zh) * | 2021-07-01 | 2024-06-04 | 网易(杭州)网络有限公司 | 画质展示方法、装置、设备和存储介质 |
CN114664331A (zh) * | 2022-03-29 | 2022-06-24 | 深圳万兴软件有限公司 | 一种周期可调的变速特效渲染方法、系统及其相关组件 |
CN114664331B (zh) * | 2022-03-29 | 2023-08-11 | 深圳万兴软件有限公司 | 一种周期可调的变速特效渲染方法、系统及其相关组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020098531A1 (zh) | 对象的加载方法和装置、存储介质、电子装置 | |
CN111643899A (zh) | 一种虚拟物品显示方法、装置、电子设备和存储介质 | |
Kharroubi et al. | Classification and integration of massive 3d points clouds in a virtual reality (VR) environment | |
US9588651B1 (en) | Multiple virtual environments | |
CN106056660A (zh) | 一种移动终端模拟粒子系统的方法 | |
US9754398B1 (en) | Animation curve reduction for mobile application user interface objects | |
CN109191550B (zh) | 一种粒子渲染方法、装置、电子设备及存储介质 | |
CN111142967B (zh) | 一种增强现实显示的方法、装置、电子设备和存储介质 | |
CN110168614A (zh) | 用于生成混合现实中的动态虚拟内容的设备和方法 | |
US20080018792A1 (en) | Systems and Methods for Interactive Surround Visual Field | |
CN112750182A (zh) | 一种动效实现方法、装置和计算机可读存储介质 | |
JP2008090498A (ja) | 画像処理方法、画像処理装置 | |
CN103544727A (zh) | 一种基于预测分支的场景渲染优化方法、系统和移动终端 | |
CN113610953A (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN112070901A (zh) | 一种园林的ar场景构建方法、装置、存储介质及终端 | |
CN111815736A (zh) | 飞线构建及显示方法和装置,计算机存储介质和电子设备 | |
CN116233532A (zh) | 视频播放方法、装置、计算机设备及计算机可读存储介质 | |
CN116843802A (zh) | 虚拟形象的处理方法及相关产品 | |
CN113694518A (zh) | 一种冰冻效果的处理方法、装置、存储介质及电子设备 | |
US10289289B2 (en) | Techniques for authoring view points, view paths, and view surfaces for 3D models | |
Hu et al. | Development based on Unity3D virtual campus roaming system | |
CN113018865A (zh) | 攀爬线生成方法、装置、计算机设备及存储介质 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN111921192B (zh) | 虚拟对象的控制方法和装置 | |
CN112587915A (zh) | 光照效果呈现方法、装置、存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40044201 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |