CN115994850A - 特效处理方法及设备 - Google Patents
特效处理方法及设备 Download PDFInfo
- Publication number
- CN115994850A CN115994850A CN202111210332.9A CN202111210332A CN115994850A CN 115994850 A CN115994850 A CN 115994850A CN 202111210332 A CN202111210332 A CN 202111210332A CN 115994850 A CN115994850 A CN 115994850A
- Authority
- CN
- China
- Prior art keywords
- particle
- thread
- storage unit
- preset
- particles
- 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
Images
Landscapes
- Image Generation (AREA)
Abstract
本公开实施例提供一种特效处理方法及设备,该方法包括:启动并行运行的至少一个线程;通过每个线程,从预设状态列表中获取对应的粒子标识,不同的线程对应不同的粒子标识;通过每个线程,对对应的粒子标识在预设属性列表中的粒子属性进行处理,该处理包括以下一种:初始化、更新;通过每个线程,根据处理之后的粒子属性渲染粒子得到特效画面,该粒子是几何形状的显示对象。本公开实施例可以通过每个线程从预设状态列表中获取对应的粒子标识,以对该粒子标识对应的粒子属性进行处理并渲染粒子。如此,可以保证每个线程对一个粒子进行处理,以避免多个线程对同一个粒子进行重复处理以及某些粒子未被处理,有助于提高粒子的处理准确度。
Description
技术领域
本公开实施例涉及计算机处理技术领域,尤其涉及一种特效处理方法及设备。
背景技术
特效画面是指对图像、视频、文本等添加的具有特别视觉效果的画面。一种典型的特效画面由大量粒子构成,每个粒子是任意形状的单元。每个粒子是独立的,粒子不断的运动、变化。其中,运动可以是有规律的,也可以是无规律的,变化可以包括颜色、透明度、大小等的变化。例如,可以通过大量粒子模拟烟花效果,大量粒子向上运动用于模拟烟花的上升,每个粒子上升到预设高度之后消失,同时在该粒子的消失位置处显示更多的粒子,以实现烟花爆炸的效果。
上述特效画面可以通过并行运行的线程实现。具体地,通过并行运行的线程对大量粒子进行发射、更新和渲染等处理。从而,如何保证并行运行的线程对粒子的处理准确度成为亟待解决的问题。
发明内容
本公开实施例提供一种特效处理方法及设备,可以在生成特效画面时提高粒子的处理准确度。
第一方面,本公开实施例提供一种特效处理方法,包括:
启动并行运行的至少一个线程;
通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识;
通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新;
通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
第二方面,本公开实施例提供一种特效处理装置,包括:
线程启动模块,用于启动并行运行的至少一个线程;
粒子标识获取模块,用于通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识;
属性处理模块,用于通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新;
粒子渲染模块,用于通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如第一方面所述的方法。
第五方面,本公开实施例提供一种计算机程序,所述计算机程序用于实现如第一方面所述的方法。
本公开实施例提供了一种特效处理方法及设备,该方法包括:启动并行运行的至少一个线程;通过每个线程,从预设状态列表中获取对应的粒子标识,不同的线程对应不同的粒子标识;通过每个线程,对对应的粒子标识在预设属性列表中的粒子属性进行处理,该处理包括以下一种:初始化、更新;通过每个线程,根据处理之后的粒子属性渲染粒子得到特效画面,该粒子是几何形状的显示对象。本公开实施例可以通过一个预设状态列表存储粒子标识,通过一个预设属性列表存储粒子属性,如此在需要对粒子进行处理时,通过每个线程从预设状态列表中获取对应的粒子标识,以对该粒子标识对应的粒子属性进行处理并渲染粒子。如此,可以保证每个线程对一个粒子进行处理,以避免多个线程对同一个粒子进行重复处理以及某些粒子未被处理,有助于提高粒子的处理准确度。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是通过粒子模拟烟花爆炸效果的特效画面示意图;
图2是本公开实施例提供的一种特效处理方法的步骤流程图;
图3是本公开实施例提供的一种预设状态列表的结构示意图;
图4是本公开实施例提供的一种预设属性列表的结构示意图;
图5是图3中的预设状态列表和图4中的预设属性列表之间的关系示意图;
图6至图10是本公开实施例提供的多次生成粒子、多次更新粒子属性的过程示意图;
图11是本公开实施例提供的一种特效处理装置的结构框图;
图12、图13是本公开实施例提供的两种电子设备的结构框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例可以应用于通过粒子模拟特效画面的过程。图1是通过粒子模拟烟花爆炸效果的特效画面示意图,其中,一个粒子可以是一个或多个相邻的像素点构成的。当然,通过粒子可以模拟的特效画面可以包括但不限于:云雾效果、火山爆发效果、火焰效果。
为了实现上述特效画面,可以通过电子设备进行,该电子设备设置有可以进行大量计算的处理器和可以显示粒子的屏幕。处理器可以为CPU(central processing unit,中央处理单元)或GPU。
由于特效画面是由大量粒子的运动形成的,从而需要处理器具有强大的计算能力。又由于相比CPU而言,GPU的并行计算能力更好,从而采用GPU模拟特效画面可以有效提高粒子的计算性能。
在通过GPU模拟特效画面时,由于采用大量并行运行的线程分别对粒子进行处理,从而可能会存在多个线程对同一个粒子进行重复处理,以及某些粒子未被处理的场景,导致粒子的处理准确度较低。
为了解决上述问题,本公开实施例可以通过一个预设状态列表存储粒子标识,通过一个预设属性列表存储粒子属性,如此在需要对粒子进行处理时,通过每个线程从预设状态列表中获取对应的粒子标识,以对该粒子标识对应的粒子属性进行处理并渲染粒子。如此,可以保证每个线程对一个粒子进行处理,以避免多个线程对同一个粒子进行重复处理以及某些粒子未被处理,有助于提高粒子的处理准确度。
下面以具体地实施例对本公开实施例的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开实施例进行描述。
图2是本公开实施例提供的一种特效处理方法的步骤流程图。图2所示的方法可以应用在电子设备中,参照图2所示,该特效处理方法包括:
S101:启动并行运行的至少一个线程。
其中,线程是GPU的线程,线程的数量是根据需要处理的粒子数量确定的。例如,在需要生成新的粒子时,线程的数量可以是需要生成的粒子数量。又例如,在需要对现有活跃粒子进行更新时,线程的数量是活跃粒子的数量。
S102:通过每个线程,从预设状态列表中获取对应的粒子标识,不同的线程对应不同的粒子标识。
其中,预设状态列表用于指示处于停止显示状态的粒子标识或处于活跃状态的粒子标识。停止显示状态代表该粒子不再被显示,活跃状态代表粒子仍在被显示。
上述处于停止显示状态的粒子标识是生成粒子时可用的粒子标识。也就是说,在生成新粒子时,对处于停止显示状态的粒子标识进行重复利用,将该粒子标识作为该新粒子的粒子标识。
上述处于活跃状态的粒子标识是更新粒子时可用的粒子标识。也就是说,在更新粒子的粒子属性时,对处于活跃状态的粒子标识对应的粒子的粒子属性进行更新。由于处于活跃状态的粒子仍在显示,所以在生成新粒子时不能使用该处于活跃状态的粒子的粒子标识,避免正在显示的粒子被新生成的粒子替换。
当然,上述处于停止显示状态的粒子标识和处于活跃状态的粒子标识是相关联的。处于停止显示状态的粒子标识和处于活跃状态的粒子标识构成可取的所有粒子标识。例如,可取的粒子标识是0至9,当处于停止显示状态的粒子标识为2和5时,那么处于活跃状态的粒子标识为0、1、3、4、6、7、8、9;当处于活跃状态的粒子标识为2和5时,那么处于停止显示状态的粒子标识为0、1、3、4、6、7、8、9。
需要说明的是,处于活跃状态的粒子标识可以是连续的取值,也可以是不连续的整数。同理,处于停止显示状态的粒子标识可以是连续的取值,也可以是不连续的整数。
可选地,预设状态列表中包括顺序排列的至少两个第一存储单元,一个第一存储单元用于存储目标存储单元的信息,其余第一存储单元用于存储一个粒子标识,目标存储单元以及之后的第一存储单元用于存储处于停止显示状态的粒子标识。
图3是本公开实施例提供的一种预设状态列表的结构示意图。参照图3所示,预设状态列表中包括11个第一存储单元:FSU0至FSU10,其中,第一个第一存储单元FSU0用于存储目标存储单元的信息TSU。例如,TSU为2,代表目标存储单元为第2个第一存储单元FSU2。其余第一存储单元FSU1至FSU10用于分别存储10个粒子标识ID1至ID10,此时,第一存储单元FSU2至FSU10中存储的粒子标识ID2至ID10处于停止显示状态,ID1处于活跃状态。
可以从图3中看出,第一存储单元之间具有前后顺序。例如,对于图3中的第一存储单元FSU2,其后一个第一存储单元是FSU3,前一个第一存储单元是FSU1。
当然,用于存储TSU的第一存储单元可以是任一第一存储单元,本公开实施例对其不加以限制。
当需要生成新的粒子时,需要对生成的新的粒子的粒子属性进行初始化,也就是S103中的处理为初始化。此时,在通过每个线程,从预设状态列表中获取对应的粒子标识时,可以针对每个线程,通过该线程从目标存储单元中获取对应的粒子标识,并将目标存储单元更新为预设状态列表中的后一个第一存储单元。
可以理解的是,在同一时刻,只允许一个线程对目标存储单元进行访问。在该线程对其访问之后,目标存储单元被更新为预设状态列表中的后一个第一存储单元,以使另一个线程对其进行访问。如此,直至目标存储单元被更新为预设事件列表中的最后一个存储单元。
具体地,可以根据线程标识的大小对线程进行升序排列,例如,得到升序排列的10个线程:TRD0至TRD9。这些线程逐个从目标存储单元开始的多个第一存储单元中分别获取对应的粒子标识。例如,对于图3中的预设状态列表,如果TSU为FSU1时,TRD0至TRD9分别从FSU1至FSU10中获取粒子标识。详细过程如下:
TRD0从目标存储单元FSU1中获取对应的粒子标识ID1,TRD0将目标存储单元更新为FSU2。
TRD1从目标存储单元FSU2中获取对应的粒子标识ID2,TRD1将目标存储单元更新为FSU3。
TRD2从目标存储单元FSU3中获取对应的粒子标识ID3,TRD2将目标存储单元更新为FSU4。
TRD3从目标存储单元FSU4中获取对应的粒子标识ID4,TRD3将目标存储单元更新为FSU5。
TRD4从目标存储单元FSU5中获取对应的粒子标识ID5,TRD4将目标存储单元更新为FSU6。
TRD5从目标存储单元FSU6中获取对应的粒子标识ID6,TRD5将目标存储单元更新为FSU7。
TRD6从目标存储单元FSU7中获取对应的粒子标识ID7,TRD6将目标存储单元更新为FSU8。
TRD7从目标存储单元FSU8中获取对应的粒子标识ID8,TRD7将目标存储单元更新为FSU9。
TRD8从目标存储单元FSU9中获取对应的粒子标识ID9,TRD8将目标存储单元更新为FSU10。
TRD9从目标存储单元FSU10中获取对应的粒子标识ID10。
当需要更新粒子属性时,S103中的处理为更新。此时,在通过每个线程,从预设状态列表中获取对应的粒子标识时,首先,可以针对每个线程,通过该线程获取至少一个第一粒子标识,第一粒子标识包括:目标存储单元中的粒子标识和目标存储单元之后的第一存储单元中的粒子标识;然后,通过每个线程从至少一个第二粒子标识中确定对应的粒子标识,该第二粒子标识和第一粒子标识对应不同的粒子。
与上述初始化时不同,在更新时,每个线程均可以获取到目标存储单元中的粒子标识和目标存储单元之后的第一存储单元中的粒子标识。例如,对于图3,当目标存储单元为FSU4时,至少一个第一粒子标识不仅包括目标存储单元FSU4中的粒子标识ID4,还包括FSU4之后的FSU5至FSU10中的粒子标识ID5至ID10。此时,至少一个第二粒子标识包括第一粒子标识ID4至ID10之外的其余粒子标识,也就是ID1至ID3。
可以理解的是,至少一个第二粒子标识是处于活跃状态的粒子的粒子标识。
S103:通过每个线程,对对应的粒子标识在预设属性列表中的粒子属性进行处理,该处理包括以下一种:初始化、更新。
其中,预设属性列表中包括至少一个顺序排列的第二存储单元,一个第二存储单元用于存储一个粒子的属性集合,一个属性集合中包括对应的粒子的至少一个粒子属性。
需要说明的是,在理想状态下,预设属性列表包括N个粒子的属性集合,预设状态列表中包括N个粒子标识,属性集合和粒子标识一一对应。图4是本公开实施例提供的一种预设属性列表的结构示意图。参照图4所示,与图3中的预设状态列表中包括的粒子标识的数量10对应,预设属性列表中包括10个第二存储单元:SSU0至SSU9,分别存储属性集合AC0至AC10。
图5是图3中的预设状态列表和图4中的预设属性列表之间的关系示意图。参照图5所示,AC0是粒子标识为ID1的粒子的属性集合,AC1是粒子标识为ID3的粒子的属性集合,AC2是粒子标识为ID4的粒子的属性集合,AC3是粒子标识为ID2的粒子的属性集合,AC4是粒子标识为ID5的粒子的属性集合,AC5是粒子标识为ID9的粒子的属性集合,AC6是粒子标识为ID6的粒子的属性集合,AC7是粒子标识为ID7的粒子的属性集合,AC8是粒子标识为ID10的粒子的属性集合,AC9是粒子标识为ID8的粒子的属性集合。
当然,预设属性列表中的属性集合的数量可以与预设状态列表中的粒子标识的数量不同。本公开实施例对其不加以限制。
当S103中的处理为初始化时,S103用于根据新生成的粒子的属性进行初始化,S104用于显示初始化后的粒子。
当S103中的处理为更新时,S103用于对处于活跃状态的粒子的粒子属性进行更新,S104用于显示更新后的粒子。
在每个线程对对应的粒子的属性集合中的粒子属性进行更新之后,该线程可以根据粒子属性确定该粒子是否处于停止显示状态。例如,可以根据两个粒子属性:最大显示时长和已存在的时长,确定该粒子是否处于停止显示状态。当该时长大于或等于该最大显示时长,则确定粒子处于停止显示状态;否则,确定粒子处于活跃状态。
当该线程确定粒子处于停止显示状态时,首先,通过该线程将目标存储单元更新为预设状态列表中的前一个第一存储单元;然后,通过该线程将该线程对应的粒子的粒子标识写入目标存储单元中,目标存储单元中的粒子标识代表粒子处于停止显示状态,该粒子标识可以被生成的新粒子重复使用。例如,对于图3,目标存储单元TSU可以为FSU3,如果ID5的粒子处于停止显示状态,那么,首先将图3中的目标存储单元修改为FSU3的前一个第一存储单元FSU2,然后,将ID5的粒子标识写入到FSU2中。根据前述说明可知,目标存储单元及其之后的第一存储单元中的粒子标识对应处于停止运行状态的粒子,从而,FSU2中的粒子标识ID5为处于停止运行状态的粒子,其可以作为生成的新粒子的粒子标识。
可选地,在通过每个线程,从预设状态列表中获取对应的粒子标识之前,还需要创建预设状态列表和预设属性列表。具体地,可以根据预设粒子数量创建预设状态列表和预设属性列表,预设状态列表的大小是根据第一存储单元的大小和第一存储单元的数量确定的,第一存储单元的数量是预设粒子数量与1之和,预设属性列表的大小是根据第二存储单元的大小和预设粒子数量确定的。
其中,预设状态列表的大小可以是第一存储单元的大小和第一存储单元的数量之间的乘积,预设属性列表的大小可以是第二存储单元的大小和预设粒子数量之间的乘积。
在创建预设状态列表之后,还需要初始化预设状态列表中的粒子标识,该粒子标识为从0开始的整数。
例如,对于图3所示的预设状态列表,ID1可以为0,ID2可以为1,ID3可以是2,ID4可以为3,ID5可以为4,ID6可以是5,ID7可以为6,ID8可以为7,ID9可以是8,ID10可以为9。
可选地,第一个第一存储单元用于存储目标存储单元的信息。从而,在创建预设状态列表之后,可以将目标存储单元初始化为预设状态列表中的第二个第一存储单元。参照图3所示,可以将TSU设置为第二个存储单元FSU1。如此,可以将所有第一存储单元作为处于停止显示状态的粒子,也就是在本次生成新的粒子时,可以使用图3的第一存储单元FSU1至FSU10中的粒子标识,有助于提高生成新的粒子数量。
S104:通过每个线程,根据处理之后的粒子属性渲染粒子得到特效画面,该粒子是几何形状的显示对象。
其中,上述显示对象显示在一个或多个像素点上,这些像素点构成了上述几何形状,这些像素点的位置、颜色、亮度等可以随着时间变化。
需要说明的是,每个线程通过S103进行一次处理之后,可以根据该线程处理后的粒子属性渲染对应的粒子。如此,大量粒子的粒子属性不断被更新可以形成特效画面。
具体地,在渲染粒子时,可以通过顶点/像素着色器进行渲染。
在实际应用中,可以一次或多次生成粒子,也可以一次或多次更新粒子属性,生成粒子和更新粒子属性之间可以交叉进行。
图6至图10是本公开实施例提供的多次生成粒子、多次更新粒子属性的过程示意图。需要说明的是,图6至图10所示的预设状态列表的结构与图3中的相同。
参照图6所示,在初始状态下,第1个第一存储单元中的TSU指向第2个第一存储单元,第2至第11个第一存储单元中分别存储粒子标识1至10,也就是说,粒子标识1至10均可以被新生成的粒子使用,不存在处于活跃状态的粒子。
基于图6,当需要生成3个粒子时,启动3个并行运行的线程。在每个线程使用一个粒子标识之后,将TSU向后移动一个第一存储单元,从而在启动3个线程之后TSU指向第5个第一存储单元,得到图7所示的预设状态列表。其中,第5至第11个第一存储单元中存储有粒子标识4至10,也就是说,粒子标识4至10可以被新生成的粒子使用,粒子标识1至3的粒子为处于活跃状态的粒子。
基于图7,当需要再次生成4个粒子时,启动4个并行运行的线程。在每个线程使用一个粒子标识之后,将TSU向后移动一个第一存储单元,从而,在启动4个线程之后TSU指向第9个第一存储单元得到图8所示的预设状态列表。其中,第9至第11个第一存储单元中存储有粒子标识8至10,也就是说,粒子标识8至10可以被新生成的粒子使用,粒子标识1至7的粒子为处于活跃状态的粒子。
基于图8,在确定粒子标识为1和3的粒子停止显示时,先将TSU向左移动1个第一存储单元,以使TSU指向第8个第一存储单元,并将粒子标识1写到第8个第一存储单元中,覆盖其原有粒子标识7。然后,将TSU再次向左移动1个第一存储单元,以使TSU指向第7个第一存储单元,并将粒子标识3写入到第7个第一存储单元中,覆盖其原有粒子标识6,得到图9所示的预设状态列表。此时,粒子标识3、1、8至10可以被新生成的粒子使用,粒子标识为2、4至7的粒子为处于活跃状态的粒子。
基于图9,当需要再次生成1个粒子时,启动1个线程。在该线程使用粒子标识3之后,将TSU向后移动1个第一存储单元,从而,在启动1个线程之后TSU指向第8个第一存储单元得到图10所示的预设状态列表。也就是说,粒子标识1、8至10可以被新生成的粒子使用,粒子标识为2至7的粒子为处于活跃状态的粒子。
从上述过程可以看出,当TSU指向最后一个第一存储单元时,由于右侧不存在第一存储单元,也就是不存在处于停止显示状态的粒子标识,从而无法再继续生成新的粒子。而是需要等待有新的粒子停止显示之后再生成新的粒子。具体,包括以下两种场景。
在第一种场景中,预设状态列表中被不断重复使用的粒子标识填充满。当一个粒子标识被新生成的粒子使用时,该粒子标识被写入到TSU指向的第一存储单元的左侧。在该粒子标识对应的粒子死时,将该粒子标识又写入到TSU指向的第一存储单元的右侧,此时,该预设状态列表中存在左侧和右侧均存在一个该粒子标识。如果该粒子标识被反复使用,则该粒子标识会在TSU指向的第一存储单元的左侧占用多个第一存储单元。在极端情况下,所有第一存储单元中均存储了该粒子标识。此时,TSU指向最后1个第一存储单元,从而无法再继续生成新的粒子。
在第二种场景中,预设状态列表中被处于活跃状态的不同粒子标识填充满。在不断的新生成粒子,而没有粒子停止显示时,预设状态列表会被生成的粒子的粒子标识填充满。此时,也无法继续生成新的粒子。
对应于上文实施例的特效处理方法,图11是本公开实施例提供的一种特效处理装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图11,上述特效处理装置200包括:线程启动模块201、粒子标识获取模块202、属性处理模块203和粒子渲染模块204。
其中,线程启动模块201,用于启动并行运行的至少一个线程。
粒子标识获取模块202,用于通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识。
属性处理模块203,用于通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新。
粒子渲染模块204,用于通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
可选地,所述预设状态列表中包括顺序排列的至少两个第一存储单元,一个所述第一存储单元用于存储目标存储单元的信息,其余第一存储单元用于存储一个粒子标识,所述目标存储单元以及之后的第一存储单元用于存储处于停止显示状态的粒子标识,在生成新粒子时,所述处于停止显示状态的粒子标识作为所述新粒子的粒子标识。
可选地,所述预设属性列表中包括至少一个顺序排列的第二存储单元,所述第二存储单元用于存储一个粒子的属性集合,所述属性集合中包括所述粒子的至少一个粒子属性。
可选地,当所述处理为初始化时,所述粒子标识获取模块202,还用于:
针对每个所述线程,通过所述线程从所述目标存储单元中获取对应的粒子标识,并将所述目标存储单元更新为所述预设状态列表中的后一个第一存储单元,在同一时刻,一个所述线程对所述目标存储单元进行访问。
可选地,当所述处理为更新时,所述粒子标识获取模块202,还用于:
针对每个所述线程,通过所述线程获取至少一个第一粒子标识,所述第一粒子标识包括:所述目标存储单元中的粒子标识和所述目标存储单元之后的第一存储单元中的粒子标识;通过每个所述线程从至少一个第二粒子标识中确定对应的粒子标识,所述第二粒子标识和所述第一粒子标识对应不同的粒子。
可选地,所述装置还包括目标存储单元更新模块和目标存储单元写入模块:
目标存储单元更新模块,用于在通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理之后,在一个所述线程的粒子停止显示时,通过所述线程将所述目标存储单元更新为所述预设状态列表中的前一个第一存储单元。
目标存储单元写入模块,用于通过所述线程将所述线程对应的所述粒子的粒子标识写入所述目标存储单元中。
可选地,所述装置还包括列表创建模块和粒子标识初始化模块:
列表创建模块,用于在通过每个所述线程,从预设状态列表中获取对应的粒子标识之前,根据预设粒子数量创建所述预设状态列表和所述预设属性列表,所述预设状态列表的大小是根据第一存储单元的大小和第一存储单元的数量确定的,所述第一存储单元的数量是所述预设粒子数量与1之和,所述预设属性列表的大小是根据第二存储单元的大小和所述预设粒子数量确定的。
粒子标识初始化模块,用于初始化所述预设状态列表中的所述粒子标识,所述粒子标识为从0开始的整数。
可选地,第一个所述第一存储单元用于存储所述目标存储单元的信息,所述装置还包括:
目标存储单元初始化模块,用于将所述目标存储单元初始化为所述预设状态列表中的第二个第一存储单元。
本实施例提供的特效处理装置,可用于执行上述图2所示的方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图12是本公开实施例提供的一种电子设备600的结构框图。该电子设备600包括存储器602和至少一个处理器601。
其中,存储器602存储计算机执行指令。
至少一个处理器601执行存储器602存储的计算机执行指令,使得电子设备601实现前述图2中的特效处理方法。
此外,该电子设备还可以包括接收器603和发送器604,接收器603用于接收从其余装置或设备的信息,并转发给处理器601,发送器604用于将信息发送到其余装置或设备。
进一步地,参考图13,其示出了适于用来实现本公开实施例的电子设备900的结构示意图,该电子设备900可以为终端设备。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(Read Only Memory,简称ROM)902中的程序或者从存储装置908加载到随机访问存储器(Random Access Memory,简称RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图13示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
在第一方面的第一种示例中,本公开实施例提供了一种特效处理方法,包括:
启动并行运行的至少一个线程;
通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识;
通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新;
通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
基于第一方面的第一种示例,在第一方面的第二种示例中,所述预设状态列表中包括顺序排列的至少两个第一存储单元,一个所述第一存储单元用于存储目标存储单元的信息,其余第一存储单元用于存储一个粒子标识,所述目标存储单元以及之后的第一存储单元用于存储处于停止显示状态的粒子标识,在生成新粒子时,所述处于停止显示状态的粒子标识作为所述新粒子的粒子标识。
基于第一方面的第二种示例,在第一方面的第三种示例中,所述预设属性列表中包括至少一个顺序排列的第二存储单元,所述第二存储单元用于存储一个粒子的属性集合,所述属性集合中包括所述粒子的至少一个粒子属性。
基于第一方面的第二种示例,在第一方面的第四种示例中,当所述处理为初始化时,所述通过每个所述线程,从预设状态列表中获取对应的粒子标识,包括:
针对每个所述线程,通过所述线程从所述目标存储单元中获取对应的粒子标识,并将所述目标存储单元更新为所述预设状态列表中的后一个第一存储单元,在同一时刻,一个所述线程对所述目标存储单元进行访问。
基于第一方面的第二种示例,在第一方面的第五种示例中,当所述处理为更新时,所述通过每个所述线程,从预设状态列表中获取对应的粒子标识,包括:
针对每个所述线程,通过所述线程获取至少一个第一粒子标识,所述第一粒子标识包括:所述目标存储单元中的粒子标识和所述目标存储单元之后的第一存储单元中的粒子标识;
通过每个所述线程从至少一个第二粒子标识中确定对应的粒子标识,所述第二粒子标识和所述第一粒子标识对应不同的粒子。
基于第一方面的第二至第五任一种示例,在第一方面的第六种示例中,所述通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理之后,还包括:
在一个所述线程的粒子停止显示时,通过所述线程将所述目标存储单元更新为所述预设状态列表中的前一个第一存储单元;
通过所述线程将所述线程对应的所述粒子的粒子标识写入所述目标存储单元中。
基于第一方面的第二种示例,在第一方面的第七种示例中,在通过每个所述线程,从预设状态列表中获取对应的粒子标识之前,还包括:
根据预设粒子数量创建所述预设状态列表和所述预设属性列表,所述预设状态列表的大小是根据第一存储单元的大小和第一存储单元的数量确定的,所述第一存储单元的数量是所述预设粒子数量与1之和,所述预设属性列表的大小是根据第二存储单元的大小和所述预设粒子数量确定的;
初始化所述预设状态列表中的所述粒子标识,所述粒子标识为从0开始的整数。
基于第一方面的第七种示例,在第一方面的第八种示例中,第一个所述第一存储单元用于存储所述目标存储单元的信息,所述方法还包括:
将所述目标存储单元初始化为所述预设状态列表中的第二个第一存储单元。
在第二方面的第一种示例中,提供了一种特效处理装置,包括:
线程启动模块,用于启动并行运行的至少一个线程;
粒子标识获取模块,用于通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识;
属性处理模块,用于通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新;
粒子渲染模块,用于通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
基于第二方面的第一种示例,在第二方面的第二种示例中,所述预设状态列表中包括顺序排列的至少两个第一存储单元,一个所述第一存储单元用于存储目标存储单元的信息,其余第一存储单元用于存储一个粒子标识,所述目标存储单元以及之后的第一存储单元用于存储处于停止显示状态的粒子标识,在生成新粒子时,所述处于停止显示状态的粒子标识作为所述新粒子的粒子标识。
基于第二方面的第二种示例,在第二方面的第三种示例中,所述预设属性列表中包括至少一个顺序排列的第二存储单元,所述第二存储单元用于存储一个粒子的属性集合,所述属性集合中包括所述粒子的至少一个粒子属性。
基于第二方面的第二种示例,在第二方面的第四种示例中,当所述处理为初始化时,所述粒子标识获取模块,还用于:
针对每个所述线程,通过所述线程从所述目标存储单元中获取对应的粒子标识,并将所述目标存储单元更新为所述预设状态列表中的后一个第一存储单元,在同一时刻,一个所述线程对所述目标存储单元进行访问。
基于第二方面的第二种示例,在第二方面的第五种示例中,当所述处理为更新时,所述粒子标识获取模块,还用于:
针对每个所述线程,通过所述线程获取至少一个第一粒子标识,所述第一粒子标识包括:所述目标存储单元中的粒子标识和所述目标存储单元之后的第一存储单元中的粒子标识;通过每个所述线程从至少一个第二粒子标识中确定对应的粒子标识,所述第二粒子标识和所述第一粒子标识对应不同的粒子。
基于第二方面的第二至第五任一种示例,在第二方面的第六种示例中,所述装置还包括目标存储单元更新模块和目标存储单元写入模块:
目标存储单元更新模块,用于在通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理之后,在一个所述线程的粒子停止显示时,通过所述线程将所述目标存储单元更新为所述预设状态列表中的前一个第一存储单元。
目标存储单元写入模块,用于通过所述线程将所述线程对应的所述粒子的粒子标识写入所述目标存储单元中。
基于第二方面的第二种示例,在第二方面的第七种示例中,所述装置还包括列表创建模块和粒子标识初始化模块:
列表创建模块,用于在通过每个所述线程,从预设状态列表中获取对应的粒子标识之前,根据预设粒子数量创建所述预设状态列表和所述预设属性列表,所述预设状态列表的大小是根据第一存储单元的大小和第一存储单元的数量确定的,所述第一存储单元的数量是所述预设粒子数量与1之和,所述预设属性列表的大小是根据第二存储单元的大小和所述预设粒子数量确定的。
粒子标识初始化模块,用于初始化所述预设状态列表中的所述粒子标识,所述粒子标识为从0开始的整数。
基于第二方面的第七种示例,在第二方面的第八种示例中,第一个所述第一存储单元用于存储所述目标存储单元的信息,所述装置还包括:
目标存储单元初始化模块,用于将所述目标存储单元初始化为所述预设状态列表中的第二个第一存储单元。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现第一方面任一项所述的方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现第一方面任一项所述的方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序,所述计算机程序用于实现第一方面任一项所述的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (12)
1.一种特效处理方法,其特征在于,所述方法包括:
启动并行运行的至少一个线程;
通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识;
通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新;
通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
2.根据权利要求1所述的方法,其特征在于,所述预设状态列表中包括顺序排列的至少两个第一存储单元,一个所述第一存储单元用于存储目标存储单元的信息,其余第一存储单元用于存储一个粒子标识,所述目标存储单元以及之后的第一存储单元用于存储处于停止显示状态的粒子标识,在生成新粒子时,所述处于停止显示状态的粒子标识作为所述新粒子的粒子标识。
3.根据权利要求2所述的方法,其特征在于,所述预设属性列表中包括至少一个顺序排列的第二存储单元,所述第二存储单元用于存储一个粒子的属性集合,所述属性集合中包括所述粒子的至少一个粒子属性。
4.根据权利要求2所述的方法,其特征在于,当所述处理为初始化时,所述通过每个所述线程,从预设状态列表中获取对应的粒子标识,包括:
针对每个所述线程,通过所述线程从所述目标存储单元中获取对应的粒子标识,并将所述目标存储单元更新为所述预设状态列表中的后一个第一存储单元。
5.根据权利要求2所述的方法,其特征在于,当所述处理为更新时,所述通过每个所述线程,从预设状态列表中获取对应的粒子标识,包括:
针对每个所述线程,通过所述线程获取至少一个第一粒子标识,所述第一粒子标识包括:所述目标存储单元中的粒子标识和所述目标存储单元之后的第一存储单元中的粒子标识;
通过每个所述线程从至少一个第二粒子标识中确定对应的粒子标识,所述第二粒子标识和所述第一粒子标识对应不同的粒子。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理之后,还包括:
在一个所述线程的粒子处于停止显示状态时,通过所述线程将所述目标存储单元更新为所述预设状态列表中的前一个第一存储单元;
通过所述线程将所述线程对应的所述粒子的粒子标识写入所述目标存储单元中。
7.根据权利要求3所述的方法,其特征在于,在通过每个所述线程,从预设状态列表中获取对应的粒子标识之前,还包括:
根据预设粒子数量创建所述预设状态列表和所述预设属性列表,所述预设状态列表的大小是根据第一存储单元的大小和第一存储单元的数量确定的,所述第一存储单元的数量是所述预设粒子数量与1之和,所述预设属性列表的大小是根据第二存储单元的大小和所述预设粒子数量确定的;
初始化所述预设状态列表中的所述粒子标识,所述粒子标识为从0开始的整数。
8.根据权利要求7所述的方法,其特征在于,第一个所述第一存储单元用于存储所述目标存储单元的信息,所述方法还包括:
将所述目标存储单元初始化为所述预设状态列表中的第二个第一存储单元。
9.一种特效处理装置,其特征在于,包括:
线程启动模块,用于启动并行运行的至少一个线程;
粒子标识获取模块,用于通过每个所述线程,从预设状态列表中获取对应的粒子标识,不同的所述线程对应不同的所述粒子标识;
属性处理模块,用于通过每个所述线程,对对应的所述粒子标识在预设属性列表中的粒子属性进行处理,所述处理包括以下一种:初始化、更新;
粒子渲染模块,用于通过每个所述线程,根据所述处理之后的所述粒子属性渲染粒子得到特效画面,所述粒子是几何形状的显示对象。
10.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如权利要求1至8任一项所述的方法。
12.一种计算机程序,其特征在于,所述计算机程序用于实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111210332.9A CN115994850A (zh) | 2021-10-18 | 2021-10-18 | 特效处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111210332.9A CN115994850A (zh) | 2021-10-18 | 2021-10-18 | 特效处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115994850A true CN115994850A (zh) | 2023-04-21 |
Family
ID=85993930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111210332.9A Pending CN115994850A (zh) | 2021-10-18 | 2021-10-18 | 特效处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115994850A (zh) |
-
2021
- 2021-10-18 CN CN202111210332.9A patent/CN115994850A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110114746A (zh) | 显示虚拟现实画面的方法和虚拟现实设备 | |
EP4250125A1 (en) | Method for generating firework visual effect, electronic device, and storage medium | |
WO2021008627A1 (zh) | 游戏角色渲染方法、装置、电子设备及计算机可读介质 | |
KR102381945B1 (ko) | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 | |
CN112053449A (zh) | 基于增强现实的显示方法、设备及存储介质 | |
CN110069191B (zh) | 基于终端的图像拖拽变形实现方法和装置 | |
CN115359226B (zh) | 鸿蒙系统基于纹理压缩的vr展示方法、电子设备及介质 | |
WO2023193642A1 (zh) | 视频处理方法、装置、设备及介质 | |
WO2023221926A1 (zh) | 图像渲染处理方法、装置、设备及介质 | |
CN111402349B (zh) | 渲染方法、渲染装置和渲染引擎 | |
CN115373618B (zh) | 一种多屏显示方法、装置、车机及存储介质 | |
CN115994850A (zh) | 特效处理方法及设备 | |
CN115761103A (zh) | 基于虚拟现实的控制方法、装置、电子设备和存储介质 | |
CN113961280B (zh) | 视图的展示方法、装置、电子设备及计算机可读存储介质 | |
CN115588064A (zh) | 视频生成方法、装置、电子设备及存储介质 | |
CN114219884A (zh) | 粒子特效渲染方法、装置、设备及存储介质 | |
CN115994961A (zh) | 特效处理方法及设备 | |
CN115994851A (zh) | 特效处理方法及设备 | |
CN115994967A (zh) | 特效处理方法及设备 | |
CN115994968A (zh) | 特效处理方法及设备 | |
CN112988294B (zh) | 一种rh850液晶仪表虚拟指针优化方法和装置 | |
CN113838167A (zh) | 用于生成动画的方法和装置 | |
CN115150653B (zh) | 媒体内容的展示方法、装置、电子设备和存储介质 | |
CN114357348B (zh) | 显示方法、装置和电子设备 | |
CN111783390B (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 |