CN112270732A - 粒子动画的生成方法、处理装置、电子设备和存储介质 - Google Patents
粒子动画的生成方法、处理装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112270732A CN112270732A CN202011285953.9A CN202011285953A CN112270732A CN 112270732 A CN112270732 A CN 112270732A CN 202011285953 A CN202011285953 A CN 202011285953A CN 112270732 A CN112270732 A CN 112270732A
- Authority
- CN
- China
- Prior art keywords
- target
- particle
- dimensional model
- animation
- generating
- 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
Links
- 239000002245 particle Substances 0.000 title claims abstract description 269
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 title abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 5
- 230000005484 gravity Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 13
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000001788 irregular Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 3
- 239000012530 fluid Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000004984 smart glass Substances 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种粒子动画的生成方法、处理装置、电子设备和计算机可读存储介质。粒子动画的生成方法包括步骤:根据上一帧目标粒子在三维模型表面的历史信息,确定目标粒子当前帧的预估位置,三维模型根据符号距离场构建得到,当预估位置不是三维模型的表面坐标点时,根据符号距离场和预估位置,将目标粒子映射到三维模型表面,得到目标粒子的目标位置,在当前帧于目标位置显示目标粒子,生成粒子动画。如此,可以以较小的计算量,实现对各种动态的效果模拟的粒子动画,减低了内存资源的消耗,提升用户体验。
Description
技术领域
本申请涉及图像处理技术,特别涉及一种粒子动画的生成方法、粒子动画的生成装置、电子设备和计算机可读存储介质。
背景技术
通过控制粒子在三维模型表面运动,可生成各种动态视觉效果的粒子动画,例如,通过让球体表面的粒子流体运动而使得球体表面呈现火焰燃烧效果。相关技术中,要生成各种动态效果的粒子动画,需要先确定粒子在三维模型表面运动过程中的位置,再对粒子在三维模型表面的运动位置进行渲染实现。
而对于粒子在三维模型表面的位置的确定,需要由粒子初始运动位置与终止运动位置这两个位置点形成射线,并由射线与三维模型计算出相交点,从而得到粒子在三维模型表面的位置。然而,由于三维模型通常为不规则模型,计算过程复杂,对于处理引擎的资源消耗较高。
发明内容
有鉴于此,本申请旨在至少在一定程度上解决相关技术中的问题之一。为此,本申请的目的在于提供一种粒子动画的生成方法、处理装置、电子设备和计算机可读存储介质。
本申请实施方式的粒子动画的生成方法,包括:
根据上一帧目标粒子在三维模型表面的历史信息,确定所述目标粒子在当前帧的预估位置,所述三维模型根据符号距离场构建得到;
当所述预估位置不是所述三维模型的表面坐标点时,根据所述符号距离场和所述预估位置,将所述目标粒子映射到所述三维模型表面,得到所述目标粒子的目标位置;和
在当前帧于所述目标位置显示所述目标粒子,生成粒子动画。
本申请实施方式的所述粒子动画的生成装置,包括:
确定模块:所述构建模块用于根据上一帧目标粒子在三维模型表面的历史信息,确定所述目标粒子当前帧的预估位置,所述三维模型根据符号距离场构建得到;
计算模块,所述生成模块用于当所述预估位置不是所述三维模型的表面坐标点时,根据所述符号距离场和所述预估位置,将所述目标粒子映射到所述三维模型表面,得到所述目标粒子的目标位置;和
控制模块,所述控制模块用于在当前帧于所述目标位置显示所述目标粒子,生成粒子动画。
本申请实施方式的电子设备,包括一个或者多个处理器、存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行粒子动画的生成方法的指令。粒子动画的生成方法包括:根据上一帧目标粒子在三维模型表面的历史信息,确定所述目标粒子当前帧的预估位置,所述三维模型根据符号距离场构建得到;当所述预估位置不是所述三维模型的表面坐标点时,根据所述符号距离场和所述预估位置,将所述目标粒子映射到所述三维模型表面,得到所述目标粒子的目标位置,在当前帧于所述目标位置显示所述目标粒子,生成粒子动画。
本申请实施方式的计算机可读存储介质,包括计算机程序,当所述计算机计算机程序被一个或多个处理器执行时,使得所述处理器执行所述粒子动画的生成方法。粒子动画的生成方法包括:根据上一帧目标粒子在三维模型表面的历史信息,确定所述目标粒子当前帧的预估位置,所述三维模型根据符号距离场构建得到;当所述预估位置不是所述三维模型的表面坐标点时,根据所述符号距离场和所述预估位置,将所述目标粒子映射到所述三维模型表面,得到所述目标粒子的目标位置,在当前帧于所述目标位置显示所述目标粒子,生成粒子动画。
本申请实施方式的粒子动画的生成方法、粒子动画的生成装置、电子设备和计算机可读存储介质中,通过上一帧在三维模型表面上目标粒子的历史信息,确定当前帧的目标粒子预估位置,并在预估位置不是三维模型的表面坐标点时,根据构建三维模型的符号距离场和预估位置计算得到目标粒子映射到三维模型表面的目标位置,从而在当前帧可控制目标粒子在目标位置显示。如此,可以以较小的计算量,实现对各种动态的效果模拟的粒子动画,减少了电子设备的资源消耗,提升了用户体验。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是相关技术中计算引擎对粒子三维模型表面运动计算示意图。
图2是本申请某些实施方式的粒子动画的生成方法的一个流程示意图。
图3是本申请某些实施方式的粒子动画的生成装置的模块示意图。
图4是本申请某些实施方式的电子设备的模块示意图。
图5是本申请某些实施方式的处理器和计算机可读存储介质的连接示意图。
图6本申请某些实施方式的粒子动画的生成方法一个流程示意图。
图7是本申请某些实施方式的粒子动画的生成方法的一个流程示意图。
图8是本申请某些实施方式的粒子动画的生成方法的一个流程示意图。
图9是本申请某些实施方式的粒子动画的生成方法的一个场景示意图。
图10是本申请某些实施方式的粒子动画的生成方法的又一个场景示意图。
主要元件符号说明:
粒子动画的生成装置10、构建模块11、初始化模块13、确认模块12、计算模块14、控制模块16、电子设备1、处理器20、存储器30、程序32、可读存储介质40、计算机程序42。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体地限定。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通信;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
下文的公开提供了许多不同的实施方式或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
粒子附着于三维模型表面运动,可模拟出各种动态视觉效果,例如,将大量的粒子附着于球体表面运动,可呈现出火焰燃烧动画的模拟效果。相关技术中,要使得粒子模拟出各种动态效果,需要先确定粒子在三维模型表面运动过程中的每一帧的位置,再对每一帧运动位置进行渲染实现。
对于粒子在三维模型表面运动过程中的每一帧的位置的确定,需要先确定粒子在上一帧的位置和当前帧粒子的预计运动位置,并由这两个位置进行归一化处理形成射线,再由计算引擎根据射线与三维模型求出射线与三维模型表面的相交点,从而得到当前帧粒子在三维模型表面的位置,进而,可得到粒子在三维模型表面运动过程中每一帧的位置。
例如,请结合图1,在一些示例中,在三维空间中,粒子的上一帧的位置为A(4,3),当前帧粒子的预计运动位置为B(8,6),则AB为射线。处理引擎可通过GPU中的着色器获取到三维模型的所有面数据,再由A点起始沿着AB射线方向每次增加一个固定步长,并每次增加固定步长后判断固定步长的两端是否在某个面的两端,若某个固定步长的两端在某个面的两端,即可获取到一个大概的位置为投当前帧的位置。
然而,由于三维模型通常为不规则模型,计算处理过程复杂,对于处理引擎的资源消耗较高。
有鉴于此,请参阅图2,本申请实施方式提供一种粒子动画的生成方法,粒子动画的生成方法包括步骤:
S12:根据上一帧目标粒子在三维模型表面的历史信息,确定目标粒子当前帧的预估位置,三维模型根据符号距离场构建得到;
S14:当预估位置不是三维模型的表面坐标点时,根据符号距离场和预估位置,将目标粒子映射到三维模型表面,得到目标粒子的目标位置;和
S16:在当前帧于目标位置显示目标粒子,生成粒子动画。
请进一步参图3,本申请实施方式提供了一种粒子动画的生成装置10。粒子动画的生成装置10包括确认模块12、计算模块14、控制模块16。
步骤S12可以由确认模块12实现,步骤S14可以由计算模块14实现,步骤S16可以由控制模块16实现。
或者说,确认模块12可以用于根据上一帧目标粒子在三维模型表面的历史信息,确定目标粒子当前帧的预估位置,三维模型根据符号距离场构建得到。
计算模块14可以用于当预估位置不是三维模型的表面坐标点时,根据符号距离场和预估位置,将目标粒子映射到三维模型表面,得到目标粒子的目标位置。
控制模块16可以用于在当前帧于目标位置显示目标粒子,生成粒子动画。
请参阅图4,本申请提供了一种电子设备1包括一个或者多个处理器20、存储器30;和一个或多个程序32,其中一个或多个程序32被存储在存储器30中,并且被一个或多个处理器20执行,程序32被处理器20执行粒子动画的生成方法的指令。或者说,处理器可以用于根据上一帧目标粒子在三维模型表面的历史信息,确定目标粒子当前帧的预估位置,三维模型根据符号距离场构建得到。处理器20还可以用于当预估位置不是三维模型的表面坐标点时,根据符号距离场和预估位置,将目标粒子映射到三维模型表面,得到目标粒子的目标位置,以及在当前帧于目标位置显示目标粒子,生成粒子动画。
请结合图5,本申请提供了一种包含计算机程序42的非易失性计算机可读存储介质40,当计算机程序42被一个或多个处理器20执行时,使得处理器20执行粒子动画的生成方法。
这些实施方式的粒子动画的生成方法、粒子动画的生成装置10、电子设备1和存储介质40中,通过上一帧在三维模型表面上目标粒子的历史信息,确定当前帧的目标粒子预估位置,并在预估位置不在三维模型的表面时,根据构建三维模型的符号距离场和预估位置计算得到目标粒子映射到三维模型表面的目标位置,从而在当前帧可控制目标粒子在目标位置显示。如此,实现了以较小的计算量,生成一个动态的粒子动画,从而减小了计算引擎的资源消耗,提升了用户体验。
在一些实施方式中,电子设备1可以是手机、平板、电脑、智能穿戴设备(智能手表、智能手环、智能头盔、智能眼镜等)、虚拟现实设备或头显设备。
本实施方式可以以电子设备1是以手机为例进行说明,也即是说,粒子动画的生成方法和粒子动画的生成装置10应用于但不限于手机。粒子动画的生成装置10可以是预安装于手机的硬件或软件,并在手机上启动运行时可以执行粒子动画的生成方法。例如,粒子动画的生成装置10可以是手机的底层软件代码段或者说是操作系统的一部分。
在一些实施方式中,粒子动画的生成装置10可以是电子设备1的一部分。或者说,电子设备1包括粒子动画的生成装置10。
在一些实施方式中,粒子动画的生成装置10可以是一定方式组装以具有前述功能的分立元件、或者是以集成电路形式存在具有前述功能的芯片、又或者是在计算机上运行时使得计算机具有前述功能的计算机软件代码段。
在一些实施方式中,作为硬件,粒子动画的生成装置10可以是独立或者作为额外增加的外围元件加装到计算机或者计算机系统。粒子动画的生成装置10也可以集成到计算机或者计算机系统,例如,粒子动画的生成装置10是电子设备1的一部分时,粒子动画的生成装置10可以集成到处理器20上。
在一些粒子动画的生成装置10是电子设备1的一部分部分的实施方式中,作为软件,粒子动画的生成装置10对应的代码段可以存储于存储器30上通过处理器20执行实现前述功能。或者说粒子动画的生成装置10包括前述的一个或多个程序32,又或者说前述的一个或多个程序32包括粒子动画的生成装置10。
在一些实施方式中,计算机可读存储介质40可以是内置在电子设备1的存储介质,例如可以是存储器30,也可以是能够插拔地插接在电子设备1的存储介质,例如SD卡等。
本领域的技术人员可以理解,符号距离场(Signed Distance Field,SDF)是通过距离场函数的实现来实现空间分布函数,从而创造空间几何体造型的一种标准数学模型。符号距离场可实现球体、圆柱体、锥形体、长方体等标准三维模型的构建。
符号距离场可包括多个,多个符号距离场与多种标准三维模型一一对应,也即是,每个符号距离场可构建对应的标准三维模型,例如,球体符号距离场可构建球体模型,长方体符号距离场可构建长方体模型,圆柱体符号距离场可构建圆柱体模型。用户可选择相应的符号距离场来生成对应的标准三维模型。
另外,每个符号距离场定义有输入参数,例如,球体符号距离场的输入参数为半径或直径,长方体符号距离场的输入参数为长宽高、圆柱体符号距离场的输入参数为半径和高。
需要说明的是,历史信息是指当前帧之前的所有帧的目标粒子的相关信息,例如,第七帧为当前帧,则在第七帧之前的所有帧中目标粒子的相关信息都称为历史信息。若当前帧为初始帧,则在当前帧时,目标粒子的历史信息不存在。历史信息可包括但不限于历史运动信息、历史位置信息以及历史自身参数信息等信息。可以理解地,上一帧目标粒子在三维模型表面的历史信息则是指在当前帧的前一帧中,目标粒子位于三维模型表面时,与目标粒子所有的相关信息。
目标粒子可包括多个,多个目标粒子可组成粒子系统,通过控制粒子系统中的目标粒子运动实现模拟多种动态的视觉动画。例如,实现对三维火焰动画的动态模拟。
具体而言,预估位置是指在无三维模型干扰下只根据物理学运动规律所计算得到的位置,预估位置可能不在三维模型表面。可以理解,根据物理学运动规律,目标粒子在运动过中若无外界干扰,目标粒子任意时刻(每一帧)的位置可根据前一时刻(前一帧)的运动状态和位置所计算得到。因此,处理器20可获取到上一帧在三维模型表面上目标粒子的历史信息,从而根据历史信息计算出当前帧的目标粒子预估位置。
进一步地,由于预估位置只与上一帧的历史信息相关,预估位置并非在三维模型的表面坐标点上,因此,为了使得目标粒子在每一帧都位于三维模型的表面坐标点上,需要对预估位置进行判断。可以理解地,三维模型由符号距离场构建而成,也即是,根据符号距离场的相关信息能够获取到三维模型表面所有位置坐标信息,因此,可根据符号距离场对预估位置进行判断,确定预估位置是否在在三维模型表面。
例如,目标粒子在由球体符号距离场构建的球体上运动,并且,球体符号距离场的输入参数为3,且球形为(0,0,0)。若目标粒子的预估位置坐标为(4,0,0),则根据球体符号距离场的输入参数可判定目标粒子的预估位置不在球体的表面坐标点上。若目标粒子的预估位置坐标为(3,0,0),则可判定目标粒子的预估位置在球体的表面坐标点上。
若计算得到目标粒子的预估位置不是三维模型的表面坐标点时,需要将根据预估位置映射至目标粒子在三维模型表面,从而保证,目标粒子每一帧都在三维模型表面上显示。。因此,可通过符号距离场和预估位置进行计算,得到目标粒子映射到三维模型表面的目标位置。从而,在当前帧时可控制目标粒子在目标位置显示。
如此,保证了目标粒子每一帧三维模型表面上,从而能够控制目标粒子在每一帧都能在三维模型表面对应位置显示。实现了以较小的计算量,生成一个动态的粒子动画,从而减少了电子设备100的资源消耗。若本申请实施的粒子动画的生成方法应用在手机等移动终端上时,可以提升移动终端续航,提升了用户体验。
另外,在另外某些实施方式中,若计算得到的目标粒子的预估位置在三维模型的表面坐标点时,则无需根据符号距离场和预估位置将目标粒子映射到三维模型表面,直接以预估位置作为当前帧目标粒子的目标位置。从而在当前帧时,在预估位置上显示目标粒子,生成粒子动画。
请结合图6,在某些实施方式中,在步骤12之前粒子动画的生成方法还包括步骤:
S11:根据符号距离场构建三维模型;
S13:在三维模型表面随机生成目标粒子并初始化目标粒子的初始运动状态。
请进一步参阅图2,在某些实施方式中,粒子动画的生成装置10还包括构建模块11和初始化模块13。S11可以由构建模块11实现,S13可以由初始化模块13实现。
或者说,构建模块11用于根据符号距离场构建三维模型。
初始化模块13用于在三维模型表面随机生成目标粒子并初始化目标粒子的初始运动状态。
在某些实施方式中,处理器20可用于根据符号距离场构建三维模型。处理器20还可用于在三维模型表面随机生成目标粒子并初始化目标粒子的初始运动状态。
需要说明的是,电子设备还可包括有着色器(Shader),着色器可包括有符号距离场,着色器可通过符号距离场根据输入参数而构建三维模型。
着色器是一种以开放图形库(Open Graphics Llbrary,OpenGL)为基础开发的可编辑程序,用于替代固定渲染管线以实现图像渲染。着色器主要有顶点着色器(VertexShader)和像素着色器(Pixel Shader)两种,其中Vertex Shader主要负责顶点的几何关系等的运算,Pixel Shader主要负责片源颜色等的计算。
开放图形库是一种通用共享的开放式三维图形标准,它主要用于定义二维三维图形的,使用它的图形软件生产厂商再不用为各种不同的机型开发设计不同的软件,只要操作系统使用了OpenGL适配器就可以达到相同的效果,开放图形库定义了一系列命令和函数,每个命令对应一个特殊效果。
可以理解地,由于符号距离场只能生成例如球体、圆柱体等的标准三维模型,也即是规则三维模型,而通常在实际应用中,三维模型可能多为一些不规则模型,例如,人体模型。因此,在本申请中,三维模型可由一个或多个由符号距离场生成的标准三维模型组合而构成,也即是,若三维模型为规则三维模型,则可直接由符号距离场生成,若是三维模型为不规则三维模型,则可由多个由符号距离场生成的标准三维模型组合而形成。
进一步地,在通过符号距离场生成三维模型后,处理器20可在三维模型表面随机生成多个目标粒子,目标粒子的数量和分布可根据实际所需要模拟的动态效果生成。进而,对每个目标粒子进行初始化,如此,目标粒子在三维模型表面上初始位置的初始运动状态,从而,后续可根据目标粒子的初始运动状态计算出下一帧的预估位置。
请结合图7,在某些实施方式中,历史信息包括历史位置信息,步骤S12还包括步骤:
S122:获取上一帧目标粒子在三维模型表面的历史位置信息并确定目标粒子的运动状态。
S124:对目标粒子施加模拟力场;
S126:根据帧持续时间、模拟力场、历史位置信息和运动状态确定目标粒子当前帧的预估位置。
在某些实施方式中,步骤S122、S124、S126可以由确定模块12实现。
或者说,确定模块12可以用于获取上一帧目标粒子在三维模型表面的历史位置信息并确定目标粒子的运动状态以及对目标粒子施加模拟力场,确定模块12还可以用于根据帧持续时间、模拟力场、历史位置信息和运动状态确定目标粒子当前帧的预估位置。
在某些实施方式中,处理器20可以用于获取上一帧目标粒子在三维模型表面的历史位置信息并确定目标粒子的运动状态以及对目标粒子施加模拟力场,处理器20还可以用于根据帧持续时间、模拟力场、历史位置信息和运动状态确定目标粒子当前帧的预估位置。
需要说明的是,力场是一种矢量场,其中与每一点相关的矢量均可用一个力来度量,是物理学中一个很重要的基本观念。常见的力场有引力场、磁力场(简称磁场)、电力场(简称电场)等。因此,可以理解地,模拟力场则是在图像渲染过程中对现实自然存在的力场进行模拟所形成的作用力。
历史位置信息是指在当前帧之前的所有帧中目标粒子在三维模型的表面坐标点。帧持续时间是指相邻两帧所间隔的时长。
可以理解地,若无模拟力场的作用,目标粒子的运动状态保存不变,目标粒子会一直静止或者一直沿某一方向持续运动,因此,要改变运动状态,需要对目标粒子施加模拟力场,从而使得目标粒子的运动状态发生变化。
目标粒子的运动状态可包括目标粒子的运动速度和运动方向。也即是,若对目标粒子施加模拟力场,模拟力场会改变目标粒子的运动速度和运动方向。其中,每次确定上一帧的目标粒子的运动状态时,目标粒子运动状态可以是随机的,也可以是根据历史运动状态生成的。
具体地,在确定上一帧的目标粒子的运动状态后,若添加了模拟力场,则根据模拟力场以及上一帧目标粒子的运动状态计算出施加力场后目标粒子的速度大小以及速度方向,并根据速度大小、方向、帧持续的时间以及上一帧的位置信息进行计算,得到目标粒子在当前帧的预估位置。
请参阅图8,在某些实施方式中,模拟力场包括向心力,步骤S126包括子步骤:
S1262:确定目标粒子在三维模型表面运动的运动中心;和
S1264:根据运动中心向目标粒子施加向心力以调节目标粒子的速度大小和方向。
在某些实施方式中,步骤S1262和步骤S1264可以由确定模块12实现,或者说,确定模块12可以用于确定目标粒子在三维模型表面运动的运动中心。确定模块12还可以用于根据运动中心向目标粒子施加向心力以调节目标粒子的速度大小和方向。
在某些实施方式中,处理器20可以用于确定目标粒子在三维模型表面运动的运动中心。处理器20还可以用于根据运动中心向目标粒子施加向心力以调节目标粒子的速度大小和方向。
具体地,处理器20可根据目标粒子在三维模型表面上的位置确定位置对应的标准三维模型。进而,由于标准三维模型由符号距离场生成,因此,可根据标准三维模型确定对应的符号距离场,如此,符号距离场确定目标粒子在三维模型表面的运动中心。
进一步地,处理器20可向目标粒子施加方向朝向运动中心的向心力。可以理解,由于目标粒子在三维模型表面运动,而通常三维模型为不规则模型,可向目标粒子添加向心力,从而改变目标粒子的速度大小和方向。如此,使得目标粒子可在三维模型表面运动。
例如,请结合图9,在一些示例中,目标粒子在球体表面运动。其中,目标粒子的上一帧在三维模型表面的历史位置为p0,目标粒子的速度方向为V0。向目标粒子添加向心力为F1,目标粒子的在添加向心力后的速度方向为V1,目标粒子的预估位置为p1,目标粒子当前帧在三维模型表面的位置p2。其中,预估位置p1可由历史位置p0、向心力F2以及帧持续时间计算得到。
在某些实施方式中,模拟力场还可包括风力、重力、涡旋力和卷曲噪声(CurlNoise)等。也即是,模拟力场的种类不设限制,可以理解,由于目标粒子需要在三维模型表面实现流体效果以模拟出各种动态效果,而不同的流体效果可由施加不同的模拟力场,因此,可根据实际需求而添加向心力、风力、重力、涡旋力和卷曲噪声中的一种或多种。
请结合图10,例如,在一些场景中,目标粒子要实现在人体模型表面运动,以生成人体表面的动态火焰动画,则在处理器20向目标粒子添加向心力后,分别向不同的目标粒子添加不同的卷曲噪声以控制目标粒子运动,从而生成人体模型表面呈现动态火焰的动画。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种粒子动画的生成方法,其特征在于,所述粒子动画的生成方法包括:
根据上一帧目标粒子在三维模型表面的历史信息,确定所述目标粒子在当前帧的预估位置,所述三维模型根据符号距离场构建得到;
当所述预估位置不是所述三维模型的表面坐标点时,根据所述符号距离场和所述预估位置,将所述目标粒子映射到所述三维模型表面,得到所述目标粒子的目标位置;和
在当前帧于所述目标位置显示所述目标粒子,生成粒子动画。
2.根据权利要求1所述的粒子动画的生成方法,其特征在于,所述粒子动画的生成方法还包括:
当所述预估位置是所述三维模型的表面坐标点时,以所述预估位置为所述目标粒子的所述目标位置;和
在当前帧于所述目标位置显示所述目标粒子,生成粒子动画。
3.根据权利要求1所述的粒子动画的生成方法,其特征在于,所述粒子动画的生成方法还包括:
根据符号距离场构建所述三维模型;
在所述三维模型表面随机生成所述目标粒子并初始化所述目标粒子的初始运动状态。
4.根据权利要求1所述的粒子动画的生成方法,其特征在于,所述历史信息包括历史位置信息,所述根据上一帧目标粒子在三维模型表面的历史信息确定所述目标粒子当前帧的预估位置包括:
获取上一帧所述目标粒子在三维模型表面的历史位置信息,并确定所述目标粒子的运动状态;
对所述目标粒子施加模拟力场;
根据帧持续时间、所述模拟力场、所述历史位置信息和所述运动状态确定所述目标粒子当前帧的预估位置。
5.根据权利要求4所述的粒子动画的生成方法,其特征在于,所述运动状态包括所述目标粒子的速度大小和方向,所述根据帧持续时间、所述模拟力场、所述历史位置信息和所述运动状态确定所述目标粒子当前帧的预估位置还包括:
根据所述模拟力场调节所述目标粒子的速度大小和方向;和
以所述历史位置信息为起点,根据调节后的所述目标粒子的速度大小和方向以及所述帧持续时间计算所述预估位置。
6.根据权利要求5所述的粒子动画的生成方法,其特征在于,所述模拟力场包括向心力,所述根据所述模拟力场调节所述目标粒子的速度大小和方向还包括:
确定所述目标粒子在所述三维模型表面运动的运动中心;和
根据所述运动中心向所述目标粒子施加向心力以调节所述目标粒子的速度大小和方向。
7.根据权利要求6所述的粒子动画的生成方法,其特征在于,所述向心力的大小根据所述目标粒子的运动状态确定。
8.根据权利要求6所述的粒子动画的生成方法,其特征在于,所述模拟力场还包括风力、重力、涡旋力和卷曲噪声中的一种或多种。
9.一种粒子动画的生成装置,其特征在于,所述粒子动画的生成装置包括:
确定模块:所述构建模块用于根据上一帧目标粒子在三维模型表面的历史信息确定所述目标粒子当前帧的预估位置,所述三维模型根据符号距离场构建得到;
计算模块,所述生成模块用于根据所述符号距离场和所述预估位置计算得到所述目标粒子映射到所述三维模型表面的目标位置;和
控制模块,所述控制模块用于控制当前帧在所述目标位置显示所述目标粒子。
10.一种电子设备,其特征在于,包括一个或者多个处理器、存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1-8任意一项所述的粒子动画的生成方法的指令。
11.一种包含计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1-8中任一项所述粒子动画的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011285953.9A CN112270732B (zh) | 2020-11-17 | 2020-11-17 | 粒子动画的生成方法、处理装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011285953.9A CN112270732B (zh) | 2020-11-17 | 2020-11-17 | 粒子动画的生成方法、处理装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112270732A true CN112270732A (zh) | 2021-01-26 |
CN112270732B CN112270732B (zh) | 2024-06-25 |
Family
ID=74340033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011285953.9A Active CN112270732B (zh) | 2020-11-17 | 2020-11-17 | 粒子动画的生成方法、处理装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112270732B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114912303A (zh) * | 2021-02-10 | 2022-08-16 | 北京字跳网络技术有限公司 | 三维流体的展示方法、装置、电子设备及存储介质 |
WO2023071579A1 (zh) * | 2021-10-25 | 2023-05-04 | 腾讯科技(深圳)有限公司 | 物理特效渲染方法、装置、计算机设备和存储介质 |
WO2023121569A3 (zh) * | 2021-12-22 | 2023-08-24 | 脸萌有限公司 | 粒子特效渲染方法、装置、设备及存储介质 |
WO2024099206A1 (zh) * | 2022-11-11 | 2024-05-16 | 华为技术有限公司 | 一种图形界面处理方法以及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092754A (ja) * | 2003-09-19 | 2005-04-07 | Konami Computer Entertainment Japan Inc | 画像処理装置、画像処理方法 |
CN103942839A (zh) * | 2014-05-13 | 2014-07-23 | 福州大学 | 树冠火蔓延三维可视化方法 |
CN105975273A (zh) * | 2016-05-04 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 粒子动画的实现及优化工具的净化过程展示方法和系统 |
CN106293565A (zh) * | 2015-06-05 | 2017-01-04 | 福建星网视易信息系统有限公司 | 一种基于粒子运动模型的模拟显示方法及装置 |
CN107392835A (zh) * | 2016-05-16 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 一种粒子系统的处理方法及装置 |
CN108830926A (zh) * | 2018-06-13 | 2018-11-16 | 中国石油大学(华东) | 三维虚拟地球软件中空间动态粒子模型建立与可视化方法 |
CN110008387A (zh) * | 2019-04-16 | 2019-07-12 | 成都四方伟业软件股份有限公司 | 流场可视化实现方法、装置及电子设备 |
CN110502305A (zh) * | 2019-08-26 | 2019-11-26 | 沈阳美行科技有限公司 | 一种动态界面的实现方法、装置及相关设备 |
CN110992456A (zh) * | 2019-11-19 | 2020-04-10 | 浙江大学 | 一种基于位置动力学的雪崩模拟方法 |
-
2020
- 2020-11-17 CN CN202011285953.9A patent/CN112270732B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092754A (ja) * | 2003-09-19 | 2005-04-07 | Konami Computer Entertainment Japan Inc | 画像処理装置、画像処理方法 |
CN103942839A (zh) * | 2014-05-13 | 2014-07-23 | 福州大学 | 树冠火蔓延三维可视化方法 |
CN106293565A (zh) * | 2015-06-05 | 2017-01-04 | 福建星网视易信息系统有限公司 | 一种基于粒子运动模型的模拟显示方法及装置 |
CN105975273A (zh) * | 2016-05-04 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 粒子动画的实现及优化工具的净化过程展示方法和系统 |
CN107392835A (zh) * | 2016-05-16 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 一种粒子系统的处理方法及装置 |
CN108830926A (zh) * | 2018-06-13 | 2018-11-16 | 中国石油大学(华东) | 三维虚拟地球软件中空间动态粒子模型建立与可视化方法 |
CN110008387A (zh) * | 2019-04-16 | 2019-07-12 | 成都四方伟业软件股份有限公司 | 流场可视化实现方法、装置及电子设备 |
CN110502305A (zh) * | 2019-08-26 | 2019-11-26 | 沈阳美行科技有限公司 | 一种动态界面的实现方法、装置及相关设备 |
CN110992456A (zh) * | 2019-11-19 | 2020-04-10 | 浙江大学 | 一种基于位置动力学的雪崩模拟方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114912303A (zh) * | 2021-02-10 | 2022-08-16 | 北京字跳网络技术有限公司 | 三维流体的展示方法、装置、电子设备及存储介质 |
WO2023071579A1 (zh) * | 2021-10-25 | 2023-05-04 | 腾讯科技(深圳)有限公司 | 物理特效渲染方法、装置、计算机设备和存储介质 |
WO2023121569A3 (zh) * | 2021-12-22 | 2023-08-24 | 脸萌有限公司 | 粒子特效渲染方法、装置、设备及存储介质 |
WO2024099206A1 (zh) * | 2022-11-11 | 2024-05-16 | 华为技术有限公司 | 一种图形界面处理方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112270732B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270732B (zh) | 粒子动画的生成方法、处理装置、电子设备和存储介质 | |
US11270506B2 (en) | Foveated geometry tessellation | |
US20220326844A1 (en) | Displaying a three dimensional user interface | |
US8154544B1 (en) | User specified contact deformations for computer graphics | |
US8610714B2 (en) | Systems, methods, and computer-readable media for manipulating graphical objects | |
EP3091739A1 (en) | Apparatus and method performing rendering on viewpoint disparity image | |
CN108245890B (zh) | 控制虚拟场景中物体运动的方法和装置 | |
US20210366184A1 (en) | Method and system for filtering shadow maps with sub-frame accumulation | |
CN112184873A (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
US11232623B2 (en) | Method and system for creating a neural net based lossy renderer | |
WO2010012768A1 (en) | Method and system for adjusting a virtual display device | |
Wawrzonowski et al. | Mobile devices' GPUs in cloth dynamics simulation | |
KR101680174B1 (ko) | 3차원 모델로부터 색칠공부도안 생성 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
US20240233319A9 (en) | Machine learning model training using synthetic data for under-display camera (udc) image restoration | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
US20220084265A1 (en) | Rendering antialiased curves using distance to circle arcs | |
KR101630257B1 (ko) | 3d 이미지 제공 시스템 및 그 제공방법 | |
CN107798734A (zh) | 三维模型自适应变形方法 | |
CN110969568B (zh) | Bim模型双面显示加速渲染方法、系统、产品和存储介质 | |
JP5848071B2 (ja) | 均質な媒質中の光の散乱を推定する方法 | |
Dharma et al. | Interactive fluid simulation based on material point method for mobile devices | |
US20240119570A1 (en) | Machine learning model training using synthetic data for under-display camera (udc) image restoration | |
US20240331301A1 (en) | Systems and methods to accelerate collision detection in cloth simulation | |
CN116168156A (zh) | 虚拟云朵模型处理方法、装置和计算机设备 | |
Paulaniemi | Optimizing real-time graphics for a VR environment |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Qingtao Inventor after: Hu Zaichen Inventor after: Tang Xiangjun Inventor after: Chen Yanzhen Inventor after: Wu You Inventor after: Jin Xiaogang Inventor before: Zhang Qingtao |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |