CN112634420B - 图像特效的生成方法、装置、电子设备及存储介质 - Google Patents
图像特效的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112634420B CN112634420B CN202011530286.6A CN202011530286A CN112634420B CN 112634420 B CN112634420 B CN 112634420B CN 202011530286 A CN202011530286 A CN 202011530286A CN 112634420 B CN112634420 B CN 112634420B
- Authority
- CN
- China
- Prior art keywords
- fluid
- position information
- image
- current frame
- model
- 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.)
- Active
Links
- 230000000694 effects Effects 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000012530 fluid Substances 0.000 claims abstract description 417
- 230000001133 acceleration Effects 0.000 claims description 59
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 35
- 239000011159 matrix material Substances 0.000 claims description 32
- 238000005070 sampling Methods 0.000 claims description 19
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 18
- 238000013519 translation Methods 0.000 claims description 15
- 238000012937 correction Methods 0.000 claims description 14
- 238000012360 testing method Methods 0.000 claims description 14
- 230000002238 attenuated effect Effects 0.000 claims description 9
- 230000000873 masking effect Effects 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 238000004088 simulation Methods 0.000 abstract description 7
- 238000009877 rendering Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
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
- G06T13/60—3D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开关于一种图像特效的生成方法、装置、电子设备及存储介质,该方法包括:构建流体模型作为流体的初始运动图像;获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;计算当前帧流体图像中的顶点在世界坐标系中的第二位置信息;基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。这样,通过构建流体模型作为流体的初始运动图像,并根据运动特性计算流体运动位置,可模拟得到较为真实的流体运动效果。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种图像特效的生成方法、装置、电子设备及存储介质。
背景技术
随着计算机技术的不断发展,计算机动画(Computer Graphics,CG)中的实时渲染技术在直播、短视频等场景中得到较为广泛的应用,用户对于移动端的流体运动模拟,也期望获得更加真实的模拟效果。
相关技术中,通常采用双通道背面生成水面法,即使用两个渲染通道来绘制杯中水体,其中,第一个通道剔除背面,绘制非水面部分,第二个通道剔除正面绘制水面部分,最后在两个渲染通道中使用不同的渲染方程计算像素颜色,生成杯中水体的效果图。
然而,该方法生成的水体效果图中水面整体感较为强烈,不能有效的模拟流体运动。可见,现有流体模拟方案的流体模拟效果较差。
发明内容
本公开提供一种图像特效的生成方法、装置、电子设备及存储介质,以至少解决相关技术中流体模拟效果较差的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种图像特效的生成方法,包括:
构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像;
对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;
计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;
基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;
基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;
基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。
可选的,所述基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度,包括:
根据所述第一位置信息与所述第二位置信息的差值,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算所述当前帧流体图像中的顶点的运动加速度;
根据所述第一运动速度和所述运动加速度,计算所述当前帧流体图像中的顶点的第二运动速度。
可选的,所述基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息之后,所述方法还包括:
确定与所述运动加速度对应的遮罩值;
基于所述第三位置信息中的垂直分量和所述当前帧流体图像对应的时间偏移值,从预设气泡纹理图中采样得到目标气泡效果图;
使用所述遮罩值对所述目标气泡效果图进行遮罩处理;
所述基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像之后,所述方法还包括:
将遮罩处理后的目标气泡效果图融合在所述流体的运动图像中。
可选的,所述基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度之前,所述方法还包括:
将所述第一运动速度衰减目标比例,所述目标比例大于0且小于1;
所述基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度,包括:
基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
可选的,所述基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息之后,所述方法还包括:
根据所述第二位置信息与所述第三位置信息的差值,计算流体运动的引力加速度;
将所述引力加速度与所述第二运动速度的和,确定为修正后的第三运动速度;
存储所述第三位置信息和所述第三运动速度。
可选的,所述计算所述当前帧流体图像的顶点在世界坐标系中的第二位置信息,包括:
获取所述当前帧流体图像中的顶点的模型空间坐标;
将所述模型空间坐标与去除平移分量的模型-世界矩阵相乘,得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵为模型空间坐标系到世界坐标系的变换矩阵;
对所述目标位置信息进行塌陷处理,使所述目标位置信息中的垂直分量不超过预设高度值;
将所述模型-世界矩阵中的平移分量加入处理后的目标位置信息中,得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
可选的,所述构建流体模型,包括:
构建流体容器模型;
获取所述流体容器模型中的顶点的模型空间坐标;
按照预设高度值,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分;
对水平面部分的顶点的模型空间坐标进行塌陷处理,使水平面部分的顶点的垂直坐标等于所述预设高度值,得到流体模型。
可选的,所述基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息之后,所述方法还包括:
读取所述第三位置信息对应的各像素点的值,并基于预先写入的流体容器模型中的像素点的模板值,对所述当前帧流体图像中的像素点进行模板测试,并剔除所述当前帧流体图像中值与所述模板值不同的像素点。
根据本公开实施例的第二方面,提供一种图像特效的生成装置,包括:
构建模块,被配置为执行构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像;
获取模块,被配置为执行对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;
第一计算模块,被配置为执行计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;
第二计算模块,被配置为执行基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;
第一修正模块,被配置为执行基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;
图像生成模块,被配置为执行基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。
可选的,所述第二计算模块包括:
第一计算单元,被配置为执行根据所述第一位置信息与所述第二位置信息的差值,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算所述当前帧流体图像中的顶点的运动加速度;
第二计算单元,被配置为执行根据所述第一运动速度和所述运动加速度,计算所述当前帧流体图像中的顶点的第二运动速度。
可选的,所述图像特效的生成装置还包括:
确定模块,被配置为执行确定与所述运动加速度对应的遮罩值;
采样模块,被配置为执行基于所述第三位置信息中的垂直分量和所述当前帧流体图像对应的时间偏移值,从预设气泡纹理图中采样得到目标气泡效果图;
第一处理模块,被配置为执行使用所述遮罩值对所述目标气泡效果图进行遮罩处理;
第二处理模块,被配置为执行将遮罩处理后的目标气泡效果图融合在所述流体的运动图像中。
可选的,所述图像特效的生成装置还包括:
衰减模块,被配置为执行将所述第一运动速度衰减目标比例,所述目标比例大于0且小于1;
所述第二计算模块被配置为执行基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
可选的,所述图像特效的生成装置还包括:
第三计算模块,被配置为执行根据所述第二位置信息与所述第三位置信息的差值,计算流体运动的引力加速度;
第二修正模块,被配置为执行将所述引力加速度与所述第二运动速度的和,确定为修正后的第三运动速度;
存储模块,被配置为执行存储所述第三位置信息和所述第三运动速度。
可选的,所述第一计算模块包括:
第一获取单元,被配置为执行获取当前帧流体图像中的顶点的模型空间坐标;
第三计算单元,被配置为执行将所述模型空间坐标与去除平移分量的模型-世界矩阵相乘,得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵为模型空间坐标系到世界坐标系的变换矩阵;
第一处理单元,被配置为执行对所述目标位置信息进行塌陷处理,使所述目标位置信息中的垂直分量不超过预设高度值;
第二处理单元,被配置为执行将所述模型-世界矩阵中的平移分量加入处理后的目标位置信息中,得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
可选的,所述构建模块包括:
构建单元,被配置为执行构建流体容器模型;
第二获取单元,被配置为执行获取所述流体容器模型中的顶点的模型空间坐标;
第三处理单元,被配置为执行按照预设高度值,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分;
第四处理单元,被配置为执行对水平面部分的顶点的模型空间坐标进行塌陷处理,使水平面部分的顶点的垂直坐标等于所述预设高度值,得到流体模型。
可选的,所述图像特效的生成装置还包括:
第三处理模块,被配置为执行读取所述第三位置信息对应的各像素点的值,并基于预先写入的流体容器模型中的像素点的模板值,对所述当前帧流体图像中的像素点进行模板测试,并剔除所述当前帧流体图像中值与所述模板值不同的像素点。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面所述的图像特效的生成方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备执行时,使得所述电子设备能够执行上述第一方面所述的图像特效的生成方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括可执行指令,当所述可执行指令在计算机上运行时,使得计算机能够执行上述第一方面所述的图像特效的生成方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像;对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。这样,通过构建流体模型作为流体的初始运动图像,根据上一帧流体图像中顶点的位置及速度,并配合当前帧流体图像中顶点的位置来计算出流体运动的位置,可保证较为准确地模拟流体运动,从而获得较为真实的流体运动效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种图像特效的生成方法的流程图。
图2是根据一示例性实施例示出的一种图像特效的生成装置的框图。
图3是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种图像特效的生成方法的流程图,如图1所示,该图像特效的生成方法包括以下步骤:
在步骤S11中,构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像。
本公开实施例中,首先需要构建流体模型,以便后续基于该流体模型,模拟流体的运动图像。具体地,可以构建一处于静止状态的流体模型作为流体的初始运动图像,也即第一帧流体图像,其中,所述构建流体模型,可以是通过绘制一流体容器模型,并通过定义水平面高度确定流体在容器中的水面位置,进而绘制出容器中的流体部分,得到具有静止水平面的流体模型。
可选的,所述构建流体模型,包括:
构建流体容器模型;
获取所述流体容器模型中的顶点的模型空间坐标;
按照预设高度值,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分;
对水平面部分的顶点的模型空间坐标进行塌陷处理,使水平面部分的顶点的垂直坐标等于所述预设高度值,得到流体模型。
即一种实施方式中,在构建处于静止状态的流体模型时,可通过顶点塌陷的方式来压平流体容器模型的顶点,构建出流体模型的水面。具体地,可以先构建流体容器模型,例如,构建一盛水瓶子模型,然后获取所述流体容器模型中的顶点的模型空间坐标,并按照预设高度值,也即预定义的水平面高度,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分,其中,垂直方向坐标值高于所述预设高度值的顶点为水平面部分顶点,垂直方向坐标值不高于所述预设高度值的顶点为非水平面部分顶点,最后,可对水平面部分的顶点的模型空间坐标进行塌陷处理,如将水平面部分的顶点的模型空间坐标中的垂直分量修改为所述预设高度值,从而可通过压平所述流体容器模型的顶点的方式来构建得到流体模型,其中,非水平面部分的顶点的模型空间坐标可以保持不变,修改后的水平面部分的顶点的模型空间坐标即为所述流体模型中的顶点的模型空间坐标。
这样,通过顶点塌陷的方式来压平流体容器模型的顶点,可构建得到流体模型的真实水面,且该实施方式简单易于实现。
在步骤S12中,对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度。
在步骤S13中,计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
本公开实施例中,上述当前帧流体图像和上一帧流体图像可以理解为所述流体模型在运动中产生的连续变化的流体模型动态图像,上述流体图像中的顶点可以是指流体模型水面上的所有像素点,上述当前帧流体图像可以是指当前处理的且位于所述第一帧流体图像之后的任一帧流体图像。
上述获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度,可以是从存储好的上一帧流体图像中的顶点在世界坐标系的位置信息和顶点的运动速度中直接获取,具体地,在计算得到每帧流体图像中的顶点在世界坐标系的位置信息和顶点的运动速度后,可以将该位置信息和运动速度缓存在着色器存储缓冲区(Shader-Storage Buffer Object,SSBO),这样,在需要计算下一帧流体图像中的顶点的运动速度和位置等信息时,可以直接从SSBO缓存中获取上一帧流体图像中的顶点的位置和运动速度信息。
其中,需说明的是,当上一帧流体图像为最初始的第一帧流体图像也即构建出的所述流体模型时,所述第一帧流体图像中的顶点的第一运动速度可以缓存为0,所述第一帧流体图像中的顶点的第一位置信息,可以通过将所述流体模型中的顶点的模型空间坐标转换为世界坐标系中的位置信息得到。
上述计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息,可以是将当前帧流体图像中的顶点的模型空间坐标转换为世界坐标系下的坐标位置,得到当前帧流体图像中的顶点在世界空间中的真实坐标位置信息。具体地,可以是对流体模型图像在世界空间下进行旋转、平移和缩放后,需要将流体模型图像中各顶点的模型空间坐标相应转换为世界坐标系下的坐标位置,具体可以基于流体模型图像在世界空间中的旋转、平移和缩放量来确定,例如,可将顶点的模型空间坐标缩放相应缩放量得到其在世界坐标系下的坐标位置。
其中,由于世界坐标系包括了多个维度,如包括x轴方向、y轴方向和z轴方向等多个维度,故所述第一位置信息、所述第二位置信息和所述第二运动速度均可以使用多维向量来表达,每个维度的值表示顶点在对应方向上的坐标位置和运动速度。
可选的,所述步骤S13包括:
获取所述当前帧流体图像中的顶点的模型空间坐标;
将所述模型空间坐标与去除平移分量的模型-世界矩阵相乘,得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵为模型空间坐标系到世界坐标系的变换矩阵;
对所述目标位置信息进行塌陷处理,使所述目标位置信息中的垂直分量不超过预设高度值;
将所述模型-世界矩阵中的平移分量加入处理后的目标位置信息中,得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
该实施方式中,可通过对所述当前帧流体图像中的顶点的模型空间坐标进行世界坐标转换,来得到所述当前帧流体图像中的顶点在世界坐标系中的位置,具体地,可以先获取所述当前帧流体图像中的顶点的模型空间(Model-Space)坐标,即获取各顶点在当前帧流体图像中的空间坐标,再通过将获取的顶点的模型空间坐标与去除平移分量的模型-世界矩阵相乘,便可得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵是根据所述流体模型在世界空间下的旋转、平移和缩放量计算出来的4×4矩阵,去除平移分量的模型-世界矩阵即为去除完整世界矩阵中表示平移分量的第四列元素后得到的3×3矩阵,而所述模型空间坐标则是包括顶点在x轴、y轴和z轴三个方向上的坐标,可以使用一1×3的矩阵表示,这样,通过将该1×3的矩阵与3×3矩阵相乘,可将所述当前帧流体图像中的顶点的模型空间坐标转换为世界空间中的坐标。
在得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息后,可通过给定高度值也即预设高度值,对所述当前帧流体图像中的顶点进行塌陷处理,使所述当前帧流体图像中的水面高度不超过给定高度值,例如,可设定高度值0.17m,在顶点的目标位置信息中的垂直分量超过0.17的情况下,可以将该顶点的目标位置信息中的垂直分量修改为0.17。
然后,可基于处理后的目标位置信息,将之前去除的模型-世界矩阵的平移分量加入到所述目标位置信息中,便可得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息,也即真实的世界坐标位置信息。
这样,通过该实施方式,可实现将每帧流体图像中的顶点的模型空间坐标转换为世界坐标系下的坐标位置,并且通过对顶点进行塌陷处理,可构建得到真实的水面。
在步骤S14中,基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
该步骤中,可基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度,具体地,可基于速度与初始速度和位移差之间的关系,计算出所述第二运动速度,也就是说,可以基于所述第一位置信息与所述第二位置信息,计算出位移差,再依据所述位移差和所述第一运动速度,计算出所述第二运动速度。
可选的,所述步骤S14之前,所述方法还包括:
将所述第一运动速度衰减目标比例,所述目标比例大于0且小于1;
所述步骤S14包括:
基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
也就是说,在获取上一帧流体图像中的顶点的第一运动速度之后,可以对所述第一运动速度进行抑制,将所述第一运动速度衰减一定比例,以防止流体无限运动,其中,衰减的具体目标比例可以根据需求进行设定。例如,将所述第一运动速度衰减10%,如1m/s的运动速度在衰减10%后为0.9m/s。
从而在计算所述当前帧流体图像中的顶点的第二运动速度时,可以基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度来计算,具体计算方式可以参见前述相关介绍,在此不再赘述。
可选的,所述步骤S14包括:
根据所述第一位置信息与所述第二位置信息的差值,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算所述当前帧流体图像中的顶点的运动加速度;
根据所述第一运动速度和所述运动加速度,计算所述当前帧流体图像中的顶点的第二运动速度。
即在计算所述第二运动速度时,可以先基于所述第一位置信息和所述第二位置信息,计算出所述当前帧流体图像中的顶点的运动加速度,具体地,可以基于所述第一位置信息和所述第二位置信息,确定所述第一位置信息与所述第二位置信息之间的位置差,再基于所述位置差,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算出运动加速度,或者还可进一步结合所述第一运动速度来计算所述运动加速度。例如,可根据公式Δs=v0t+at2/2,计算出运动加速度a,其中,Δs为所述位置差,t为所述上一帧流体图像与所述当前帧流体图像之间的间隔时间差,v0为初始速度,也就是所述第一运动速度,或者,也可使用公式a=Δs/t2,计算所述运动加速度,还或者,使用公式a=Δs/t简单估算所述运动加速度。
然后,再基于所述第一运动速度和所述运动加速度,计算出所述当前帧流体图像中的顶点的第二运动速度,具体地,可根据速度与初始速度和加速度之间的关系,来计算所述第二运动速度,例如,可根据公式vt=v0+at,计算出所述第二运动速度,其中,vt为当前速度,也就是所述第二运动速度,v0为初始速度,也就是所述第一运动速度,a为所述运动加速度,t为所述上一帧流体图像与所述当前帧流体图像之间的间隔时间差;或者,也可使用其他公式如vt=v0+a,简单估算所述第二运动速度即可。
这样,通过基于所述第一位置信息和所述第二位置信息,计算出当前帧流体图像中的顶点的运动加速度,再基于所述第一运动速度和所述运动加速度,计算当前帧流体图像中的顶点的第二运动速度,可保证基于流体的运动特性,较为准确地计算出当前帧流体图像中的顶点的运动速度,进而模拟出较为真实的流体运动效果。
在步骤S15中,基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息。
在计算得到当前帧流体图像中的顶点的第二运动速度后,可以基于所述第二运动速度,来修正所述当前帧流体图像中的顶点在世界坐标系中的位置信息,得到修正的第三位置信息,具体可以是修正所述当前帧流体图像中的顶点在世界坐标系下的垂直分量,也就是修正垂直方向的Y坐标值。
以实际中的流体运动为例,当向右移动流体容器时,流体容器中靠近右侧的流体将向上运动,流体容器中靠近左侧的流体则向下运动,且速度越大,上下运动的幅度也会越大,故可以基于流体的运动速度,来修正当前帧流体图像中的顶点在世界坐标系下的垂直分量。
例如,可以通过公式y'=y-dot(pos,v)来修正所述第二位置信息中的垂直分量,其中,y'为修正后的y坐标,y为所述第二位置信息中的y坐标,即修正前的y坐标,pos表示所述第二位置信息,v为所述第二运动速度,dot表示点乘运算,需说明的是,由于世界坐标系包括了多个维度,如包括x轴方向、y轴方向和z轴方向等多个维度,故所述第二位置信息和所述第二运动速度可以使用多维向量表示,以表示顶点在不同方向上的坐标位置和运动速度。
这样,通过使用所述第二运动速度来修正所述第二位置信息,可保证模拟出流体在运动时产生的真实水面运动效果。
可选的,所述步骤S15之后,所述方法还包括:
根据所述第二位置信息与所述第三位置信息的差值,计算流体运动的引力加速度;
将所述引力加速度与所述第二运动速度的和,确定为修正后的第三运动速度;
存储所述第三位置信息和所述第三运动速度。
即该实施方式中,在修正所述当前帧流体图像中的顶点的位置信息后,可以基于修正前和修正后的坐标位置偏差,来修正所述当前帧流体图像中的顶点的运动速度。具体地,可先通过基于所述第二位置信息与所述第三位置信息之间的位置偏差,产生引力加速度,再使用所述引力加速度对所述当前帧流体图像中的顶点的第二运动速度进行修正,得到修正后的第三运动速度。例如,可将所述第二位置信息与所述第三位置信息之间的位置偏差除以帧间隔时间差或预设的时间间隔得到引力加速度,再将所述第二运动速度加上所述引力加速度之和作为修正后的第三运动速度,其中,所述帧间隔时间差可以采取相邻两帧的间隔时间差,所述预设的时间间隔可以是根据需求预先设定的用于计算引力加速度时使用的固定时间间隔。
在得到修正后的所述当前帧流体图像中的顶点的位置信息和运动速度之后,可以将修正后的位置信息和运动速度进行存储,即可以将所述第三位置信息和所述第三运动速度缓存在SSBO中,以备计算下一帧流体图像中的顶点的运动参数时可以直接从SSBO中读取。
这样,通过修正每帧流体图像中的顶点的运动速度,可保证之后计算出的每一帧的运动参数也相应更为准确,进而可保证模拟出更加真实的流体运动效果。
可选的,所述步骤S15之后,所述方法还包括:
读取所述第三位置信息对应的各像素点的值,并基于预先写入的流体容器模型中的像素点的模板值,对所述当前帧流体图像中的像素点进行模板测试,并剔除所述当前帧流体图像中值与所述模板值不同的像素点。
该实施方式中,为剔除流体在运动中移出流体容器外的像素点,保证生成的流体运动图像中流体始终在容器内运动,可以在绘制流体时对流体图像中各像素点进行模板测试(Stencil Test),只有通过模板测试的像素点才会进行绘制,而未通过模板测试的像素点则不会进行绘制,即剔除未通过模板测试的像素点。
具体地,可以预先写入流体容器模型中的像素点的模板值,也就是对流体容器模型中各像素点对应的坐标位置写入模板值。例如,可将流体容器模型中的像素点的模板值统一写为1。
在确定所述当前帧流体图像中的顶点的位置信息后,可以读取所述第三位置信息对应的各像素点的值,并基于预先写入的模板值,对所述当前帧流体图像中的像素点进行模板测试,具体为基于所述当前帧流体图像中的顶点的第三位置信息,确定所述第三位置信息对应的像素点,并读取所述对应的像素点的值,最后分别判断所述对应的像素点的值是否等于所述模板值,若等于,则表示该像素点位于所述流体容器模型之内,需要进行绘制,若不等于,则表明该像素点流出了所述流体容器模型之外,需要剔除。例如,可对每一帧流体图像进行模板测试。
这样,通过对每帧流体图像中的像素点进行模板测试,可保证流体始终在容器内运动,而不会溢出容器之外,避免所生成的流体运动的动态图像出现穿帮现象。
在步骤S16中,基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。
在确定所述第三位置信息后,便可基于流体图像的顶点在上一帧的位置信息和当前帧的位置信息,得到流体图像中顶点的位置变化,进而可生成动态的流体运动图像,模拟出真实的流体运动效果。具体地,可以以所述第一帧流体图像也即构建的流体模型为起始帧流体图像,再根据修正的每一帧流体图像中的顶点的位置信息,绘制出修正后的每一帧流体图像,即将相应位置处的像素点使用流体颜色进行绘制,再将每帧流体图像按序依次播放,便可得到动态的流体运动图像。
需说明的是,本公开实施例中的流体可以是在一容器中运动,如在杯中或在瓶中运动,即可以基于外界作用在容器上的运动参数来模拟真实的流体运动,其中容器的模型可以是基于写入的容器中各像素点的模板值预先绘制好的。
可选的,所述步骤S15之后,所述方法还包括:
确定与所述运动加速度对应的遮罩值;
基于所述第三位置信息中的垂直分量和所述当前帧流体图像对应的时间偏移值,从预设气泡纹理图中采样得到目标气泡效果图;
使用所述遮罩值对所述目标气泡效果图进行遮罩处理;
所述步骤S16之后,所述方法还包括:
将遮罩处理后的目标气泡效果图融合在所述流体的运动图像中。
即该实施方式中,还可在所生成的流体运动的动态图像中加入气泡效果,得到具备气泡效果的流体运动图像。
具体地,本公开实施例中,除了缓存每帧流体图像中的顶点的位置信息和运动速度外,还可缓存每帧流体图像中的顶点的运动加速度。这样,可基于每帧流体图像中的顶点的运动加速度,来模拟流体在运动中产生的气泡效果,运动加速度越大,气泡的渲染贡献也就越高,即流体的运动加速度越大,产生的气泡也就越多。
该实施方式中,在计算得到所述当前帧流体图像中的顶点的运动加速度之后,可以确定与所述运动加速度对应的遮罩值,即加速度与遮罩值之间可以存在对应关系,具体可以基于预先定义好的加速度与遮罩值之间的对应关系,确定与所述运动加速度对应的遮罩值。其中,不同的加速度可以对应不同的遮罩值,所述遮罩值可以为百分比值,用于表示遮盖气泡图像的范围大小,且运动加速度越大,对应的遮罩值可以越小,即需要遮盖的范围越小,气泡效果也就呈现地更清晰,反之对应的遮罩值越大,需遮盖的范围越大,呈现的气泡效果也就越不明显。而对于每一帧流体图像,均可基于该帧流体图像中的顶点的运动加速度,确定对应的遮罩值,也就是每一帧流体图像中的顶点所在像素处需要对气泡效果图使用的遮罩值。
为在流体的运动图像中加入气泡效果,还可基于所述第三位置信息中的垂直分量,对预设气泡纹理图进行采样,以得到目标气泡效果图,其中,所述预设气泡纹理图可以是预先存储好的用于气泡采样的三维气泡纹理图,所述三维气泡纹理图可以表达三维空间下的颜色信息,即不同空间位置处的像素点可以使用不同颜色表示,从而呈现出三维气泡效果图。另外,为体现出流体运动中气泡随时间偏移不断上升的效果,可以在采样时进一步结合当前帧流体图像对应的时间偏移值进行采样。
具体地,在采样时,可以使用当前帧流体图像中的顶点在垂直方向的坐标值和对应的时间偏移值,从所述预设气泡纹理图中采样相应位置处的气泡纹理图,得到目标气泡效果图,其中,所述时间偏移值可以是当前帧流体图像对应的时间值。一种采样方式中,可以使用当前帧流体图像中的顶点在垂直方向的坐标值加上对应的时间偏移值来确定采样位置,例如,当前帧流体图像处在第5秒,则可以在采样时将当前帧流体图像中顶点在垂直方向的坐标值加上5,得到采样位置,然后从预设气泡纹理图中采样该位置处的气泡纹理图,并且对于每一帧流体图像,均可以采用这样的方式进行采样。
在采样得到每帧流体图像需使用的目标气泡效果图和对应的遮罩值后,可使用每帧流体图像对应的遮罩值对该帧流体图像的目标气泡效果图进行遮罩处理,再将遮罩处理后的目标气泡效果图加载在该帧流体图像中,也即将所述目标气泡效果与生成的流体运动图像进行融合,进而可得到具备气泡效果的流体运动图像。例如,某帧流体图像的目标顶点像素处对应的遮罩值为0%时,可对该帧流体图像的目标顶点像素处的目标气泡效果图不进行遮盖,从而该帧流体图像的目标顶点像素处将显示完整的气泡;某帧流体图像的目标顶点像素处对应的遮罩值为50%时,可对该帧流体图像的目标顶点像素处的目标气泡效果图遮盖一半,从而该帧流体图像的目标顶点像素处将显示半个气泡;某帧流体图像的目标顶点像素处对应的遮罩值为100%时,可对该帧流体图像的目标顶点像素处的目标气泡效果图进行全部遮盖,从而该帧流体图像的目标顶点像素处将不显示气泡效果。
其中,需说明的是,在技术实现上,可通过顶点着色器来输出每帧流体图像中的顶点的运动加速度,在片段着色器中基于运动加速度对应的遮罩值对每帧流体图像进行气泡渲染,最终生成具备气泡效果的流体动态图像。
这样,通过对所生成的流体运动的动态图像加入气泡效果,可得到运动效果更为丰富的流体运动图像,增加流体运动的真实感。
可选的,所述步骤S16之后,所述方法还包括:
在使用流体特效的拍摄场景中,显示所述流体的运动图像。
即本公开的技术方案可应用于视频拍摄场景,所生成的流体的运动图像可用作拍摄中的魔法或道具,例如,在拍摄短视频时,可以选择流体魔法,从而在拍摄中将流体的运动图像加载在采集的视频图像中,生成具备流体运动特效的视频图像。
需说明的是,当在所生成的流体的运动图像中加入有气泡效果时,可相应地在拍摄中加载具有气泡效果的流体特效。
这样,通过将所述流体的运动图像作为流体特效应用于拍摄场景中,可丰富拍摄功能,且能增加用户拍摄的乐趣。
当然,本公开技术方案也可应用于其他需要模拟流体运动的场景中,并不限于视频拍摄场景,例如,在计算机游戏场景中,也可应用本方案来生成流体运动图像。
还需说明的是,本公开实施例中的计算步骤都可在顶点着色器中进行,且本公开实施例中的计算量不大,从而可保证在移动端流畅地运行。
本公开实施例中的图像特效的生成方法,对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。这样,通过构建流体模型作为流体的初始运动图像,根据上一帧流体图像中顶点的位置及速度,并配合当前帧流体图像中顶点的位置来计算出流体运动的位置,可保证较为准确地模拟流体运动,从而获得较为真实的流体运动效果。
图2是根据一示例性实施例示出的一种图像特效的生成装置框图。参照图2,该图像特效的生成装置200包括构建模块201、获取模块202、第一计算模块203、第二计算模块204、第一修正模块205和图像生成模块206。
该构建模块201被配置为执行构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像;
该获取模块202被配置为执行对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;
该第一计算模块203被配置为执行计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;
该第二计算模块204被配置为基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;
该第一修正模块205被配置为执行基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;
该图像生成模块206,被配置为执行基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像。
可选的,图像特效的生成装置200还包括:
显示模块,被配置为执行在使用流体特效的拍摄场景中,显示所述流体运动的动态图像。
可选的,第二计算模块204包括:
第一计算单元,被配置为执行根据所述第一位置信息与所述第二位置信息的差值,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算所述当前帧流体图像中的顶点的运动加速度;
第二计算单元,被配置为执行根据所述第一运动速度和所述运动加速度,计算所述当前帧流体图像中的顶点的第二运动速度。
可选的,图像特效的生成装置200还包括:
确定模块,被配置为执行确定与所述运动加速度对应的遮罩值;
采样模块,被配置为执行基于所述第三位置信息中的垂直分量和所述当前帧流体图像对应的时间偏移值,从预设气泡纹理图中采样得到目标气泡效果图;
第一处理模块,被配置为执行使用所述遮罩值对所述目标气泡效果图进行遮罩处理;
第二处理模块,被配置为执行将遮罩处理后的目标气泡效果图融合在所述流体的运动图像中。
可选的,图像特效的生成装置200还包括:
衰减模块,被配置为执行将所述第一运动速度衰减目标比例,所述目标比例大于0且小于1;
第二计算模块204被配置为执行基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
可选的,图像特效的生成装置200还包括:
第三计算模块,被配置为执行根据所述第二位置信息与所述第三位置信息的差值,计算流体运动的引力加速度;
第二修正模块,被配置为执行将所述引力加速度与所述第二运动速度的和,确定为修正后的第三运动速度;
存储模块,被配置为执行存储所述第三位置信息和所述第三运动速度。
可选的,第一计算模块203包括:
第一获取单元,被配置为执行获取当前帧流体图像中的顶点的模型空间坐标;
第三计算单元,被配置为执行将所述模型空间坐标与去除平移分量的模型-世界矩阵相乘,得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵为模型空间坐标系到世界坐标系的变换矩阵;
第一处理单元,被配置为执行对所述目标位置信息进行塌陷处理,使所述目标位置信息中的垂直分量不超过预设高度值;
第二处理单元,被配置为执行将所述模型-世界矩阵中的平移分量加入处理后的目标位置信息中,得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
可选的,构建模块201还包括:
构建单元,被配置为执行构建流体容器模型;
第二获取单元,被配置为执行获取所述流体容器模型中的顶点的模型空间坐标;
第三处理单元,被配置为执行按照预设高度值,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分;
第四处理单元,被配置为执行对水平面部分的顶点的模型空间坐标进行塌陷处理,使水平面部分的顶点的垂直坐标等于所述预设高度值,得到流体模型。
可选的,图像特效的生成装置200还包括:
第三处理模块,被配置为执行读取所述第三位置信息对应的各像素点的值,并基于预先写入的流体容器模型中的像素点的模板值,对所述当前帧流体图像中的像素点进行模板测试,并剔除所述当前帧流体图像中值与所述模板值不同的像素点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,且能取得相同的有益效果,此处将不做详细阐述说明。
图3是根据一示例性实施例示出的一种用于电子设备300的框图。参照图3,该电子设备300包括:处理器301、用于存储所述处理器可执行指令的存储器302和总线接口303。其中,处理器301被配置为执行所述指令,以实现如上述图1所示实施例中的图像特性的生成方法,并能达到相同的技术效果,为避免重复,此处不再赘述。
在图3中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器301代表的一个或多个处理器和存储器302代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口303提供接口。
处理器301负责管理总线架构和通常的处理,存储器302可以存储处理器301在执行操作时所使用的数据。
电子设备300能够实现前述实施例中的各个过程,且能取得相同的技术效果,为避免重复,这里不再赘述。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器302,上述指令可由图像特效的生成装置300的处理器301执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括可执行指令,当所述可执行指令在计算机上运行时,使得计算机能够执行上述图像特效的生成方法,并能达到相同的技术效果,为避免重复,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (18)
1.一种图像特效的生成方法,其特征在于,包括:
构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像;
对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;
计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;
基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;
基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;
基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像;
所述流体图像中的顶点包括流体模型水面上的所有像素点;
所述基于所述第二运动速度,修正所述第二位置信息,包括:依照流体速度越大,流体上下运动的幅度越大的原则,基于所述第二运动速度,修正所述当前帧流体图像中的顶点在世界坐标系下的垂直分量。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度,包括:
根据所述第一位置信息与所述第二位置信息的差值,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算所述当前帧流体图像中的顶点的运动加速度;
根据所述第一运动速度和所述运动加速度,计算所述当前帧流体图像中的顶点的第二运动速度。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息之后,所述方法还包括:
确定与所述运动加速度对应的遮罩值;
基于所述第三位置信息中的垂直分量和所述当前帧流体图像对应的时间偏移值,从预设气泡纹理图中采样得到目标气泡效果图;
使用所述遮罩值对所述目标气泡效果图进行遮罩处理;
所述基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像之后,所述方法还包括:
将遮罩处理后的目标气泡效果图融合在所述流体的运动图像中。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度之前,所述方法还包括:
将所述第一运动速度衰减目标比例,所述目标比例大于0且小于1;
所述基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度,包括:
基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息之后,所述方法还包括:
根据所述第二位置信息与所述第三位置信息的差值,计算流体运动的引力加速度;
将所述引力加速度与所述第二运动速度的和,确定为修正后的第三运动速度;
存储所述第三位置信息和所述第三运动速度。
6.根据权利要求1所述的方法,其特征在于,所述计算所述当前帧流体图像的顶点在世界坐标系中的第二位置信息,包括:
获取所述当前帧流体图像中的顶点的模型空间坐标;
将所述模型空间坐标与去除平移分量的模型-世界矩阵相乘,得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵为模型空间坐标系到世界坐标系的变换矩阵;
对所述目标位置信息进行塌陷处理,使所述目标位置信息中的垂直分量不超过预设高度值;
将所述模型-世界矩阵中的平移分量加入处理后的目标位置信息中,得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
7.根据权利要求1所述的方法,其特征在于,所述构建流体模型,包括:
构建流体容器模型;
获取所述流体容器模型中的顶点的模型空间坐标;
按照预设高度值,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分;
对水平面部分的顶点的模型空间坐标进行塌陷处理,使水平面部分的顶点的垂直坐标等于所述预设高度值,得到流体模型。
8.根据权利要求1所述的方法,其特征在于,所述基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息之后,所述方法还包括:
读取所述第三位置信息对应的各像素点的值,并基于预先写入的流体容器模型中的像素点的模板值,对所述当前帧流体图像中的像素点进行模板测试,并剔除所述当前帧流体图像中值与所述模板值不同的像素点。
9.一种图像特效的生成装置,其特征在于,包括:
构建模块,被配置为执行构建流体模型作为流体的初始运动图像,所述初始运动图像为第一帧流体图像;
获取模块,被配置为执行对于当前帧流体图像,获取上一帧流体图像中的顶点在世界坐标系的第一位置信息和第一运动速度;
第一计算模块,被配置为执行计算所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息;
第二计算模块,被配置为执行基于所述第一位置信息、所述第二位置信息和所述第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度;
第一修正模块,被配置为执行基于所述第二运动速度,修正所述第二位置信息,得到第三位置信息;
图像生成模块,被配置为执行基于所述第一位置信息和所述第三位置信息,以及所述第一帧流体图像,生成所述流体的运动图像;
所述流体图像中的顶点包括流体模型水面上的所有像素点;
所述第一修正模块用于依照流体速度越大,流体上下运动的幅度越大的原则,基于所述第二运动速度,修正所述当前帧流体图像中的顶点在世界坐标系下的垂直分量。
10.根据权利要求9所述的图像特效的生成装置,其特征在于,所述第二计算模块包括:
第一计算单元,被配置为执行根据所述第一位置信息与所述第二位置信息的差值,和所述当前帧流体图像与所述上一帧流体图像的间隔时间差,计算所述当前帧流体图像中的顶点的运动加速度;
第二计算单元,被配置为执行根据所述第一运动速度和所述运动加速度,计算所述当前帧流体图像中的顶点的第二运动速度。
11.根据权利要求10所述的图像特效的生成装置,其特征在于,所述图像特效的生成装置还包括:
确定模块,被配置为执行确定与所述运动加速度对应的遮罩值;
采样模块,被配置为执行基于所述第三位置信息中的垂直分量和所述当前帧流体图像对应的时间偏移值,从预设气泡纹理图中采样得到目标气泡效果图;
第一处理模块,被配置为执行使用所述遮罩值对所述目标气泡效果图进行遮罩处理;
第二处理模块,被配置为执行将遮罩处理后的目标气泡效果图融合在所述流体的运动图像中。
12.根据权利要求9所述的图像特效的生成装置,其特征在于,所述图像特效的生成装置还包括:
衰减模块,被配置为执行将所述第一运动速度衰减目标比例,所述目标比例大于0且小于1;
所述第二计算模块被配置为执行基于所述第一位置信息、所述第二位置信息和衰减后的第一运动速度,计算所述当前帧流体图像中的顶点的第二运动速度。
13.根据权利要求9所述的图像特效的生成装置,其特征在于,所述图像特效的生成装置还包括:
第三计算模块,被配置为执行根据所述第二位置信息与所述第三位置信息的差值,计算流体运动的引力加速度;
第二修正模块,被配置为执行将所述引力加速度与所述第二运动速度的和,确定为修正后的第三运动速度;
存储模块,被配置为执行存储所述第三位置信息和所述第三运动速度。
14.根据权利要求9所述的图像特效的生成装置,其特征在于,所述第一计算模块包括:
第一获取单元,被配置为执行获取当前帧流体图像中的顶点的模型空间坐标;
第三计算单元,被配置为执行将所述模型空间坐标与去除平移分量的模型-世界矩阵相乘,得到所述当前帧流体图像中的顶点在世界坐标系中的目标位置信息,其中,所述模型-世界矩阵为模型空间坐标系到世界坐标系的变换矩阵;
第一处理单元,被配置为执行对所述目标位置信息进行塌陷处理,使所述目标位置信息中的垂直分量不超过预设高度值;
第二处理单元,被配置为执行将所述模型-世界矩阵中的平移分量加入处理后的目标位置信息中,得到所述当前帧流体图像中的顶点在世界坐标系中的第二位置信息。
15.根据权利要求9所述的图像特效的生成装置,其特征在于,所述构建模块包括:
构建单元,被配置为执行构建流体容器模型;
第二获取单元,被配置为执行获取所述流体容器模型中的顶点的模型空间坐标;
第三处理单元,被配置为执行按照预设高度值,将所述流体容器模型中的顶点划分为水平面部分和非水平面部分;
第四处理单元,被配置为执行对水平面部分的顶点的模型空间坐标进行塌陷处理,使水平面部分的顶点的垂直坐标等于所述预设高度值,得到流体模型。
16.根据权利要求9所述的图像特效的生成装置,其特征在于,所述图像特效的生成装置还包括:
第三处理模块,被配置为执行读取所述第三位置信息对应的各像素点的值,并基于预先写入的流体容器模型中的像素点的模板值,对所述当前帧流体图像中的像素点进行模板测试,并剔除所述当前帧流体图像中值与所述模板值不同的像素点。
17.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的图像特效的生成方法。
18.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至8中任一项所述的图像特效的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011530286.6A CN112634420B (zh) | 2020-12-22 | 2020-12-22 | 图像特效的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011530286.6A CN112634420B (zh) | 2020-12-22 | 2020-12-22 | 图像特效的生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112634420A CN112634420A (zh) | 2021-04-09 |
CN112634420B true CN112634420B (zh) | 2024-04-30 |
Family
ID=75321047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011530286.6A Active CN112634420B (zh) | 2020-12-22 | 2020-12-22 | 图像特效的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112634420B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114663553A (zh) * | 2022-03-18 | 2022-06-24 | 北京字跳网络技术有限公司 | 特效视频生成方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107067451A (zh) * | 2017-04-07 | 2017-08-18 | 广州爱九游信息技术有限公司 | 动画中动态骨骼的实现方法和装置 |
CN107967693A (zh) * | 2017-12-01 | 2018-04-27 | 北京奇虎科技有限公司 | 视频关键点处理方法、装置、计算设备及计算机存储介质 |
CN108961365A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 三维虚拟对象摆动方法、装置、存储介质和计算机设备 |
CN109147017A (zh) * | 2018-08-28 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 动态图像生成方法、装置、设备及存储介质 |
CN109191548A (zh) * | 2018-08-28 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 动画制作方法、装置、设备及存储介质 |
CN109658482A (zh) * | 2018-11-16 | 2019-04-19 | 北京中竞鸽体育文化发展有限公司 | 模拟运动画面的方法、装置及存储介质 |
CN109840935A (zh) * | 2017-12-12 | 2019-06-04 | 中国科学院计算技术研究所 | 基于深度采集设备的波浪重建方法和系统 |
CN111161422A (zh) * | 2019-12-13 | 2020-05-15 | 广东电网有限责任公司 | 一种用于增强虚拟场景实现的模型展示方法 |
CN111311728A (zh) * | 2020-01-10 | 2020-06-19 | 华中科技大学鄂州工业技术研究院 | 一种基于光流法的高精度形貌重建方法、设备及装置 |
-
2020
- 2020-12-22 CN CN202011530286.6A patent/CN112634420B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107067451A (zh) * | 2017-04-07 | 2017-08-18 | 广州爱九游信息技术有限公司 | 动画中动态骨骼的实现方法和装置 |
CN108961365A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 三维虚拟对象摆动方法、装置、存储介质和计算机设备 |
CN107967693A (zh) * | 2017-12-01 | 2018-04-27 | 北京奇虎科技有限公司 | 视频关键点处理方法、装置、计算设备及计算机存储介质 |
CN109840935A (zh) * | 2017-12-12 | 2019-06-04 | 中国科学院计算技术研究所 | 基于深度采集设备的波浪重建方法和系统 |
CN109147017A (zh) * | 2018-08-28 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 动态图像生成方法、装置、设备及存储介质 |
CN109191548A (zh) * | 2018-08-28 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 动画制作方法、装置、设备及存储介质 |
CN109658482A (zh) * | 2018-11-16 | 2019-04-19 | 北京中竞鸽体育文化发展有限公司 | 模拟运动画面的方法、装置及存储介质 |
CN111161422A (zh) * | 2019-12-13 | 2020-05-15 | 广东电网有限责任公司 | 一种用于增强虚拟场景实现的模型展示方法 |
CN111311728A (zh) * | 2020-01-10 | 2020-06-19 | 华中科技大学鄂州工业技术研究院 | 一种基于光流法的高精度形貌重建方法、设备及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112634420A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6654020B2 (en) | Method of rendering motion blur image and apparatus therefor | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
CN110570500B (zh) | 角色绘制方法、装置、设备及计算机可读存储介质 | |
US11238645B2 (en) | Method and system for computer graphics rendering | |
CN112634420B (zh) | 图像特效的生成方法、装置、电子设备及存储介质 | |
CN110930492B (zh) | 模型渲染的方法、装置、计算机可读介质及电子设备 | |
CN114387386A (zh) | 一种基于三维点阵渲染的快速建模方法及系统 | |
CN106204418B (zh) | 一种虚拟现实移动端中基于矩阵逆运算的图像扭曲方法 | |
JP2008140385A (ja) | キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置 | |
CN115272575B (zh) | 图像生成方法及装置、存储介质和电子设备 | |
CN116385577A (zh) | 虚拟视点图像生成方法及装置 | |
CN112734628B (zh) | 一种经三维转换后的跟踪点的投影位置计算方法及系统 | |
CN114219888A (zh) | 三维角色动态剪影效果生成方法及装置、存储介质 | |
CN114676616A (zh) | 一种三维场景下流体风场图渲染方法 | |
CN114693857A (zh) | 光线追踪多帧降噪方法、电子设备、芯片及可读存储介质 | |
CN110827303A (zh) | 一种虚拟场景的图像编辑方法及装置 | |
CN115714888B (zh) | 视频生成方法、装置、设备与计算机可读存储介质 | |
CN109035393A (zh) | 一种重建三维动画的方法及装置 | |
CN115861500B (zh) | 2d模型碰撞体生成方法及装置 | |
TWI797761B (zh) | 虛擬實境的顯示方法 | |
CN107978011B (zh) | 一种风的三维动态展示方法和设备 | |
CN117152316A (zh) | 模型更新方法及装置 | |
Li | Application of Computer 3D Technology in Graphic Design of Animation Scene | |
CN116485972A (zh) | 模型的渲染方法、装置和电子设备 | |
CN114904272A (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 |