CN107392835A - 一种粒子系统的处理方法及装置 - Google Patents

一种粒子系统的处理方法及装置 Download PDF

Info

Publication number
CN107392835A
CN107392835A CN201610324183.1A CN201610324183A CN107392835A CN 107392835 A CN107392835 A CN 107392835A CN 201610324183 A CN201610324183 A CN 201610324183A CN 107392835 A CN107392835 A CN 107392835A
Authority
CN
China
Prior art keywords
particle
intended
texture
information
property
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
CN201610324183.1A
Other languages
English (en)
Other versions
CN107392835B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610324183.1A priority Critical patent/CN107392835B/zh
Priority to KR1020187018114A priority patent/KR102047615B1/ko
Priority to PCT/CN2017/083917 priority patent/WO2017198104A1/zh
Publication of CN107392835A publication Critical patent/CN107392835A/zh
Priority to US16/052,265 priority patent/US10699365B2/en
Application granted granted Critical
Publication of CN107392835B publication Critical patent/CN107392835B/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
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明实施例公开了一种粒子系统的处理方法,包括:接收CPU发送的目标粒子系统的整体属性信息,所述目标粒子系统的整体属性信息包括粒子显示范围,粒子生命周期范围,粒子速度范围以及生成时间;根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性,其中所述各个粒子的粒子属性包括各个粒子的位置信息、速度信息、生命周期以及生成时间;根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子。本发明实施例还公开了一种粒子系统的处理装置。采用本发明,可提高粒子系统的处理效率。

Description

一种粒子系统的处理方法及装置
技术领域
本发明涉及计算机图形技术领域,尤其涉及一种粒子系统的处理方法及装置。
背景技术
对如烟、火、云、雾、瀑布等不规则现象特效现象进行可视化仿真是计算机图形学中极具挑战性的研究课题,传统的造型方法很难高真实度地描述具体的形状和特征效果。
如今一般采用粒子系统展示上述不规则现象特效,粒子系统可以对复杂的运动系统进行模拟。现有技术中,粒子系统中粒子的位置更新、死亡检测等都需通过CPU(Central Processing Unit,中央处理器)处理,GPU根据CPU的处理结果显示粒子系统中的粒子,这个过程会耗费大量的CPU时间,同时而CPU在处理过程中,GPU(Graphics Processing Unit,图形处理器)需要处于锁定等待状态,直到CPU完成粒子的生成与位置更新后,GPU才能根据CPU更新后的数据进行显示,从而导致处理效率低。
发明内容
本发明实施例所要解决的技术问题在于,提供一种粒子系统的处理方法及装置,可提高粒子系统的处理效率。
为了解决上述技术问题,本发明实施例提供了一种粒子系统的处理方法,包括:
接收CPU发送的目标粒子系统的整体属性信息,所述目标粒子系统的整体属性信息包括粒子显示范围,粒子生命周期范围,粒子速度范围以及生成时间;
根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性,其中所述各个粒子的粒子属性包括各个粒子的位置信息、速度信息、生命周期以及生成时间;
根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子。
相应地,本发明实施例还提供了一种粒子系统的处理的装置,包括:
整体属性信息接收模块,用于接收CPU发送的目标粒子系统的整体属性信息;
粒子属性初始化模块,用于根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性,其中所述各个粒子的粒子属性包括各个粒子的位置信息、速度信息、生命周期以及生成时间;
粒子显示模块,用于根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子。
本发明实施例通过由GPU接收CPU发送的粒子系统的整体属性信息后生成粒子,并对生成的粒子进行显示及生命周期的管理,与现有技术相比,本发明实施例大幅减少了GPU与CPU之间的数据传递,降低了GPU等待CPU数据传输的次数与频率,从而有效提高了粒子系统的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的粒子系统的处理方法的流程示意图;
图2是本发明实施例中的粒子系统显示的图案效果示意图;
图3是本发明实施例中的粒子系统显示的文字效果示意图;
图4是本发明实施例中结合具体游戏场景的粒子系统的显示效果示意图;
图5是本发明另一实施例中的粒子系统的处理方法的流程示意图;
图6是本发明另一实施例中的粒子系统的处理方法的流程示意图;
图7是本发明另一实施例中的粒子系统的处理方法的流程示意图;
图8是本发明实施例中一种伙伴算法结构示意图;
图9是本发明实施例中粒子系统分配界面示意图;
图10是本发明实施例中的粒子系统的处理装置的结构示意图;
图11是本发明实施例中的粒子属性更新模块结构示意图;
图12是本发明实施例中的CPU根据黑白图像生成用于发送给GPU的彩色图像的示意图;
图13是本发明另一实施例中的粒子系统的处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的粒子系统的处理方法和装置,可以由计算机系统中的GPU实现,也可以计算机系统中实现与GPU类似功能的功能架构实现,示例性的,下文以GPU作为本发明实施例中的执行主体介绍本发明的实施方式,在其他可选实施例的计算机系统的功能架构中,也可以是其他功能结构模块实现本发明实施例中的相应步骤。
图1是本发明实施例中一种粒子系统的处理方法的流程示意图,如图所示所述方法至少包括:
S101,接收CPU发送的目标粒子系统的整体属性信息。
具体的,本发明实施例中的粒子系统是一种图形展现类,用于有效模拟不规则模糊物体或者形状,例如通过一个粒子系统在屏幕中模拟展现一个烟火、,通过另一个粒子系统在屏幕中模拟展现一串不断变化状态的字符,等等。在粒子系统中,不规则对象被定义为由大量不规则、随机分布的粒子所组成,而每一个粒子均有一定的生命周期,它们不断改变位置、不断运动,充分地体现了不规则对象的性质。本发明实施例中,CPU向GPU传递粒子系统的整体属性数据,不需要包含单个粒子的属性,所传递的数据也不会随着粒子个数的增加而增多。其中,所述粒子系统的整体属性信息包括粒子显示范围(shader着色器发射位置和范围),粒子生命周期范围,粒子速度范围以及生成时间。在可选实施例中,CPU可以将目标粒子系统的整体属性信息传递到GPU常量寄存器中。
在可选实施例中,所述整体属性信息还可以包括目标粒子系统的关键帧数据,或包括目标粒子系统的图案信息,用于初始化粒子系统的各个粒子的粒子属性,或用于后续更新目标粒子系统的各个粒子的粒子属性。其中,所述目标粒子系统的关键帧数据包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色。所述目标粒子系统的图案信息携带初始的像素位置信息和各个像素的生成时间。
进而在可选实施例中,CPU可以周期性的向GPU发送目标粒子系统的整体属性信息,用于GPU后续更新目标粒子系统的各个粒子的粒子属性。
S102,根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性。所述各个粒子的粒子属性可以包括各个粒子的位置信息、速度信息、生命周期以及生成时间
具体的,GPU可以根据目标粒子系统的整体属性信息中的粒子显示范围(确定shader着色器发射位置和范围),在该粒子显示范围内随机确定各个粒子的位置信息,即生成的各个粒子位置随机分布在该粒子显示范围中;以及GPU可以根据目标粒子系统的整体属性信息中的粒子生命周期范围,在该粒子生命周期范围内随机确定各个粒子的生命周期,即生成的各个粒子生命周期在该粒子生命周期范围中随机分布;以及GPU可以根据目标粒子系统的粒子速度范围,在该粒子速度范围内随机确定各个粒子的速度,即生成的各个粒子的速度随机分布在该粒子速度范围中;以及GPU可以根据目标粒子系统的整体属性信息中的生成时间,在该生成时间确定的生命周期内随机确定各个粒子的生成时间,即生成的各个粒子的生成时间随机分布在该生成时间确定的生命周期内。
在可选实施例中,GPU可以将生成的粒子的位置信息和生成时间保存在位置渲染纹理(PosRT,position RT,其中RT为Render Target,渲染对象,表示离屏渲染的纹理),其中PosRT的rgb通道记录粒子的位置信息,PosRT的alpha通道记录粒子的生成时间;将生成的粒子的速度信息和生命周期保存在速度渲染纹理(velocityRT),其中,velocityRT的rgb通道记录粒子的速度信息,velocityRT的alpha通道记录粒子的生命周期。可选的,GPU可以通过用于生成粒子的Shader(着色器)向位置渲染纹理和速度渲染纹理中写入粒子的粒子属性。进而可选的,每张RT(PosRT或者velocityRT)都可以是RGBA32f格式,占用的显存为0.125-16M,对应可存储8192-100W个粒子的粒子属性。
在可选实施例中,若所述目标粒子系统的整体属性信息携带目标粒子系统的关键帧数据,则GPU可以GPU根据所述目标粒子系统的关键帧数据初始化所述目标粒子系统的各个粒子的粒子属性。所述目标粒子系统的关键帧数据可以包括初始显示位置、初始变化速度或者初始显示颜色等。例如目标粒子系统的关键帧数据包括初始关键帧的显示对象位置,则GPU可以根据初始关键帧的显示对象位置确定目标粒子系统的位置信息,相较于根据整体属性信息中的粒子显示范围确定目标粒子系统的位置信息,根据初始关键帧的显示对象位置可以进一步精确粒子系统的各个粒子的显示位置,并可以不受shader着色器的显示范围形状的限制。同样GPU可以根据初始关键帧的变化速度进一步精确粒子系统的各个粒子的初始的速度信息以及显示颜色。
S103,根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的粒子。
具体的,GPU可以通过采样粒子在位置渲染纹理PosRT中保存的位置信息和在速度渲染纹理velocityRT中保存的速度信息,从而根据粒子的位置信息和速度信息在屏幕中绘制对应的粒子,其中粒子的位置信息决定其在屏幕上的绘制位置,速度信息可以确定粒子显示的姿态、方向以及用于后续的更新。
其中,GPU可以通过用于显示粒子的Shader(着色器)进行显示粒子,用于显示粒子的Shader具体用于从所述位置渲染纹理中读取粒子的位置信息,从所述速度渲染纹理中读取粒子的速度信息,并根据得到的粒子的位置信息和速度信息在屏幕中绘制对应的粒子。Shader是GPU上用来实现图像渲染的用来替代固定渲染管线的可编辑程序。Shader包括Vertex Shader顶点着色器和PixelShader像素着色器。其中Vertex Shader用于顶点的几何关系等的运算,PixelShader用于片源颜色等的计算。由于Shader的可编辑性,通过在Vertex Shader中采样纹理RT,在Pixel Shader中采样色彩,进而显示对应的粒子,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。
示例性的,图2为通过shader显示的图案效果,图3为通过shader显示的文字效果。所述图案效果和文字效果可以为黑白或者彩色。
结合具体游戏场景,本发明的目标粒子系统的显示效果可以如图4所示,较优的,可以将目标粒子系统的粒子显示放在游戏场景的最上层,即先绘制游戏场景界面中的其他显示对象,最后再在屏幕上显示目标粒子系统。
进而在可选实施例中,所述shader显示粒子可以是放射方式,也可以是聚合方式,其中放射方式为根据着色器的发射位置为中心随机向四周以随机速度放射粒子,那么在初始状态下粒子聚合度最高,随后渐渐发散;聚合方式也称引力方式,即着色器将粒子在一定范围内随机发射,然后屏幕预设轨迹或图案上设置引力,可以将周围粒子牵引到轨迹或图案的周围,那么在初始状态下粒子聚合度很低,随后渐渐聚合在预设轨迹或图案的周围,形成预设轨迹或图案的显示效果。
本发明实施例通过由GPU接收CPU发送的粒子系统的整体属性信息后生成并显示粒子,与现有技术相比,本发明实施例大幅减少了GPU与CPU之间的数据传递,降低了GPU等待CPU数据传输的次数与频率,从而有效提高了粒子系统的处理效率。
图5是本发明另一实施例的粒子系统的处理方法的流程示意图,如图所示所述方法至少包括:
S201,接收CPU发送的目标粒子系统的整体属性信息和图案信息。
所述粒子系统的整体属性信息包括粒子显示范围(shader着色器发射位置和范围),粒子生命周期范围,粒子速度范围以及生成时间。在可选实施例中,CPU可以将目标粒子系统的整体属性信息传递到GPU常量寄存器中。
所述目标粒子系统的图案信息,可以包括像素位置信息和各个像素的生成时间。在可选实施例中,CPU可以将目标粒子系统的图案信息(例如一张彩色图片)写入指定存储空间,如内存、硬盘或显存中,由GPU到该指定存储空间加载该图案信息。
具体的,可以由CPU根据一张目标黑白图像生成一幅彩色图像,通过逐个遍历黑白图像中的每个像素点,当像素点颜色大于0(非黑色)时,通过彩色图像中的一个像素的rgb通道记录所述颜色大于0的像素点的位置信息,以及通过该像素的Alpha通道记录所述颜色大于0的像素点的生成时间、显示时间等信息,从而顺序的将各个像素点颜色大于0的像素点的位置和时间信息保存在彩色图像的各个像素中。CPU将所述得到的彩色图像的图案信息发送给GPU。
示例性的如图10所示的黑白图片,左侧展示的是黑白图片的rgb通道,右侧展示的是黑白图片的alpha通道,CPU可以根据黑白图像的rgb通道中的位置和alpha通道中的时间信息生成得到右侧彩色图像,彩色图像的各像素点的颜色根据黑白图像的非0像素点的位置决定,各像素的Alpha通道记录所述颜色大于0的像素点的生成时间、显示时间等信息。
可选的,所述黑白图像可以为文字图案的图像。
同理的,所述CPU还可以根据立体模型图像(3D网格图像)生成上述彩色图像,同样所述彩色图像的像素点的RGB通道保存立体模型图像中顶点位置的位置坐标。
具体的,所述由CPU生成的彩色图案基于的黑白图像可以为文字图案。由于文字图案生成的图片分辨率非常小(默认32*32),可以实时生成。
S202,根据所述图案信息中的像素位置信息和各个像素的生成时间结合所述目标粒子系统的整体属性信息,初始化所述目标粒子系统的各个粒子的位置信息和生成时间。
GPU从所述图案信息中提取对应的像素位置信息和像素点的生成时间,进而根据的各个像素的位置和生成时间结合所述目标粒子系统的整体属性信息初始化目标粒子系统的各个粒子的粒子属性。
S203,根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子
从而GPU可以在屏幕上还原所述图案信息对应的原始图像,例如上述的目标黑白图像或立体模型图像。
本实施例中的GPU可以根据CPU发送的目标粒子系统的整体属性信息和图案信息,进而根据目标粒子系统的整体属性信息和图案信息生成并显示粒子,从而可以根据由所述图案信息中提取得到的像素位置信息和像素点的生成时间进一步精确粒子系统的各个粒子的显示位置和生成时间,以实现更细化的粒子显示控制。
图6是本发明另一实施例的粒子系统的处理方法的流程示意图,如图所示所述方法至少包括:
S301,接收CPU发送的目标粒子系统的整体属性信息。
所述粒子系统的整体属性信息包括粒子显示范围(shader着色器发射位置和范围),粒子生命周期范围,粒子速度范围以及生成时间。在可选实施例中,CPU可以将目标粒子系统的整体属性信息传递到GPU常量寄存器中。
在可选实施例中,所述整体属性信息还可以包括目标粒子系统的关键帧数据,或包括目标粒子系统的图案信息以及目标粒子系统的受力状态,用于初始化粒子系统的各个粒子的粒子属性,或用于后续更新目标粒子系统的各个粒子的粒子属性。其中,所述目标粒子系统的关键帧数据包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色。所述目标粒子系统的图案信息携带初始的像素位置信息和各个像素的生成时间。
进而在可选实施例中,CPU可以是周期性的向GPU发送目标粒子系统的整体属性信息,用于GPU后续更新目标粒子系统的各个粒子的粒子属性。
S302,根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性。所述各个粒子的粒子属性可以包括各个粒子的位置信息、速度信息、生命周期以及生成时间
具体实现可以参考前文实施例中的S102,本实施例中不再赘述。
S303,根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的粒子。
具体实现可以参考前文实施例中的S103,本实施例中不再赘述。
S304,根据所述目标粒子系统的粒子的生命周期以及生成时间判断粒子是否死亡,若粒子死亡则停止显示该粒子。
具体的,本实施例中的GPU在初始化粒子的粒子属性时记录了每个粒子的生成时间和生命周期,例如通过PosRT和VelocityRT的Alpha通道中记录每个粒子的生成时间和生命周期,在通过Shader显示粒子后,可以根据各个粒子的生成时间和当前时间得到各个粒子的生成时长,进而将生成时长与该粒子的生命周期比对,若生成时长已到达或超过生命周期,则可以确定该粒子死亡,进而把死亡的粒子移出屏幕,停止显示该粒子。
S305,若粒子仍在生命周期中,更新所述目标粒子系统的各个粒子的粒子属性,并通过shader显示更新后的所述目标粒子系统的粒子。
具体的,粒子属性可以分为状态相关的粒子属性和状态无关的粒子属性,其中状态无关的粒子属性为仅通过一个由粒子的初始属性和根据当前时间定义的闭合函数,就能计算出的粒子属性,而状态相关的粒子属性则是更新计算需要读取上一帧的粒子属性作为输入就是状态相关。状态相关的粒子属性更新需要单独的绘制步骤,将更新后的粒子属性保存到RT上,通过shader显示更新后的粒子。在可选实施例中,GPU不必在每一帧都对粒子进行更新,而是可以根据需要设置粒子的更新周期,例如设置用于模拟描述距离视角较远的对象的粒子的更新周期可以是每2帧更新一次或3帧更新一次,等。
在可选实施例中,GPU可以根据所述目标粒子系统的受力状态更新状态相关的粒子属性,所述目标粒子系统的受力状态可以由CPU处理得到后传递给GPU,例如CPU在向GPU周期性发送目标粒子系统的整体信息的同时,将目标粒子系统的受力状态一起发送给GPU。
在可选实施例中,GPU也可以根据所述目标粒子系统的关键帧数据更新所述目标粒子系统的各个粒子的粒子属性。所述目标粒子系统的关键帧数据可以包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色,当到达所述关键帧对应时间时,GPU可以根据该关键帧对应时间的显示对象位置确定目标粒子系统的各个粒子的位置信息,可以将粒子位置调整至显示在关键帧的显示对象位置上,同理可以根据根据该关键帧对应时间的变化速度统一调整目标粒子系统的各个粒子的速度信息,以及可以根据根据该关键帧对应时间的显示对象的颜色统一调整目标粒子系统的各个粒子的颜色,从而实现对目标粒子系统的各个粒子的精确控制。
本发明实施例通过由GPU接收CPU发送的粒子系统的整体属性信息后生成粒子,并对生成的粒子进行显示及生命周期的管理,与现有技术相比,本发明实施例大幅减少了GPU与CPU之间的数据传递,降低了GPU等待CPU数据传输的次数与频率,从而有效提高了粒子系统的处理效率。
再结合在游戏运行的具体应用实例进行说明,例如结合交底书低4页上面的图进行说明,也要点出粒子系统显示时,跟其他渲染显示的配合
交底书上产品侧的内容也要写入
图7是本发明另一实施例提供的粒子系统的处理方法的流程示意图,如图所示所述方法至少包括:
S201,CPU为目标粒子系统分配渲染纹理资源。
具体的,CPU根据目标粒子系统的同时存在的最多粒子数为目标粒子系统分配渲染纹理资源,最多粒子数=最大粒子发射率*最大生命周期。进而根据每张RT资源可以存储的粒子属性的数量,确定目标粒子系统所需要的RT资源。例如在可选实施例中,每张RT(PosRT或者velocityRT)都是RGBA32f格式,占用的显存为0.125-16M,对应可存储8192-100W个粒子的粒子属性。
进而为了减少分配回收产生的碎片,可以通过建立多级order链表管理空闲渲染纹理资源,进而根据伙伴算法从空闲渲染纹理资源中为目标粒子系统分配渲染纹理资源。具体如图9所示,其中0~9标识order链表等级,等级n的链表中管理大小为1*2n的RT资源,即每一级链表管理的RT块的大小是上一级的2倍,而等级n的链表中的RT资源又可以分为多个子块,如1*2n可以分为2*2n-1个RT资源。采用order链表管理分配时,当目标粒子系统需求为4个RT时,从块大小为4的order链表查起,若该链表上有空闲的块,则可以直接分配一个大小为4的RT资源块给用户,否则向下一个级别(块大小为8)的链表中查找,若管理RT资源块大小为8链表中存在空闲资源块,则将一个空闲的RT资源块分裂为两个大小为4的RT资源块,其中一个大小为4的RT资源块分配给目标粒子系统,另外一块大小为4的RT资源块加入上一级链表中,以此类推。而当目标粒子系统释放RT资源时,如果当前存在与该目标粒子系统释放的RT资源块相同大小的空闲RT资源块,则将这两块相同大小的RT资源块合并放入下一级别的链表中,如目标粒子系统释放一个大小为4的RT资源块,若找到一个同样大小为4的RT资源块空闲,则此时两RT资源块可以合并为一个大小为8的RT资源块放入管理大小为8的RT资源块的链表中,以此类推。
S202,接收CPU发送的目标粒子系统的整体属性信息,和分配给目标粒子系统的渲染纹理资源。
具体的,本发明实施例中的粒子系统是模拟不规则模糊物体或者形状非常有效的一种图形展现类,例如通过一个粒子系统在屏幕中模拟展现一个烟火、,通过另一个粒子系统在屏幕中模拟展现一串不断变化状态的字符,等等。在粒子系统中,不规则对象被定义为由大量不规则、随机分布的粒子所组成,而每一个粒子均有一定的生命周期,它们不断改变形状、不断运动,充分地体现了不规则对象的性质。其中,所述粒子系统的整体属性信息包括粒子显示范围(shader着色器发射范围),粒子生命周期范围,粒子速度范围以及生成时间。
CPU向GPU传递粒子系统的整体属性数据,不需要包含单个粒子的属性,所传递的数据也不会随着粒子个数的增加而增多。
进而在可选实施例中,也可以由CPU将目标粒子系统的最大粒子发射率和最大生命周期放入目标粒子系统的整体属性信息中发送给GPU,由GPU为目标粒子系统分配渲染纹理资源。
S203,根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理。
具体的,所述各个粒子的粒子属性可以包括各个粒子的位置信息、速度信息、生命周期以及生成时间。
GPU可以将生成的粒子的位置信息和生成时间保存在位置渲染纹理(PosRT),其中PosRT的rgb通道记录粒子的位置信息,PosRT的alpha通道记录粒子的生成时间;将生成的粒子的速度信息和生命周期保存在速度渲染纹理(velocityRT),其中,velocityRT的rgb通道记录粒子的速度信息,velocityRT的alpha通道记录粒子的生命周期。
S204,采样粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息,从而显示对应粒子。
具体的,GPU可以通过采样粒子在位置渲染纹理PosRT中保存的位置信息和在速度渲染纹理velocityRT中保存的速度信息,从而根据粒子的位置信息和速度信息在屏幕中绘制对应的粒子,其中粒子的位置信息决定其在屏幕上的绘制位置,速度信息可以确定粒子显示的姿态、方向以及用于后续的更新。
其中,GPU可以通过用于显示粒子的Shader(着色器)进行显示粒子,用于显示粒子的Shader具体用于从所述位置渲染纹理中读取粒子的位置信息,从所述速度渲染纹理中读取粒子的速度信息,并根据得到的粒子的位置信息和速度信息在屏幕中绘制对应的粒子。Shader是GPU上用来实现图像渲染的用来替代固定渲染管线的可编辑程序。Shader包括Vertex Shader顶点着色器和PixelShader像素着色器。其中Vertex Shader用于顶点的几何关系等的运算,PixelShader用于片源颜色等的计算。由于Shader的可编辑性,通过在Vertex Shader中采样纹理RT,在Pixel Shader中采样色彩,进而显示对应的粒子,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。
例如,图2为通过shader显示的图案效果,图3为通过shader显示的文字效果。所述图案效果和文字效果可以为黑白或者彩色。
S205,根据所述目标粒子系统的粒子的生命周期以及生成时间判断粒子是否死亡,若粒子死亡则停止显示该粒子。
具体的,PosRT和VelocityRT的Alpha通道中记录每个粒子的生成时间和生命周期,根据各个粒子的生成时间和当前时间得到各个粒子的生成时长,进而将生成时长与该粒子的生命周期比对,若生成时长已到达或超过生命周期,则可以确定该粒子死亡,进而把死亡的粒子移出屏幕,停止显示该粒子。
S206,若粒子仍在生命周期中,根据目标粒子系统的受力状态,计算目标粒子系统中粒子属性与状态相关的粒子的属性变化量,并将所述属性变化量保存在临时渲染纹理。
具体的,粒子属性可以分为状态相关的粒子属性和状态无关的粒子属性,其中状态无关的粒子属性为仅通过一个由粒子的初始属性和根据当前时间定义的闭合函数,就能计算出的粒子属性,而状态相关的粒子属性则是更新计算需要读取上一帧的粒子属性作为输入就是状态相关。状态相关的粒子属性更新需要单独的绘制步骤,渲染到RT上。若粒子仍在生命周期中,GPU可以根据目标粒子系统的受力状态,计算目标粒子系统中粒子属性与状态相关的粒子的属性变化量,并将所述属性变化量保存在临时渲染纹理,所述属性变化量包括位置变化量和速度变化量。在可选实施例中,所述目标粒子系统的受力状态可以由CPU处理得到后传递给GPU,例如CPU在向GPU周期性发送目标粒子系统的整体信息的同时,将目标粒子系统的受力状态一起发送给GPU。
S206,将所述临时渲染纹理中的位置变化量叠加至对应粒子的位置渲染纹理中的位置信息,将所述临时渲染纹理中的速度变化量叠加至对应粒子的速度渲染纹理中的速度信息。
具体的,若更新前位置渲染纹理中保存的位置信息为u1,计算得到的位置增量为u,因此更新后位置渲染纹理中保存的位置信息为u2=u1+u,同样,若更新前速度渲染纹理中保存的速度信息为v1,计算得到的速度增量为v,因此更新后速度渲染纹理中保存的速度信息为v2=v1+v。其中,u、v通过临时渲染纹理保存。
更新处理流程可以如图8所示。灰色区域是节省RT算法的核心,由于TempRT保存的是增量,不需要读取保存的上一帧结果,并且TempRT在更新处理后即可释放,相比经典算法少了两张RT,多了两个add to Pass的处理。
S207,采样粒子在位置渲染纹理PosRT中保存的叠加后的位置信息和在速度渲染纹理velocityRT中保存的叠加后的速度信息,从而显示更新后的粒子。
本发明实施例通过由GPU接收CPU发送的粒子系统的整体属性信息后生成粒子,并对生成的粒子进行显示及生命周期的管理,与现有技术相比,本发明实施例大幅减少了GPU与CPU之间的数据传递,降低了GPU等待CPU数据传输的次数与频率,从而有效提高了粒子系统的处理效率。另一方面,现有技术中CPU在处理粒子属性更新时,通常需要两对或更多对的RT保存当前帧及上一帧粒子的位置信息与速度信息,而本发明实施例中GPU处理粒子属性更新时,只需保存速度信息和位置信息的增量,因此至少可以节省一张位置纹理和一张速度纹理,只需增加一个临时纹理即可实现,而该临时纹理在更新处理后即可释放,尤其在粒子数量庞大的粒子系统的处理过程中可以节省大量显存资源。
图10是本发明实施例提供的粒子系统的处理装置的流程示意图,如图所示所述装置至少包括:
整体属性信息接收模块810,用于接收CPU发送的目标粒子系统的整体属性信息。
具体的,本发明实施例中的粒子系统是一种图形展现类,用于有效模拟不规则模糊物体或者形状,例如通过一个粒子系统在屏幕中模拟展现一个烟火、,通过另一个粒子系统在屏幕中模拟展现一串不断变化状态的字符,等等。在粒子系统中,不规则对象被定义为由大量不规则、随机分布的粒子所组成,而每一个粒子均有一定的生命周期,它们不断改变位置、不断运动,充分地体现了不规则对象的性质。本发明实施例中,CPU向GPU传递粒子系统的整体属性数据,不需要包含单个粒子的属性,所传递的数据也不会随着粒子个数的增加而增多。其中,所述粒子系统的整体属性信息包括粒子显示范围(shader着色器发射位置和范围),粒子生命周期范围,粒子速度范围以及生成时间。在可选实施例中,CPU可以将目标粒子系统的整体属性信息传递到GPU常量寄存器中。
在可选实施例中,所述整体属性信息还可以包括目标粒子系统的关键帧数据,或包括目标粒子系统的图案信息,用于初始化粒子系统的各个粒子的粒子属性,或用于后续更新目标粒子系统的各个粒子的粒子属性。其中,所述目标粒子系统的关键帧数据包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色。所述目标粒子系统的图案信息携带初始的像素位置信息和各个像素的生成时间。
进而在可选实施例中,CPU可以周期性的向GPU发送目标粒子系统的整体属性信息,用于GPU后续更新目标粒子系统的各个粒子的粒子属性。
粒子属性初始化模块820,用于根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性。
具体的,粒子属性初始化模块820可以根据目标粒子系统的整体属性信息中的粒子显示范围(确定shader着色器发射位置和范围),在该粒子显示范围内随机确定各个粒子的位置信息,即生成的各个粒子位置随机分布在该粒子显示范围中;以及GPU可以根据目标粒子系统的整体属性信息中的粒子生命周期范围,在该粒子生命周期范围内随机确定各个粒子的生命周期,即生成的各个粒子生命周期在该粒子生命周期范围中随机分布;以及GPU可以根据目标粒子系统的粒子速度范围,在该粒子速度范围内随机确定各个粒子的速度,即生成的各个粒子的速度随机分布在该粒子速度范围中;以及GPU可以根据目标粒子系统的整体属性信息中的生成时间,在该生成时间确定的生命周期内随机确定各个粒子的生成时间,即生成的各个粒子的生成时间随机分布在该生成时间确定的生命周期内。
在可选实施例中,所述粒子属性初始化模块820具体用于:
将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理。所述粒子属性初始化模块820可以将生成的粒子的位置信息和生成时间保存在位置渲染纹理(PosRT,position RT,其中RT为Render Target,渲染对象,表示离屏渲染的纹理),其中PosRT的rgb通道记录粒子的位置信息,PosRT的alpha通道记录粒子的生成时间;将生成的粒子的速度信息和生命周期保存在速度渲染纹理(velocityRT),其中,velocityRT的rgb通道记录粒子的速度信息,velocityRT的alpha通道记录粒子的生命周期。可选的,所述粒子属性初始化模块820可以通过用于生成粒子的Shader(着色器)向位置渲染纹理和速度渲染纹理中写入粒子的粒子属性。
进而可选的,每张RT(PosRT或者velocityRT)都可以是RGBA32f格式,占用的显存为0.125-16M,对应可存储8192-100W个粒子的粒子属性。
在可选实施例中,若所述目标粒子系统的整体属性信息携带目标粒子系统的关键帧数据,则GPU可以GPU根据所述目标粒子系统的关键帧数据初始化所述目标粒子系统的各个粒子的粒子属性。所述目标粒子系统的关键帧数据可以包括初始显示位置、初始变化速度或者初始显示颜色等。例如目标粒子系统的关键帧数据包括初始关键帧的显示对象位置,则GPU可以根据初始关键帧的显示对象位置确定目标粒子系统的位置信息,相较于根据整体属性信息中的粒子显示范围确定目标粒子系统的位置信息,根据初始关键帧的显示对象位置可以进一步精确粒子系统的各个粒子的显示位置,并可以不受shader着色器的显示范围形状的限制。同样GPU可以根据初始关键帧的变化速度进一步精确粒子系统的各个粒子的初始的速度信息以及显示颜色。
粒子显示模块830,用于根据所述目标粒子系统中各个粒子的粒子属性通过shader着色器显示所述目标粒子系统的粒子。
具体的,粒子显示模块830可以通过采样粒子在位置渲染纹理PosRT中保存的位置信息和在速度渲染纹理velocityRT中保存的速度信息,从而根据粒子的位置信息和速度信息在屏幕中绘制对应的粒子,其中粒子的位置信息决定其在屏幕上的绘制位置,速度信息可以确定粒子显示的姿态、方向以及用于后续的更新。
其中,粒子显示模块830可以通过用于显示粒子的Shader(着色器)进行显示粒子,用于显示粒子的Shader具体用于从所述位置渲染纹理中读取粒子的位置信息,从所述速度渲染纹理中读取粒子的速度信息,并根据得到的粒子的位置信息和速度信息在屏幕中绘制对应的粒子。Shader是GPU上用来实现图像渲染的用来替代固定渲染管线的可编辑程序。Shader包括Vertex Shader顶点着色器和Pixel Shader像素着色器。其中Vertex Shader用于顶点的几何关系等的运算,Pixel Shader用于片源颜色等的计算。由于Shader的可编辑性,通过在VertexShader中采样纹理RT,在Pixel Shader中采样色彩,进而显示对应的粒子,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。
示例性的,图2为通过shader显示的图案效果,图3为通过shader显示的文字效果。所述图案效果和文字效果可以为黑白或者彩色。
结合具体游戏场景,本发明的目标粒子系统的显示效果可以如图4所示,较优的,可以将目标粒子系统的粒子显示放在游戏场景的最上层,即先绘制游戏场景界面中的其他显示对象,最后再在屏幕上显示目标粒子系统。
进而在可选实施例中,所述shader显示粒子可以是放射方式,也可以是聚合方式,其中放射方式为根据着色器的发射位置为中心随机向四周以随机速度放射粒子,那么在初始状态下粒子聚合度最高,随后渐渐发散;聚合方式也称引力方式,即着色器将粒子在一定范围内随机发射,然后屏幕预设轨迹或图案上设置引力,可以将周围粒子牵引到轨迹或图案的周围,那么在初始状态下粒子聚合度很低,随后渐渐聚合在预设轨迹或图案的周围,形成预设轨迹或图案的显示效果。
死亡判断模块840,用于根据所述目标粒子系统的粒子的生命周期以及生成时间判断粒子是否死亡,若粒子死亡则停止显示该粒子。
具体的,GPU在初始化粒子的粒子属性时记录了每个粒子的生成时间和生命周期,例如通过PosRT和VelocityRT的Alpha通道中记录每个粒子的生成时间和生命周期,在通过Shader显示粒子后,死亡判断模块840可以根据各个粒子的生成时间和当前时间得到各个粒子的生成时长,进而将生成时长与该粒子的生命周期比对,若生成时长已到达或超过生命周期,则可以确定该粒子死亡,进而把死亡的粒子移出屏幕,停止显示该粒子。
粒子属性更新模块850,用于在粒子仍在生命周期时,更新所述目标粒子系统的各个粒子的粒子属性,并显示更新后的所述目标粒子系统的粒子。
具体的,粒子属性可以分为状态相关的粒子属性和状态无关的粒子属性,其中状态无关的粒子属性为仅通过一个由粒子的初始属性和根据当前时间定义的闭合函数,就能计算出的粒子属性,而状态相关的粒子属性则是更新计算需要读取上一帧的粒子属性作为输入就是状态相关。状态相关的粒子属性更新需要单独的绘制步骤,将更新后的粒子属性保存到RT上,通过shader显示更新后的粒子。在可选实施例中,粒子属性更新模块850不必在每一帧都对粒子进行更新,而是可以根据需要设置粒子的更新周期,例如设置用于模拟描述距离视角较远的对象的粒子的更新周期可以是每2帧更新一次或3帧更新一次,等。
在可选实施例中,粒子属性更新模块850可以根据所述目标粒子系统的受力状态更新状态相关的粒子属性,所述目标粒子系统的受力状态可以由CPU处理得到后传递给GPU,例如CPU在向GPU周期性发送目标粒子系统的整体信息的同时,将目标粒子系统的受力状态一起发送给GPU。
在可选实施例中,粒子属性更新模块850也可以根据所述目标粒子系统的关键帧数据更新所述目标粒子系统的各个粒子的粒子属性。所述目标粒子系统的关键帧数据可以包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色,当到达所述关键帧对应时间时,粒子属性更新模块850可以根据该关键帧对应时间的显示对象位置确定目标粒子系统的各个粒子的位置信息,可以将粒子位置调整至显示在关键帧的显示对象位置上,同理可以根据根据该关键帧对应时间的变化速度统一调整目标粒子系统的各个粒子的速度信息,以及可以根据根据该关键帧对应时间的显示对象的颜色统一调整目标粒子系统的各个粒子的颜色,从而实现对目标粒子系统的各个粒子的精确控制。
在可选实施例中,所述粒子属性更新模块850具体用于更新粒子在对应位置渲染纹理中保存的位置信息和在对应速度渲染纹理中保存的速度信息。
具体的,如图11所示,所述粒子属性更新模块850包括:
属性变化量保存单元851,用于根据目标粒子系统的受力状态,计算目标粒子系统中粒子属性与状态相关的粒子的属性变化量,并将所述属性变化量保存在临时渲染纹理,所述属性变化量包括位置变化量和速度变化量。
属性变化量叠加单元852,用于将所述临时渲染纹理中的位置变化量叠加至对应粒子的位置渲染纹理中的位置信息,将所述临时渲染纹理中的速度变化量叠加至对应粒子的速度渲染纹理中的速度信息。
具体的,若更新前位置渲染纹理中保存的位置信息为u1,计算得到的位置增量为u,因此更新后位置渲染纹理中保存的位置信息为u2=u1+u,同样,若更新前速度渲染纹理中保存的速度信息为v1,计算得到的速度增量为v,因此更新后速度渲染纹理中保存的速度信息为v2=v1+v。其中,u、v通过临时渲染纹理保存。
更新处理流程可以如图8所示。灰色区域是节省RT算法的核心,由于TempRT保存的是增量,不需要读取保存的上一帧结果,并且TempRT在更新处理后即可释放,相比经典算法少了两张RT,多了两个add to Pass的处理。
进而在可选实施例中,所述粒子系统的处理装置还包括:
纹理资源分配模块860,用于根据目标粒子系统的最大粒子发射率和最大生命周期,为目标粒子系统分配渲染纹理资源。
具体的,GPU可以根据目标粒子系统的同时存在的最多粒子数为目标粒子系统分配渲染纹理资源,最多粒子数=最大粒子发射率*最大生命周期。进而根据每张RT资源可以存储的粒子属性的数量,确定目标粒子系统所需要的RT资源。例如在可选实施例中,每张RT(PosRT或者velocityRT)都是RGBA32f格式,占用的显存为0.125-16M,对应可存储8192-100W个粒子的粒子属性。可以由CPU将目标粒子系统的最大粒子发射率和最大生命周期放入目标粒子系统的整体属性信息中发送给GPU,由GPU为目标粒子系统分配渲染纹理资源。
进而为了减少分配回收产生的碎片,可以通过建立多级order链表管理空闲渲染纹理资源,进而根据伙伴算法从空闲渲染纹理资源中为目标粒子系统分配渲染纹理资源。具体如图9所示,其中0~9标识order链表等级,等级n的链表中管理大小为1*2n的RT资源,即每一级链表管理的RT块的大小是上一级的2倍,而等级n的链表中的RT资源又可以分为多个子块,如1*2n可以分为2*2n-1个RT资源。采用order链表管理分配时,当目标粒子系统需求为4个RT时,从块大小为4的order链表查起,若该链表上有空闲的块,则可以直接分配一个大小为4的RT资源块给用户,否则向下一个级别(块大小为8)的链表中查找,若管理RT资源块大小为8链表中存在空闲资源块,则将一个空闲的RT资源块分裂为两个大小为4的RT资源块,其中一个大小为4的RT资源块分配给目标粒子系统,另外一块大小为4的RT资源块加入上一级链表中,以此类推。而当目标粒子系统释放RT资源时,如果当前存在与该目标粒子系统释放的RT资源块相同大小的空闲RT资源块,则将这两块相同大小的RT资源块合并放入下一级别的链表中,如目标粒子系统释放一个大小为4的RT资源块,若找到一个同样大小为4的RT资源块空闲,则此时两RT资源块可以合并为一个大小为8的RT资源块放入管理大小为8的RT资源块的链表中,以此类推。
进而在可选实施例中,也可以由CPU为目标粒子系统分配渲染纹理资源,并将分配给目标粒子系统的RT资源告知GPU。
可选的,所述装置还包括:
图案信息接收模块880,用于接收CPU发送的目标粒子系统的图案信息,所述图案信息包括像素位置信息和各个像素的生成时间。
在可选实施例中,CPU可以将目标粒子系统的图案信息(例如一张彩色图片)写入指定存储空间,如内存、硬盘或显存中,由图案信息接收模块880到该指定存储空间加载该图案信息。
具体的,可以由CPU根据一张目标黑白图像生成一幅彩色图像,通过逐个遍历黑白图像中的每个像素点,当像素点颜色大于0(非黑色)时,通过彩色图像中的一个像素的rgb通道记录所述颜色大于0的像素点的位置信息,以及通过该像素的Alpha通道记录所述颜色大于0的像素点的生成时间、显示时间等信息,从而顺序的将各个像素点颜色大于0的像素点的位置和时间信息保存在彩色图像的各个像素中。CPU将所述得到的彩色图像的图案信息发送给GPU。
示例性的如图10所示的黑白图片,左侧展示的是黑白图片的rgb通道,右侧展示的是黑白图片的alpha通道,CPU可以根据黑白图像的rgb通道中的位置和alpha通道中的时间信息生成得到右侧彩色图像,彩色图像的各像素点的颜色根据黑白图像的非0像素点的位置决定,各像素的Alpha通道记录所述颜色大于0的像素点的生成时间、显示时间等信息。
可选的,所述黑白图像可以为文字图案的图像。
同理的,所述CPU还可以根据立体模型图像(3D网格图像)生成上述彩色图像,同样所述彩色图像的像素点的RGB通道保存立体模型图像中顶点位置的位置坐标。
具体的,所述由CPU生成的彩色图案基于的黑白图像可以为文字图案。由于文字图案生成的图片分辨率非常小(默认32*32),可以实时生成。
所述粒子属性初始化模块820,还可以用于:
根据所述图案信息中的像素位置信息和各个像素的生成时间结合所述目标粒子系统的整体属性信息,初始化所述目标粒子系统的各个粒子的位置信息和生成时间。后续GPU可以在屏幕上还原所述图案信息对应的原始图像,例如上述的目标黑白图像或立体模型图像,从而可以根据由所述图案信息中提取得到的像素位置信息和像素点的生成时间进一步精确粒子系统的各个粒子的显示位置和生成时间,以实现更细化的粒子显示控制。
本发明实施例的粒子系统的处理装置接收CPU发送的粒子系统的整体属性信息后生成粒子,并对生成的粒子进行显示及生命周期的管理,与现有技术相比,本发明实施例大幅减少了与CPU之间的数据传递,降低了等待CPU数据传输的次数与频率,从而有效提高了粒子系统的处理效率。另一方面,现有技术中CPU在处理粒子属性更新时,通常需要两对或更多对的RT保存当前帧及上一帧粒子的位置信息与速度信息,而本发明实施例中粒子系统的处理装置处理粒子属性更新时,只需保存速度信息和位置信息的增量,因此至少可以节省一张位置纹理和一张速度纹理,只需增加一个临时纹理即可实现,而该临时纹理在更新处理后即可释放,尤其在粒子数量庞大的粒子系统的处理过程中可以节省大量显存资源。
图13是本发明另一实施例中的一种粒子系统的处理装置的结构示意图,如图所示本实施例中的粒子系统的处理装置1300可以包括:至少一个处理器CPU1301,GPU1303、显示屏1305,至少一个通信总线1307。其中,通信总线1307用于实现上述组件之间的连接通信。其中GPU1303中包括至少一个着色器Shader,上述一个Shader或多个Shader可以被设置用于执行以下操作:
接收CPU发送的目标粒子系统的整体属性信息,所述目标粒子系统的整体属性信息包括粒子显示范围,粒子生命周期范围,粒子速度范围以及生成时间;
根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性,其中所述各个粒子的粒子属性包括各个粒子的位置信息、速度信息、生命周期以及生成时间;
根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子。
可选的,在执行所述根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子之后,上述一个Shader或多个Shader还可以被设置用于执行以下操作:
根据所述目标粒子系统的粒子的生命周期以及生成时间判断粒子是否死亡,若粒子死亡则停止显示该粒子。
可选的,上述一个Shader或多个Shader还可以被设置用于执行以下操作:
若粒子仍在生命周期中,更新所述目标粒子系统的各个粒子的粒子属性,并显示更新后的所述目标粒子系统的粒子。
可选的,上述一个Shader或多个Shader被设置用于执行初始化目标粒子系统的各个粒子的粒子属性具体包括:
将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理;
上述一个Shader或多个Shader被设置用于执行根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的粒子包括:
采样粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息,从而显示对应粒子;
上述一个Shader或多个Shader被设置用于执行更新所述目标粒子系统的各个粒子的粒子属性具体包括:
更新粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息。
可选的,上述一个Shader或多个Shader被设置用于执行更新粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息具体包括:
根据目标粒子系统的受力状态,计算目标粒子系统中粒子属性与状态相关的粒子的属性变化量,并将所述属性变化量保存在临时渲染纹理,所述属性变化量包括位置变化量和速度变化量;
将所述临时渲染纹理中的位置变化量叠加至对应粒子的位置渲染纹理中的位置信息,将所述临时渲染纹理中的速度变化量叠加至对应粒子的速度渲染纹理中的速度信息。
可选的,所述目标粒子系统的整体属性信息还包括最大粒子发射率和最大生命周期;
在执行将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理之前,上述一个Shader或多个Shader还被设置用于执行:
根据目标粒子系统的最大粒子发射率和最大生命周期,为目标粒子系统分配渲染纹理资源。
可选的,上述一个Shader或多个Shader被设置用于执行根据目标粒子系统的最大粒子发射率和最大生命周期,为目标粒子系统分配渲染纹理资源具体包括:
根据管理空闲渲染纹理资源的多级order链表和伙伴算法从空闲渲染纹理资源中为目标粒子系统分配渲染纹理资源。
可选的,所述整体属性信息还包括目标粒子系统的关键帧数据,所述目标粒子系统的关键帧数据包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色;
上述一个Shader或多个Shader还被设置用于执行:
根据所述目标粒子系统的关键帧数据初始化或更新所述目标粒子系统的各个粒子的粒子属性。
可选的,在执行初始化目标粒子系统的各个粒子的粒子属性之前,上述一个Shader或多个Shader还被设置用于执行:
接收CPU发送的目标粒子系统的图案信息,所述图案信息携带像素位置信息和各个像素的生成时间;
上述一个Shader或多个Shader还被设置用于执行初始化目标粒子系统的各个粒子的粒子属性具体包括:
根据所述图案信息中的像素位置信息和各个像素的生成时间结合所述目标粒子系统的整体属性信息,初始化所述目标粒子系统的各个粒子的位置信息和生成时间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (18)

1.一种粒子系统的处理方法,其特征在于,所述方法包括:
接收CPU发送的目标粒子系统的整体属性信息,所述目标粒子系统的整体属性信息包括粒子显示范围,粒子生命周期范围,粒子速度范围以及生成时间;
根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性,其中所述各个粒子的粒子属性包括各个粒子的位置信息、速度信息、生命周期以及生成时间;
根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子。
2.如权利要求1所述的粒子系统的处理方法,其特征在于,所述根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子之后还包括:
根据所述目标粒子系统的粒子的生命周期以及生成时间判断粒子是否死亡,若粒子死亡则停止显示该粒子。
3.如权利要求2所述的粒子系统的处理方法,其特征在于,所述方法还包括:
若粒子仍在生命周期中,更新所述目标粒子系统的各个粒子的粒子属性,并显示更新后的所述目标粒子系统的粒子。
4.如权利要求3所述的粒子系统的处理方法,其特征在于,所述初始化目标粒子系统的各个粒子的粒子属性包括:
将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理;
所述根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的粒子包括:
采样粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息,从而显示对应粒子;
所述更新所述目标粒子系统的各个粒子的粒子属性包括:
更新粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息。
5.如权利要求4所述的粒子系统的处理方法,其特征在于,所述更新粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息包括:
根据目标粒子系统的受力状态,计算目标粒子系统中粒子属性与状态相关的粒子的属性变化量,并将所述属性变化量保存在临时渲染纹理,所述属性变化量包括位置变化量和速度变化量;
将所述临时渲染纹理中的位置变化量叠加至对应粒子的位置渲染纹理中的位置信息,将所述临时渲染纹理中的速度变化量叠加至对应粒子的速度渲染纹理中的速度信息。
6.如权利要求4所述的粒子系统的处理方法,其特征在于,所述目标粒子系统的整体属性信息还包括最大粒子发射率和最大生命周期;
所述将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理之前,所述方法还包括:
根据目标粒子系统的最大粒子发射率和最大生命周期,为目标粒子系统分配渲染纹理资源。
7.如权利要求6所述的粒子系统的处理方法,其特征在于,所述根据目标粒子系统的最大粒子发射率和最大生命周期,为目标粒子系统分配渲染纹理资源包括:
根据管理空闲渲染纹理资源的多级order链表和伙伴算法从空闲渲染纹理资源中为目标粒子系统分配渲染纹理资源。
8.如权利要求1所述的粒子系统的处理方法,其特征在于,所述整体属性信息还包括目标粒子系统的关键帧数据,所述目标粒子系统的关键帧数据包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色;
所述方法还包括:
根据所述目标粒子系统的关键帧数据初始化或更新所述目标粒子系统的各个粒子的粒子属性。
9.如权利要求1所述的粒子系统的处理方法,其特征在于,所述初始化目标粒子系统的各个粒子的粒子属性之前还包括:
接收CPU发送的目标粒子系统的图案信息,所述图案信息携带像素位置信息和各个像素的生成时间;
所述初始化目标粒子系统的各个粒子的粒子属性包括:
根据所述图案信息中的像素位置信息和各个像素的生成时间结合所述目标粒子系统的整体属性信息,初始化所述目标粒子系统的各个粒子的位置信息和生成时间。
10.一种粒子系统的处理装置,其特征在于,所述装置包括:
整体属性信息接收模块,用于接收CPU发送的目标粒子系统的整体属性信息;
粒子属性初始化模块,用于根据目标粒子系统的整体属性信息生成所述目标粒子系统的粒子并初始化目标粒子系统的各个粒子的粒子属性,其中所述各个粒子的粒子属性包括各个粒子的位置信息、速度信息、生命周期以及生成时间;
粒子显示模块,用于根据所述目标粒子系统中各个粒子的粒子属性显示所述目标粒子系统的各个粒子。
11.如权利要求10所述的粒子系统的处理装置,其特征在于,还包括:
死亡判断模块,用于根据所述目标粒子系统的粒子的生命周期以及生成时间判断粒子是否死亡,若粒子死亡则停止显示该粒子。
12.如权利要求11所述的粒子系统的处理装置,其特征在于,还包括:
粒子属性更新模块,用于在粒子仍在生命周期时,更新所述目标粒子系统的各个粒子的粒子属性,并显示更新后的所述目标粒子系统的粒子。
13.如权利要求12所述的粒子系统的处理装置,其特征在于,所述粒子属性初始化模块具体用于:
将粒子的位置信息和生成时间保存在位置渲染纹理,将粒子的速度信息和生命周期保存在速度渲染纹理;
所述粒子显示模块具体用于:
采样粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息,从而显示对应粒子;
所述粒子属性更新模块具体用于:
更新粒子在位置渲染纹理中保存的位置信息和在速度渲染纹理中保存的速度信息。
14.如权利要求13所述的粒子系统的处理装置,其特征在于,所述粒子属性更新模块包括:
属性变化量保存单元,用于根据目标粒子系统的受力状态,计算目标粒子系统中粒子属性与状态相关的粒子的属性变化量,并将所述属性变化量保存在临时渲染纹理,所述属性变化量包括位置变化量和速度变化量;
属性变化量叠加单元,用于将所述临时渲染纹理中的位置变化量叠加至对应粒子的位置渲染纹理中的位置信息,将所述临时渲染纹理中的速度变化量叠加至对应粒子的速度渲染纹理中的速度信息。
15.如权利要求13所述的粒子系统的处理装置,其特征在于,所述目标粒子系统的整体属性信息还包括最大粒子发射率和最大生命周期;
所述装置还包括:
纹理资源分配模块,用于根据目标粒子系统的最大粒子发射率和最大生命周期,为目标粒子系统分配渲染纹理资源。
16.如权利要求15所述的粒子系统的处理装置,其特征在于,所述纹理资源分配模块具体用于:
根据管理空闲渲染纹理资源的多级order链表和伙伴算法从空闲渲染纹理资源中为目标粒子系统分配渲染纹理资源。
17.如权利要求10所述的粒子系统的处理装置,其特征在于,所述整体属性信息还包括目标粒子系统的关键帧数据,所述目标粒子系统的关键帧数据包括至少一个关键帧对应时间的显示对象位置、变化速度或者显示颜色;
所述粒子属性初始化模块,还用于根据所述目标粒子系统的关键帧数据初始化所述目标粒子系统的各个粒子的粒子属性;
所述装置还包括:
所述粒子属性更新模块,用于根据所述目标粒子系统的关键帧数据更新所述目标粒子系统的各个粒子的粒子属性。
18.如权利要求10所述的粒子系统的处理装置,其特征在于,所述装置还包括:
图案信息接收模块,用于接收CPU发送的目标粒子系统的图案信息,所述图案信息包括像素位置信息和各个像素的生成时间;
所述粒子属性初始化模块具体用于:
根据所述图案信息中的像素位置信息和各个像素的生成时间结合所述目标粒子系统的整体属性信息,初始化所述目标粒子系统的各个粒子的位置信息和生成时间。
CN201610324183.1A 2016-05-16 2016-05-16 一种粒子系统的处理方法及装置 Active CN107392835B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610324183.1A CN107392835B (zh) 2016-05-16 2016-05-16 一种粒子系统的处理方法及装置
KR1020187018114A KR102047615B1 (ko) 2016-05-16 2017-05-11 입자 시스템을 위한 처리 방법 및 장치
PCT/CN2017/083917 WO2017198104A1 (zh) 2016-05-16 2017-05-11 一种粒子系统的处理方法及装置
US16/052,265 US10699365B2 (en) 2016-05-16 2018-08-01 Method, apparatus, and storage medium for processing particle system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610324183.1A CN107392835B (zh) 2016-05-16 2016-05-16 一种粒子系统的处理方法及装置

Publications (2)

Publication Number Publication Date
CN107392835A true CN107392835A (zh) 2017-11-24
CN107392835B CN107392835B (zh) 2019-09-13

Family

ID=60325664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610324183.1A Active CN107392835B (zh) 2016-05-16 2016-05-16 一种粒子系统的处理方法及装置

Country Status (4)

Country Link
US (1) US10699365B2 (zh)
KR (1) KR102047615B1 (zh)
CN (1) CN107392835B (zh)
WO (1) WO2017198104A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665531A (zh) * 2018-05-08 2018-10-16 阿里巴巴集团控股有限公司 3d粒子模型的变换方法及装置
CN109903359A (zh) * 2019-03-15 2019-06-18 广州市百果园网络科技有限公司 一种粒子的显示方法、装置、移动终端和存储介质
CN110213638A (zh) * 2019-06-05 2019-09-06 北京达佳互联信息技术有限公司 动画显示方法、装置、终端及存储介质
CN110415326A (zh) * 2019-07-18 2019-11-05 成都品果科技有限公司 一种粒子效果的实现方法及装置
CN111815749A (zh) * 2019-09-03 2020-10-23 厦门雅基软件有限公司 粒子计算方法、装置、电子设备及计算机可读存储介质
CN112215932A (zh) * 2020-10-23 2021-01-12 网易(杭州)网络有限公司 粒子动画处理方法、装置、存储介质及计算机设备
CN112270732A (zh) * 2020-11-17 2021-01-26 Oppo广东移动通信有限公司 粒子动画的生成方法、处理装置、电子设备和存储介质
CN117194055A (zh) * 2023-11-06 2023-12-08 西安芯云半导体技术有限公司 Gpu显存申请及释放的方法、装置及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109191550B (zh) * 2018-07-13 2023-03-14 卓米私人有限公司 一种粒子渲染方法、装置、电子设备及存储介质
CN108933895A (zh) * 2018-07-27 2018-12-04 北京微播视界科技有限公司 三维粒子特效生成方法、装置和电子设备
CN112700518B (zh) * 2020-12-28 2023-04-07 北京字跳网络技术有限公司 拖尾视觉效果的生成方法、视频的生成方法、电子设备
CN113763701B (zh) * 2021-05-26 2024-02-23 腾讯科技(深圳)有限公司 路况信息的显示方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1753031A (zh) * 2005-11-10 2006-03-29 北京航空航天大学 基于gpu的粒子系统
CN102426692A (zh) * 2011-08-18 2012-04-25 北京像素软件科技股份有限公司 粒子绘制方法
CN102982506A (zh) * 2012-11-13 2013-03-20 沈阳信达信息科技有限公司 基于gpu的粒子系统优化
CN103714568A (zh) * 2013-12-31 2014-04-09 北京像素软件科技股份有限公司 一种大规模粒子系统的实现方法
CN104022756A (zh) * 2014-06-03 2014-09-03 西安电子科技大学 一种基于gpu架构的改进的粒子滤波方法
CN104143208A (zh) * 2013-05-12 2014-11-12 哈尔滨点石仿真科技有限公司 一种大规模真实感雪景实时渲染方法
CN104700446A (zh) * 2015-03-31 2015-06-10 境界游戏股份有限公司 一种粒子系统中粒子顶点数据的更新方法
CN104778737A (zh) * 2015-03-23 2015-07-15 浙江大学 基于gpu的大规模落叶实时渲染方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0104931D0 (en) * 2001-02-28 2001-04-18 Univ Leeds object interaction simulation
US20060155576A1 (en) * 2004-06-14 2006-07-13 Ryan Marshall Deluz Configurable particle system representation for biofeedback applications
CN101529468B (zh) * 2006-10-27 2013-06-05 汤姆森许可贸易公司 用于从二维图像中恢复三维粒子系统的系统和方法
KR100898989B1 (ko) * 2006-12-02 2009-05-25 한국전자통신연구원 물 표면의 포말 생성 및 표현 장치와 그 방법
KR100889601B1 (ko) * 2006-12-04 2009-03-20 한국전자통신연구원 물 파티클 데이터를 이용한 물결과 거품 표현 장치 및 방법
CN101452582B (zh) * 2008-12-18 2013-09-18 北京中星微电子有限公司 一种实现三维视频特效的方法和装置
US8289327B1 (en) * 2009-01-21 2012-10-16 Lucasfilm Entertainment Company Ltd. Multi-stage fire simulation
CN102722859B (zh) * 2012-05-31 2014-05-14 北京像素软件科技股份有限公司 一种计算机仿真场景渲染方法
CN104571993B (zh) * 2014-12-30 2018-01-30 北京像素软件科技股份有限公司 粒子系统的处理方法、显卡和移动应用平台
US9905038B2 (en) * 2016-02-15 2018-02-27 Nvidia Corporation Customizable state machine for visual effect insertion

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1753031A (zh) * 2005-11-10 2006-03-29 北京航空航天大学 基于gpu的粒子系统
CN102426692A (zh) * 2011-08-18 2012-04-25 北京像素软件科技股份有限公司 粒子绘制方法
CN102982506A (zh) * 2012-11-13 2013-03-20 沈阳信达信息科技有限公司 基于gpu的粒子系统优化
CN104143208A (zh) * 2013-05-12 2014-11-12 哈尔滨点石仿真科技有限公司 一种大规模真实感雪景实时渲染方法
CN103714568A (zh) * 2013-12-31 2014-04-09 北京像素软件科技股份有限公司 一种大规模粒子系统的实现方法
CN104022756A (zh) * 2014-06-03 2014-09-03 西安电子科技大学 一种基于gpu架构的改进的粒子滤波方法
CN104778737A (zh) * 2015-03-23 2015-07-15 浙江大学 基于gpu的大规模落叶实时渲染方法
CN104700446A (zh) * 2015-03-31 2015-06-10 境界游戏股份有限公司 一种粒子系统中粒子顶点数据的更新方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
单宇翔 等: "大规模雪场景的实时绘制", 《计算机辅助设计与图形学学报》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665531A (zh) * 2018-05-08 2018-10-16 阿里巴巴集团控股有限公司 3d粒子模型的变换方法及装置
CN109903359A (zh) * 2019-03-15 2019-06-18 广州市百果园网络科技有限公司 一种粒子的显示方法、装置、移动终端和存储介质
CN110213638A (zh) * 2019-06-05 2019-09-06 北京达佳互联信息技术有限公司 动画显示方法、装置、终端及存储介质
CN110213638B (zh) * 2019-06-05 2021-10-08 北京达佳互联信息技术有限公司 动画显示方法、装置、终端及存储介质
CN110415326A (zh) * 2019-07-18 2019-11-05 成都品果科技有限公司 一种粒子效果的实现方法及装置
CN111815749A (zh) * 2019-09-03 2020-10-23 厦门雅基软件有限公司 粒子计算方法、装置、电子设备及计算机可读存储介质
WO2021043128A1 (zh) * 2019-09-03 2021-03-11 厦门雅基软件有限公司 粒子计算方法、装置、电子设备及计算机可读存储介质
CN112215932A (zh) * 2020-10-23 2021-01-12 网易(杭州)网络有限公司 粒子动画处理方法、装置、存储介质及计算机设备
CN112215932B (zh) * 2020-10-23 2024-04-30 网易(杭州)网络有限公司 粒子动画处理方法、装置、存储介质及计算机设备
CN112270732A (zh) * 2020-11-17 2021-01-26 Oppo广东移动通信有限公司 粒子动画的生成方法、处理装置、电子设备和存储介质
CN117194055A (zh) * 2023-11-06 2023-12-08 西安芯云半导体技术有限公司 Gpu显存申请及释放的方法、装置及存储介质
CN117194055B (zh) * 2023-11-06 2024-03-08 西安芯云半导体技术有限公司 Gpu显存申请及释放的方法、装置及存储介质

Also Published As

Publication number Publication date
CN107392835B (zh) 2019-09-13
US10699365B2 (en) 2020-06-30
US20180342041A1 (en) 2018-11-29
KR102047615B1 (ko) 2019-11-21
KR20180087356A (ko) 2018-08-01
WO2017198104A1 (zh) 2017-11-23

Similar Documents

Publication Publication Date Title
CN107392835A (zh) 一种粒子系统的处理方法及装置
Gaboury Image objects: An archaeology of computer graphics
CN106548500A (zh) 一种基于gpu的二维态势图像处理方法及装置
EP0974121A1 (en) System and method for realistic terrain simulation
CN115701305A (zh) 阴影筛选
CN110517345A (zh) 一种三维模型渲染的方法及装置
CN113706504A (zh) 一种残影处理方法、装置、存储介质及电子设备
Zhang et al. An educational tool based on virtual construction site visit game
CN105164636B (zh) 一种虚拟化环境中的数据通信的方法、装置及处理器
CN112580213A (zh) 电场线的显示图像的生成方法和装置、存储介质
CN110719415B (zh) 一种视频图像处理方法、装置、电子设备及计算机可读介质
US9754423B2 (en) System and method for rendering virtual contaminants
CN114245031B (zh) 图像展示方法、装置、电子设备及存储介质
CN105612558A (zh) 用于处理图像的装置和方法
Kirar et al. Review paper on the generation of computer graphics
CN113694518A (zh) 一种冰冻效果的处理方法、装置、存储介质及电子设备
CN110662099B (zh) 用于显示弹幕的方法和装置
De Gyves et al. Proximity queries for crowd simulation using truncated Voronoi diagrams
US9754408B2 (en) System and method for modeling virtual contaminants
Luo et al. Dual‐space ray casting for height field rendering
Schmid Real-Time Snow Simulation-Integrating Weather Data and Cloud Rendering
Hempe et al. Efficient real-time generation and rendering of interactive grass and shrubs for large sceneries
Zhang et al. Game-based active learning for built environment students
Huy Nikkilä et al. Today's Space Weather in the Planetarium: visualization and feature extraction pipeline for astrophysical observation and simulation data
CN115545845A (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
GR01 Patent grant
GR01 Patent grant