一种内容相关的GPU实时粒子特效方法与流程

文档序号:26846067发布日期:2021-10-09 00:29阅读:239来源:国知局
一种内容相关的GPU实时粒子特效方法与流程
一种内容相关的gpu实时粒子特效方法
技术领域
1.本发明涉及图像处理相关技术领域,尤其是指一种内容相关的gpu实时粒子特效方法。


背景技术:

2.粒子系统是计算机图形学中用于模拟特定现象或视觉效果的常用技术之一,它在模仿自然现象、物理特效等方面上独具优势,它能够实现一些真实自然且具备随机性的效果,如火焰、爆炸、烟雾、水流、雨雪等。粒子系统因其丰富视觉效果和灵活的表现,在图像处理、视频剪辑、游戏特效等领域有着广泛的应用。
3.粒子系统的组成部分包括粒子群、发射器、影响器和渲染器等模块,它通过参数更新和物理模拟阶段,将特定形状的三维粒子利用纹理贴图等方法渲染并呈现给用户。现有的粒子系统是通过为视频/图像画面增添辅助元素来丰富视觉效果表现力的,而粒子的大小、位置、颜色、形状、纹理与画面内容无关。
4.将视频/图片画面内容与粒子系统相结合,可以进一步增强粒子效果丰富度及其表现力,也是当前研究热点之一。同时,在当前移动互联网时代,连接设备的品种丰富多样,但硬件资源和计算能力却相对有限,如何充分利用计算设备能力以支撑实时渲染的粒子系统,变成了一大难点。


技术实现要素:

5.本发明是为了克服现有技术中存在上述的不足,提供了一种支撑实时渲染的内容相关的gpu实时粒子特效方法。
6.为了实现上述目的,本发明采用以下技术方案:
7.一种内容相关的gpu实时粒子特效方法,具体包括如下步骤:
8.(1)根据具体应用场景需要选择合适的粒子效果模板,或根据需求设置粒子系统的初始参数;
9.(2)采用光流算法,利用gpu并行处理能力,实时分析视频/图片画面内容,计算图像的亮度、梯度及相邻视频帧的位移变化量,利用canny算子提取画面内容的边缘轮廓;
10.(3)利用显著性算法和物体分割算法,进行视频/图像的智能分析并获取视频的感兴趣区域、主要对象和遮罩信息;
11.(4)根据粒子效果模板及规则,选择画面区域作为粒子的发射区域,以发射区域为中心随机生成和排布粒子;
12.(5)编写自定义gpu计算着色器,并结合画面内容的亮度、梯度和相邻视频帧的位移变化量,实现调节和控制粒子的更新迭代过程;
13.(6)基于三维图形渲染及影视后处理特效技术,渲染和绘制粒子,根据场景和效果需求,应用遮罩信息以实现粒子特效效果。
14.上述方法根据视频/图片画面内容及时间/空间变化,通过调节并控制粒子的大
小、方向、位置、速度、加速度、旋转、形状、颜色、透明度、纹理、灯光、生命周期、运动轨迹等粒子及发射器参数,可以实现品类更加丰富,沉浸真实感更强,视觉效果更自然的粒子效果;结合深度神经网络等机器学习技术,智能分析并获取视频/图片感兴趣区域,提取主要物体及遮罩信息,可以模拟并实现出更加贴合物理真实的视觉特效;充分利用现代gpu高效且强大的并行流水线处理能力,采用光流法在gpu中实时分析视频/图片画面内容,提取空间和时间的变化过程和运动向量,并利用计算着色器调节并控制粒子参数变化及更新过程,大大提高了算法的处理效率,降低了cpu负载,满足实时性处理要求;可便捷地模板化粒子物理模拟和图形渲染过程,级联其他影视后期处理滤镜,丰富粒子的视觉效果,增强物理真实感。
15.作为优选,在步骤(1)中,粒子系统的初始参数包括贴图纹理、基础形状、基本尺寸、初始速度、灯光阴影、发射速度。
16.作为优选,在步骤(2)中,假设输入图像i的颜色空间为rgb,其他颜色空间的图像按照标准公式转换到rgb颜色空间,t时刻图像(x,y)坐标处rgb颜色值为[r
t
(x,y),g
t
(x,y),b
t
(x,y)],那么t时刻图像(x,y)坐标处的亮度计算公式为:l
t
(x,y)=r
t
(x,y)*0.2126+g
t
(x,y)*0.7152+b
t
(x,y)*0.0722。
[0017]
作为优选,在步骤(2)中,在获得t时刻整幅图像的亮度值l
t
后,利用sobel算子在每个坐标(x,y)的3x3区域中计算图像的水平方向梯度g
ht
和垂直方向的梯度g
vt
,其计算公式为:
[0018]
g
ht
(x,y)=l
t
(x+1,y

1)+2.0*l
t
(x+1,y)+l
t
(x+1,y+1)

l
t
(x

1,y

1)

2.0*l
t
(x

1,y)+l
t
(x

1,y+1)
[0019]
g
vt
(x,y)=l
t
(x

1,y+1)+2.0*l
t
(x,y+1)+l
t
(x+1,y+1)

l
t
(x

1,y

1)

2.0*l
t
(x,y

1)+l
t
(x+1,y

1)
[0020]
而图像的梯度幅值计算公式为:
[0021][0022]
利用canny算法过滤非极值,并使用上下阈值以获得图像的边缘轮廓。
[0023]
作为优选,在步骤(2)中,根据光流算法的亮度恒定和光流场平滑的两个基本假设,同一目标物体运动时,其亮度不会发生明显改变,时间的变化也不会引起目标物体位置的剧烈变化,相邻帧的目标物体位移较小;假设某一个目标物体t时刻(x,y)坐标处的亮度l
t
(x,y),经过间隔时间dt移动了(dx,dy)距离,根据亮度恒定假设,l
t
(x,y)=l
t+dt
(x+dx,y+dy),对等式右边进行泰勒级数展开,得到
[0024][0025][0026]
δ表示二阶变化量,可忽略,对等式两边同除以dt后得到:
[0027]
[0028]
其中和分边表示图像水平方向和垂直方向的导数,即图像梯度g
ht
和g
vt
,表示图像在时间维度的变化量,而和则表示光流沿着水平方向和垂直方向的速度矢量,定义为即为相邻视频帧的位移变化量。
[0029]
作为优选,在步骤(3)中,视频/图像内容中包含人脸/人像/人体这些主要对象的区域为视频/图像的感兴趣区域,而遮罩信息则表示感兴趣区或主要对象的黑白掩膜图像。
[0030]
作为优选,在步骤(4)中,具体为:在感兴趣区域、主体对象、边缘轮廓和运动轨迹四个候选区域中选择一个作为粒子发射区域,并根据参数随机生成和排布粒子,其中感兴趣区域和主体对象为显著性算法或物体分割算法的输出结果,而边缘轮廓和运动轨迹则是光流算法的输出结果;当选择感兴趣区域或图像主体对象区域作为发射区域时,粒子以发射区域中心,按均匀分布方式随机生成和排布粒子;而以边缘轮廓或运动轨迹作为粒子发射区域时,则以将粒子以正态分布方式排列在发射区域极值位置。
[0031]
作为优选,在步骤(5)中,具体为:将粒子发射时的年龄参数标识为a
pt
,粒子的总生命周期参数标识为t
pa
,粒子的年龄更新公式表示为:a
pt+1
=a
pt
+dt,当粒子的年龄超过总生命周期时,将粒子标识为失效的粒子,否则按如下进行粒子参数的更新迭代;
[0032]
假设t时刻三维粒子参数为:坐标位置瞬时速度加速度旋转角度大小尺寸颜色信息对应的粒子动画变化量参数为:位置动画增量速度动画增量加速度动画增量角度动画增量尺寸动画增量颜色动画增量而画面图像的亮度影响因子为梯度影响因子为位移变化量的影响因子为那么t+1时刻粒子更新迭代的计算公式为:
[0033][0034][0035][0036][0037][0038][0039]
其中l
t
、v
t
和g
t
分别表示画面图像的亮度、梯度和位移变化量。
[0040]
作为优选,在步骤(6)中,具体操作方法如下:
[0041]
(61)在三维场景中剔除已失效粒子,包括粒子颜色的透明度为零的粒子、坐标位置处于屏幕/场景外的粒子以及生命周期结束的粒子;
[0042]
(62)根据粒子特效效果的需求,应用主体对象遮罩图像和动画进度参数进一步剔除遮罩图像和动画进度包围区域外的无用粒子;
[0043]
(63)以更新迭代后的粒子参数计算粒子渲染的空间变换矩阵,并连同粒子颜色纹理贴图灯光贴图遮罩图像和动画进度参数设置给图形渲染系统,利用gpu完成粒子效果的绘制;根据效果需要,可级联影视后处理滤镜效果到粒子系统中;
[0044]
(64)显示并呈现粒子结果图像。
[0045]
作为优选,在步骤(63)中,渲染粒子系统时,以更新迭代后的参数作为优选,在步骤(63)中,渲染粒子系统时,以更新迭代后的参数计算粒子的三维姿态,作为图形渲染的空间变换矩阵的缩放、旋转、位移三个标准参数;而计算粒子着色效果时,以粒子颜色纹理贴图灯光贴图遮罩图像和动画进度为参数并按以下公式计算最终着色效果数并按以下公式计算最终着色效果
[0046]
其中动画进度参数可随着模板配置实现随时间变换的曲线动画。
[0047]
本发明的有益效果是:可以实现品类更加丰富,沉浸真实感更强,视觉效果更自然的粒子效果;可以模拟并实现出更加贴合物理真实的视觉特效;大大提高了算法的处理效率,降低了cpu负载,满足实时性处理要求;丰富粒子的视觉效果,增强物理真实感。
附图说明
[0048]
图1是本发明的方法流程框图。
具体实施方式
[0049]
下面结合附图和具体实施方式对本发明做进一步的描述。
[0050]
如图1所述的实施例中,一种内容相关的gpu实时粒子特效方法,利用现代图形处理器可编程管线的特点和强大的并行数据处理能力,在gpu中实时分析视频/图像画面内容,进行粒子参数调节和更新迭代,大大提高了算法的处理效率,极大地减少cpu计算量和运算负载,可在移动设备中实时处理。
[0051]
为了极大化渲染效率和最大化算法的通用性,该方法首先会根据具体gpu的能力和不同操作系统,选择最优gpu编程语言。在微软windows系统中使用direct3d/vulkan/cuda/opencl,在linux系统中使用vulkan/opengl/opencl/cuda,在谷歌android系统中使用vulkan/opengl es,而在苹果ios和mac os x系统中则使用metal/opengl/opengl es/opencl,然后使用相应的gpu着色器编程语言具体实现粒子效果的具体数据处理过程。
[0052]
以视频剪辑中应用内容相关粒子效果为例,给出本实时gpu粒子效果方法的一个具体实施示例,具体包括如下步骤:
[0053]
(1)根据具体应用场景需要选择合适的粒子效果模板,或根据需求设置粒子系统的初始参数;粒子系统的初始参数包括贴图纹理、基础形状、基本尺寸、初始速度、灯光阴影、发射速度。
[0054]
(2)采用光流算法,利用gpu并行处理能力,实时分析视频/图片画面内容,按照以下公式(1)~(3)计算图像的亮度、梯度及相邻视频帧的位移变化量,利用canny算子提取画
面内容的边缘轮廓;
[0055]
假设输入图像i的颜色空间为rgb,其他颜色空间的图像按照标准公式转换到rgb颜色空间,t时刻图像(x,y)坐标处rgb颜色值为[r
t
(x,y),g
t
(x,y),b
t
(x,y)],那么t时刻图像(x,y)坐标处的亮度计算公式为:
[0056]
l
t
(x,y)=r
t
(xy)*0.2126+g
t
(x,y)*0.7152+b
t
(x,y)*0.0722
ꢀꢀ
(1)
[0057]
在获得t时刻整幅图像的亮度值l
t
后,利用sobel算子在每个坐标(x,y)的3x3区域中计算图像的水平方向梯度g
ht
和垂直方向的梯度g
vt
,其计算公式为:
[0058]
g
ht
(x,y)=l
t
(x+1,y

1)+2.0*l
t
(x+1,y)+l
t
(x+1,y+1)

l
t
(x

1,y

1)

2.0*l
t
(x

1,y)+l
t
(x

1,y+1)
[0059]
g
vt
(x,y)=l
t
(x

1,y+1)+2.0*l
t
(x,y+1)+l
t
(x+1,y+1)

l
t
(x

1,y

1)

2.0*l
t
(x,y

1)+l
t
(x+1,y

1)
[0060]
而图像的梯度幅值计算公式为:
[0061][0062]
利用canny算法过滤非极值,并使用上下阈值以获得图像的边缘轮廓。
[0063]
根据光流算法的亮度恒定和光流场平滑的两个基本假设,同一目标物体运动时,其亮度不会发生明显改变,时间的变化也不会引起目标物体位置的剧烈变化,相邻帧的目标物体位移较小;假设某一个目标物体t时刻(x,y)坐标处的亮度l
t
(x,y),经过间隔时间dt移动了(dx,dy)距离,根据亮度恒定假设,l
t
(x,y)=l
t+dt
(x+dx,y+dy),对等式右边进行泰勒级数展开,得到
[0064][0065]
δ表示二阶变化量,可忽略,对等式两边同除以dt后得到:
[0066][0067]
其中和分边表示图像水平方向和垂直方向的导数,即图像梯度g
ht
和g
vt
,表示图像在时间维度的变化量,而和则表示光流沿着水平方向和垂直方向的速度矢量,定义为即为相邻视频帧的位移变化量。
[0068]
基于梯度的光流算法由于计算简单和较好的结果,因而得到了广泛应用和研究,horn

schunck光流算法在光流基本假设的基础上增加全局平滑约束,假设在整个图像上光流的变化是光滑的,即物体运动矢量是平滑的或只是缓慢变化的,然后通过迭代来计算运动矢量。
[0069]
(3)利用显著性算法和物体分割算法,进行视频/图像的智能分析并获取视频的感兴趣区域、主要对象和遮罩信息;视频/图像内容中包含人脸/人像/人体这些主要对象的区域为视频/图像的感兴趣区域,而遮罩信息则表示感兴趣区或主要对象的黑白掩膜图像。以
视频画面包含人脸/人像/人体的为例,感兴趣区域表示包含人脸/人像/人体主要对象的核心画面区域,而遮罩信息为主要对象的黑白掩膜图像。
[0070]
(4)根据粒子效果模板及规则,选择画面区域作为粒子的发射区域,以发射区域为中心随机生成和排布粒子;具体为:在感兴趣区域、主体对象、边缘轮廓和运动轨迹四个候选区域中选择一个作为粒子发射区域,并根据参数随机生成和排布粒子,其中感兴趣区域和主体对象为显著性算法或物体分割算法的输出结果,而边缘轮廓和运动轨迹则是光流算法的输出结果;当选择感兴趣区域或图像主体对象区域作为发射区域时,粒子以发射区域中心,按均匀分布方式随机生成和排布粒子;而以边缘轮廓或运动轨迹作为粒子发射区域时,则以将粒子以正态分布方式排列在发射区域极值位置。备注:一般选择画面的主体对象区域作为粒子的发射区域,以发射区域为中心按正态分布方式随机生成和排布粒子。
[0071]
(5)编写自定义gpu计算着色器,并结合画面内容的亮度、梯度和相邻视频帧的位移变化量,按照以下公式(4)实现调节和控制粒子的更新迭代过程;
[0072]
具体为:将粒子发射时的年龄参数标识为a
pt
,粒子的总生命周期参数标识为t
pa
,粒子的年龄更新公式表示为:a
pt+1
=a
pt
+dt,当粒子的年龄超过总生命周期时,将粒子标识为失效的粒子,否则按如下进行粒子参数的更新迭代;假设t时刻三维粒子参数为:坐标位置瞬时速度加速度旋转角度大小尺寸颜色信息对应的粒子动画变化量参数为:位置动画增量速度动画增量加速度动画增量角度动画增量尺寸动画增量颜色动画增量而画面图像的亮度影响因子为梯度影响因子为位移变化量的影响因子为那么t+1时刻粒子更新迭代的计算公式为:
[0073][0074][0075][0076][0077][0078][0079]
其中l
t
、v
t
和g
t
分别表示画面图像的亮度、梯度和位移变化量。
[0080]
(6)基于三维图形渲染及影视后处理特效技术,渲染和绘制粒子,根据场景和效果需求,应用遮罩信息以实现如物体消散、物理破碎等粒子特效效果;具体操作方法如下:
[0081]
(61)在三维场景中剔除已失效粒子,包括粒子颜色的透明度为零的粒子、坐标位置处于屏幕/场景外的粒子以及生命周期结束的粒子;
[0082]
(62)根据粒子特效效果的需求(如物体消散、物理破碎等),应用主体对象遮罩图像和动画进度参数进一步剔除遮罩图像和动画进度包围区域外的无用粒子;
[0083]
(63)以更新迭代后的粒子参数计算粒子渲染的空间变换矩阵,并连同粒子颜色纹理贴图灯光贴图遮罩图像和动画进度参数设置给图形渲染系统,利用gpu完成粒子效果的绘制;根据效果需要,可级联影视后处理滤镜效果(如模糊)到粒子系统中;
[0084]
渲染粒子系统时,以更新迭代后的参数计算粒子的三维姿态,作为图形渲染的空间变换矩阵的缩放、旋转、位移三个标准参数;而计算粒子着色效果时,以粒子颜色纹理贴图灯光贴图遮罩图像和动画进度为参数并按以下公式(5)计算最终着色效果
[0085][0086]
其中动画进度参数可随着模板配置实现随时间变换的曲线动画。
[0087]
(64)显示并呈现粒子结果图像。
[0088]
上述高性能实时粒子特效方法,首先,在gpu中对视频/图片画面内容进行分析,利用光流估计算法计算图像的亮度、梯度及相邻视频帧的位移变化量,提取画面内容轮廓、空间/时间变化过程和运动轨迹,再根据自定义模板及规则,在图像边缘轮廓或运动轨迹中随机生成和排布粒子,然后利用现代gpu可编程管线的特性,通过编写自定义计算着色器控制并调节粒子及发射器的各种参数,结合空间/时间变化进行粒子的更新迭代,最后基于图形渲染及后处理特效技术,渲染并绘制出丰富且自然的粒子效果。
[0089]
结合深度神经网络等机器学习技术,如物体分割算法、感兴趣区域提取算法等,智能分析和获取视频/图像的主要对象和遮罩(表示感兴趣区或主要对象的掩膜)信息,然后将这些信息应用到粒子系统中,可以模拟和还原物体消散、物理破碎等各种物理真实、新颖好玩的粒子效果。
[0090]
根据视频/图片画面内容及时间/空间变化,通过调节并控制粒子的大小、方向、位置、速度、加速度、旋转、形状、颜色、透明度、纹理、灯光、生命周期、运动轨迹等粒子及发射器参数,可以实现品类更加丰富,沉浸真实感更强,视觉效果更自然的粒子效果;结合深度神经网络等机器学习技术,智能分析并获取视频/图片感兴趣区域,提取主要物体及遮罩信息,可以模拟并实现出更加贴合物理真实的视觉特效;充分利用现代gpu高效且强大的并行流水线处理能力,采用光流法在gpu中实时分析视频/图片画面内容,提取空间和时间的变化过程和运动向量,并利用计算着色器调节并控制粒子参数变化及更新过程,大大提高了算法的处理效率,降低了cpu负载,满足实时性处理要求;可便捷地模板化粒子物理模拟和图形渲染过程,级联其他影视后期处理滤镜,丰富粒子的视觉效果,增强物理真实感。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1