粒子特效处理方法及装置与流程

文档序号:14475301阅读:363来源:国知局
粒子特效处理方法及装置与流程

本发明涉及计算机图形技术领域,具体而言,涉及一种粒子特效处理方法及装置。



背景技术:

在三维渲染程序中,粒子系统是整个程序模块中不可或缺的部分,适当的在场景中添加粒子特效,能极大丰富场景内容,让整个场景更加生动。一般的粒子特效都选择使用始终朝向相机的一个片进行渲染,这样能以较小的渲染代价实现较为丰富的效果,但是在这种方式下,当粒子特效与地形或者场景中其他物体接触时会产生很明显的切边。现有技术中,一般通过要求场景在设计过程中减少特效与场景物体的接触,避免出现切边的情况。这种方式虽然能在一定程度上避免切边的问题出现,但是并不能从根本上解决出现切边的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种粒子特效处理方法及装置,以解决上述问题。

本发明的较佳实施例提供一种粒子特效处理方法,所述方法包括:

对待处理的全场景进行渲染,以获得所述全场景的深度信息及颜色信息,所述全场景包括粒子特效及场景物体;

将所述深度信息写入深度纹理,将所述颜色信息写入颜色纹理;

对渲染后的全场景中的粒子特效进行再次渲染,获得经过再次渲染后的粒子特效中的各像素点的深度值;

对获得的各所述像素点的深度值进行透视变换,获得透视变换后的各所述像素点的深度值;

计算透视变换前后各所述像素点的深度值的差值,将差值小于预设阈值的像素点作为待处理像素点,对所述待处理像素点进行模糊处理。

可选地,在上述方法中,所述对所述待处理像素点进行模糊处理的步骤之后,所述方法还包括:

获取模糊处理后的待处理像素点的颜色值,将所述颜色值写入所述颜色纹理中。

可选地,在上述方法中,所述对所述待处理像素点进行模糊处理的步骤,包括:

采样获得与所述待处理像素点相邻的多个相邻像素点;

根据所述颜色纹理获得所述待处理像素点的颜色值以及所述多个相邻像素点的颜色值;

计算得到所述待处理像素点和所述多个相邻像素点的颜色值的平均值,将所述平均值作为所述待处理像素点的当前的颜色值。

可选地,在上述方法中,所述采样获得与所述待处理像素点相邻的多个相邻像素点的步骤,包括:

获得所述待处理像素点进行透视变换前后的深度值的差值,根据所述差值计算得到模糊系数;

根据所述模糊系统计算得到采样步长;

根据所述采样步长采样获得与所述待处理像素点相邻的多个相邻像素点。

可选地,在上述方法中,所述获得经过再次渲染后的粒子特效中的各像素点的深度值的步骤,包括:

获得经过再次渲染后的粒子特效中各像素点的坐标值;

根据各所述像素点的坐标值获得所述深度纹理中与各所述坐标值对应位置处的深度值,以得到各所述像素点对应的深度值。

本发明的另一较佳实施例提供一种粒子特效处理装置,所述装置包括:

第一渲染模块,用于对待处理的全场景进行渲染,以获得所述全场景的深度信息及颜色信息,所述全场景包括粒子特效及场景物体;

写入模块,用于将所述深度信息写入深度纹理,将所述颜色信息写入颜色纹理;

第二渲染模块,用于对渲染后的全场景中的粒子特效进行再次渲染,获得经过再次渲染后的粒子特效中的各像素点的深度值;

透视变换模块,用于对获得的各所述像素点的深度值进行透视变换,获得透视变换后的各所述像素点的深度值;

计算模块,用于计算透视变换前后各所述像素点的深度值的差值;

模糊处理模块,用于将差值小于预设阈值的像素点作为待处理像素点,对所述待处理像素点进行模糊处理。

可选地,在上述装置中,所述装置还包括:

颜色值获取模块,用于获取模糊处理后的待处理像素点的颜色值,将所述颜色值写入所述颜色纹理中。

可选地,在上述装置中,所述模糊处理模块包括采样单元、颜色值获取单元以及计算单元;

所述采样单元用于采样获得与所述待处理像素点相邻的多个相邻像素点;

所述颜色值获取单元用于根据所述颜色纹理获得所述待处理像素点的颜色值以及所述多个相邻像素点的颜色值;

所述计算单元用于计算得到所述待处理像素点和所述多个相邻像素点的颜色值的平均值,将所述平均值作为所述待处理像素点的当前的颜色值。

可选地,在上述装置中,所述采样单元包括模糊系数计算子单元、采样步长计算子单元以及采样子单元;

所述模糊系数计算子单元用于获得所述待处理像素点进行透视变换前后的深度值的差值,根据所述差值计算得到模糊系数;

所述采样步长计算子单元用于根据所述模糊系统计算得到采样步长;

所述采样子单元用于根据所述采样步长采样获得与所述待处理像素点相邻的多个相邻像素点。

可选地,在上述装置中,所述第二渲染模块包括坐标值获取单元以及深度值获取单元;

所述坐标值获取单元用于获得经过再次渲染后的粒子特效中各像素点的坐标值;

所述深度值获取单元用于根据各所述像素点的坐标值获得所述深度纹理中与各所述坐标值对应位置处的深度值,以得到各所述像素点对应的深度值。

本发明实施例提供的粒子特效处理方法及装置,通过对包含粒子特效和场景物体的全场景进行渲染以得到全场景的深度信息及颜色信息,再对经过渲染后的特效粒子进行再次渲染,获得再次渲染后的粒子特效中的各像素点的深度值。对获得的像素点的深度值进行透视变换,获得透视变换后的像素点的深度值。计算透视变化前后各像素点的深度值的差值,将差值小于预设阈值的像素点作为待处理像素点,对待处理像素点进行模糊处理。本发明实施例提供的粒子特效处理方案,可根据粒子特效中各像素点进行透视变换前后的深度值的差值情况来确定离场景物体较近的像素点,以对该像素点进行模糊处理,解决了粒子特效与场景物体相接时出现的切边问题。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的一种电子设备的结构框图。

图2为本发明较佳实施例提供的粒子特效处理方法的流程图。

图3为图2中步骤s103的子步骤的流程图。

图4为图2中步骤s105的子步骤的流程图。

图5为图4中步骤s1051的子步骤的流程图。

图6为本发明较佳实施例提供的特效处理装置的功能模块框图。

图7为本发明较佳实施例提供的模糊处理模块的功能模块框图。

图8为本发明较佳实施例提供的采样单元的功能模块框图。

图9为本发明较佳实施例提供的第二渲染模块的功能模块框图。

图标:100-电子设备;110-粒子特效处理装置;111-第一渲染模块;112-写入模块;113-第二渲染模块;1131-坐标值获取单元;1132-深度值获取单元;114-透视变换模块;115-计算模块;116-模糊处理模块;1161-采样单元;11611-模糊系数计算子单元;11612-采样步长计算子单元;11613-采样子单元;1162-颜色值获取单元;1163-计算单元;117-颜色值获取模块;120-处理器;130-存储器。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

请参阅图1,为本发明实施例提供的电子设备100的方框示意图。在本实施例中,所述电子设备100包括粒子特效处理装置110、处理器120以及存储器130。其中,所述存储器130与处理器120之间直接或间接地电性连接,以实现数据的传输或交互。所述粒子特效处理装置110包括至少一个可以软件或固件的形式存储于所述存储器130中或固化在所述电子设备100的操作系统中的软件功能模块。所述处理器120用于执行存储器130中存储的可执行模块,例如所述粒子特效处理装置110包括的软件功能模块或计算机程序,以对粒子特效进行处理。

本实施例中,所述电子设备100可以是,但不限于具有数据处理及图像处理能力的终端设备,例如个人电脑、笔记本电脑等。

如图2所示,是本发明实施例提供的一种应用于图1所示的电子设备100的粒子特效处理方法的示意性流程图。所应说明的是,本实施例提供的方法不以图2及以下所述的顺序为限制。下面将对图2所示的具体流程进行详细的阐述。

步骤s101,对待处理的全场景进行渲染,以获得所述全场景的深度信息及颜色信息,所述全场景包括粒子特效及场景物体。

步骤s102,将所述深度信息写入深度纹理,将所述颜色信息写入颜色纹理。

粒子特效是一种在三维软件中用于模拟现实中的火、气泡等效果的模块。在场景中添加粒子特效能极大丰富场景内容,让场景更加生动。但若粒子特效与场景中的地形或场景物体接触会产生明显的切边,影响显示效果。因此,本发明提出了一种借助场景深度信息处理粒子特效与场景物体接触时产生切边的问题。

可选地,在本实施例中,预先对包括粒子特效以及场景物体的全场景进行渲染,以获得所述全场景中各像素点的深度信息及颜色信息。并将获得的多个深度信息写入到一张深度纹理depthtex中,将获得的多个颜色信息写入到一张颜色纹理colortex中。

步骤s103,对渲染后的全场景中的粒子特效进行再次渲染,获得经过再次渲染后的粒子特效中的各像素点的深度值。

请参阅图3,在本实施例中,步骤s103可以包括步骤s1031以及步骤s1032两个子步骤。

步骤s1031,获得经过再次渲染后的粒子特效中各像素点的坐标值。

步骤s1032,根据各所述像素点的坐标值获得所述深度纹理中与各所述坐标值对应位置处的深度值,以得到各所述像素点对应的深度值。

在本实施中,在对全场景进行渲染之后,选择出全场景中的粒子特效,对经过渲染的粒子特效进行再次渲染。可选地,针对再次渲染之后的粒子特效中的每一个像素点,获得各像素点当前在裁剪空间中的坐标值posclip。根据获得的各像素点当前在裁剪空间中的坐标值从得到的深度纹理中进行采样,以获得深度纹理中与各像素点当前坐标值对应位置处的深度值。其中,所获得的深度值即为像素点的深度值depth。可选地,在本实施例中,可利用透视投影的透视除法方式根据像素点在裁剪空间中的坐标值,获得其在深度纹理中的对应位置的纹理坐标。需要说明的是,由于在裁剪空间中位置信息是在-1到1之间,而深度纹理中纹理坐标是在0到1之间,因此在透视投影的透视除法的基础上,还应考虑将坐标值的范围从-1到1转换为0到1之间,例如在透视除法部分之后可整体乘以0.5,再加上0.5来实现区间的转换。关于透视投影的除法部分为本领域的常规方法,在本实施例中不再赘述。

步骤s104,对获得的各所述像素点的深度值进行透视变换,获得透视变换后的各所述像素点的深度值。

由于深度纹理中所保存的深度值并不是线性变化的,所以需要将从深度纹理中采样获得的各像素点的深度值还原至相机空间中。在本实施例中,在从深度纹理中采样获得再次渲染后的粒子特效中的各像素点的深度值之后,对各像素点的深度值进行透视变换以将其还原至相机空间。可选地,在本实施例中,可利用透视投影矩阵来进行像素点的透视变换以获得透视变换后的各像素点的深度值。需要说明的是,利用透视投影矩阵进行透视变换的方式为本领域的常规方式,本实施例不再赘述。

步骤s105,计算透视变换前后各所述像素点的深度值的差值,将差值小于预设阈值的像素点作为待处理像素点,对所述待处理像素点进行模糊处理。

在本实施例中,可通过计算透视变换前后各像素点的深度值的差值来确定粒子特效中的各像素点与全场景中的场景物体的距离情况。可选地,依次计算透视变换前后各像素点的深度值的差值,将计算得到的差值与预设阈值进行比较。若计算得到的差值小于所述预设阈值,则表明对应的像素点距离全场景中的场景物体较近,可能会出现与该场景物体相接而产生切边现象。在本实施例中,粒子特效中各像素点的深度值可简单理解为像素点到相机的距离,在将粒子特效中的每一个像素点渲染到屏幕上的过程中,都会将像素点到相机的距离和之前场景中像素点到相机的距离进行比较,即透视变换前的像素点。若两者之间的距离值相差不大,则表明其可能会出现切边现象。因此,可将该像素点确定为待处理像素点,对该待处理像素点进行模糊处理,以避免该像素点与场景物体相接时出现切边明显现象。

请参阅图4,在本实施例中,步骤s105可以包括步骤s1051、步骤s1052以及步骤s1053三个子步骤。

步骤s1051,采样获得与所述待处理像素点相邻的多个相邻像素点。

请参阅图5,在本实施例中,步骤s1051可以包括步骤s10511、步骤s10512以及步骤s10513三个子步骤。

步骤s10511,获得所述待处理像素点进行透视变换前后的深度值的差值,根据所述差值计算得到模糊系数。

步骤s10512,根据所述模糊系统计算得到采样步长。

步骤s10513,根据所述采样步长采样获得与所述待处理像素点相邻的多个相邻像素点。

可选地,在本实施例中,可利用待处理像素点周围的多个相邻像素点来对待处理像素点进行模糊处理。可对待处理像素点周围的多个相邻像素点进行采样,结合该多个相邻像素点的颜色值来对待处理像素点进行模糊处理。

在本实施例中,可获取所述待处理像素点进行透视变换前后的深度值的差值offset,根据其差值按以下方式计算得到模糊系数blurfactor:

blurfactor=clamp(1.0f/offset,0.0f,10.0f)

上述表示的是将1.0f/offset的这个结果限制在0到10之间,即若计算结果小于10最后获得的结果也是10。

在本实施例中,根据计算得到的模糊系数blurfactor得到采样步长fstep。可选地,在本实施例中,通过将所述模糊系数乘以0.0015得到对应的采样步长,fstep=0.0015*blurfactor。

在获得采样步长后,根据该采样步长来对待处理像素点周围的多个相邻像素点进行采样。在本实施例中,基于该采样步长以该待处理像素点为圆心,分别获得该待处理像素点的左上、左下、右上以及右下分别四个相邻像素点。

步骤s1052,根据所述颜色纹理获得所述多个相邻像素点中各所述相邻像素点的颜色值。

步骤s1053,计算多个所述相邻像素点的颜色值的平均值,将所述平均值作为所述待处理像素点的当前的颜色值。

在本实施例中,对所述待处理像素点进行模糊处理可以理解为将该待处理像素点的颜色值取为与其相邻的多个像素点的颜色值的均值。可选地,采样获得与待处理像素点相邻的多个相邻像素点后,根据各所述相邻像素点的坐标值,从所述颜色纹理中获得各相邻像素点的颜色值。计算多个相邻像素点的颜色值的平均值,将该平均值作为该待处理像素点的当前的颜色值,以此来实现对该待处理像素点的模糊处理。以避免该待处理像素点与场景中的其他场景物体相接时出现切边现象。

可选地,在本实施例中,所述粒子特效处理方法还包括以下步骤:

步骤s106,获取模糊处理后的待处理像素点的颜色值,将所述颜色值写入所述颜色纹理中。

在本实施例中,在对待处理像素点进行模糊处理之后,将待处理像素点的当前的颜色值写入至颜色纹理中以保存。

请参阅图6,为本发明实施例提供的一种特效处理装置的功能模块框图。所述特效处理装置应用于上述的电子设备100,所述特效处理装置包括第一渲染模块111、写入模块112、第二渲染模块113、透视变换模块114、计算模块115以及模糊处理模块116。

所述第一渲染模块111用于对待处理的全场景进行渲染,以获得所述全场景的深度信息及颜色信息,所述全场景包括粒子特效及场景物体。

所述写入模块112用于将所述深度信息写入深度纹理,将所述颜色信息写入颜色纹理。

所述第二渲染模块113用于对渲染后的全场景中的粒子特效进行再次渲染,获得经过再次渲染后的粒子特效中的各像素点的深度值。

所述透视变换模块114用于对获得的各所述像素点的深度值进行透视变换,获得透视变换后的各所述像素点的深度值。

所述计算模块115用于计算透视变换前后各所述像素点的深度值的差值。

所述模糊处理模块116用于将差值小于预设阈值的像素点作为待处理像素点,对所述待处理像素点进行模糊处理。

在本实施例中,所述特效处理装置还包括颜色值获取模块117,所述颜色值获取模块117用于获取模糊处理后的待处理像素点的颜色值,将所述颜色值写入所述颜色纹理中。

请参阅图7,在本实施例中,所述模糊处理模块116包括采样单元1161、颜色值获取单元1162以及计算单元1163。

所述采样单元1161用于采样获得与所述待处理像素点相邻的多个相邻像素点。

所述颜色值获取单元1162用于根据所述颜色纹理获得所述待处理像素点的颜色值以及所述多个相邻像素点的颜色值。

所述计算单元1163用于计算得到所述待处理像素点和所述多个相邻像素点的颜色值的平均值,将所述平均值作为所述待处理像素点的当前的颜色值。

请参阅图8,在本实施例中,所述采样单元1161包括模糊系数计算子单元11611、采样步长计算子单元11612以及采样子单元11613。

所述模糊系数计算子单元11611用于获得所述待处理像素点进行透视变换前后的深度值的差值,根据所述差值计算得到模糊系数。

所述采样步长计算子单元11612用于根据所述模糊系统计算得到采样步长。

所述采样子单元11613用于根据所述采样步长采样获得与所述待处理像素点相邻的多个相邻像素点。

请参阅图9,在本实施例中,所述第二渲染模块113包括坐标值获取单元1131以及深度值获取单元1132。

所述坐标值获取单元1131用于获得经过再次渲染后的粒子特效中各像素点的坐标值。

所述深度值获取单元1132用于根据各所述像素点的坐标值获得所述深度纹理中与各所述坐标值对应位置处的深度值,以得到各所述像素点对应的深度值。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的各功能模块的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本发明实施例提供的粒子特效处理方法及装置,通过对包含粒子特效和场景物体的全场景进行渲染以得到全场景的深度信息及颜色信息,再对经过渲染后的特效粒子进行再次渲染,获得再次渲染后的粒子特效中的各像素点的深度值。对获得的像素点的深度值进行透视变换,获得透视变换后的像素点的深度值。计算透视变化前后各像素点的深度值的差值,将差值小于预设阈值的像素点作为待处理像素点,对待处理像素点进行模糊处理。本发明实施例提供的粒子特效处理方案,可根据粒子特效中各像素点进行透视变换前后的深度值的差值情况来确定离场景物体较近的像素点,以对该像素点进行模糊处理,解决了粒子特效与场景物体相接时出现的切边问题。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1