CN111968213B - 扭曲效果生成方法、装置、设备和存储介质 - Google Patents
扭曲效果生成方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111968213B CN111968213B CN202011143463.5A CN202011143463A CN111968213B CN 111968213 B CN111968213 B CN 111968213B CN 202011143463 A CN202011143463 A CN 202011143463A CN 111968213 B CN111968213 B CN 111968213B
- Authority
- CN
- China
- Prior art keywords
- texture
- distortion
- image
- coordinate
- pixel point
- 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 98
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000005070 sampling Methods 0.000 claims abstract description 124
- 238000012545 processing Methods 0.000 claims abstract description 79
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims description 40
- 238000009877 rendering Methods 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design 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
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
本发明实施例提供一种扭曲效果生成方法、装置、设备和存储介质,该方法包括:获取图像纹理;对图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲;获取用户输入的第二扭曲纹理坐标,将第一扭曲纹理坐标与第二扭曲纹理坐标进行叠加,得到最终采样坐标;通过最终采样坐标对图像纹理进行采样,将采样结果输出到临时纹理缓存中;对临时纹理缓存中的采样结果进行径向扭曲处理得到混合扭曲后的图像纹理,在屏幕中显示混合扭曲后的图像纹理。采用本发明可以将多种扭曲算法自由组合,可以实现更加丰富逼真的画面旋转、波动等扭曲效果。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种扭曲效果生成方法、装置、设备和存储介质。
背景技术
在相关技术中,在需要对渲染图像进行扭曲效果处理的场景中,往往只能采用一种扭曲效果处理方式对渲染图像进行处理,无法实现将多种扭曲效果进行融合的目的。如果仅采用单一一种扭曲效果处理方式对渲染图像进行处理,会导致得到的扭曲图像的扭曲效果较差,降低扭曲图像的图像质量。
发明内容
本发明实施例提供一种扭曲效果生成方法、装置、设备和存储介质,用以实现提高扭曲图像的扭曲效果,提高扭曲图像的图像质量。
第一方面,本发明实施例提供一种扭曲效果生成方法,该方法包括:
获取图像纹理;
对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,所述扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲;
获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标;
通过所述最终采样坐标对所述图像纹理进行采样,将采样结果输出到临时纹理缓存中;
对所述临时纹理缓存中的采样结果进行径向扭曲处理得到混合扭曲后的图像纹理,在屏幕中显示所述混合扭曲后的图像纹理。
可选地,所述对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,还包括:
按照扭曲处理的排序顺序,对所述图像纹理的纹理坐标进行扭曲处理,每当对所述图像纹理的纹理坐标进行一次扭曲处理时,将当前进行扭曲处理所得的图像纹理确定为下一次扭曲处理时使用的所述图像纹理。
可选地,所述扭曲处理包括水波纹扭曲效果,所述对所述图像纹理对应的纹理坐标进行扭曲处理,包括:
对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,得到经过水波纹扭曲的第一扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第一扭曲向量,确定经过水波纹扭曲的纹理坐标。
可选地,所述获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标,包括:
获取用户输入的第二扭曲纹理坐标,所述第二扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过水波纹扭曲的纹理坐标,对所述第二扭曲纹理坐标进行采样,得到第三扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第三扭曲向量相加,得到经过水波纹扭曲的最终采样坐标。
可选地,所述对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,包括:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算;
所述公式为:
所述公式为:
WaveDistortion.x’=sin(DistanceToCenter-Time*5)*0.2
WaveDistortion.x= WaveDistortion.x’+sin(CurrentTexcoord.y-Time*5)*0.2
WaveDistortion.y’=cos(DistanceToCenter-Time*5)*0.2
WaveDistortion.y= WaveDistortion.y’+cos(CurrentTexcoord.x-Time*5)*0.2
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,CurrentTexcoord.x和CurrentTexcoord.y为所述图像纹理中当前像素点的初始纹理坐标,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,所述扭曲效果处理包括环形波纹扭曲效果,所述对所述图像纹理对应的纹理坐标进行扭曲处理,包括:
对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算,得到经过环形波纹扭曲的第四扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第四扭曲向量,确定经过环形波纹扭曲的纹理坐标。
可选地,所述获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标,包括:
获取用户输入的第五扭曲纹理坐标,所述第五扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过环形波纹扭曲的纹理坐标,对所述第五扭曲纹理坐标进行采样,得到第六扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第六扭曲向量相加,得到经过环形波纹扭曲的最终采样坐标。
可选地,所述对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算,包括:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算;
所述公式为:
WaveDistortion.x=sin(DistanceToCenter-Time*5)*0.2
WaveDistortion.y=sin(DistanceToCenter-Time*5)*0.2
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,所述扭曲效果处理包括螺旋扭曲效果,所述对所述图像纹理对应的纹理坐标进行扭曲处理,包括:
对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,得到经过螺旋扭曲的第七扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第七扭曲向量,确定经过螺旋扭曲的纹理坐标。
可选地,所述对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,包括:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算;
所述公式为:
DeltaUV=CurrentTexcoord-DistortCenter
RotatedDistortion.x=cos(RotateAngle)*DeltaUV.x-sin(RotateAngle)*DeltaUV.y
RotatedDistortion.y=sin(RotateAngle)*DeltaUV.x-cos(RotateAngle)*DeltaUV.y
其中,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,DistortCenter是扰动中心,DeltaUV包括DeltaUV.x和DeltaUV.y,RotatedDistortion.x为经过螺旋扭曲的水平方向的扭曲值,RotatedDistortion.y为经过螺旋扭曲的竖直方向的扭曲值,RotateAngle为基于CurrentTexcoord和DistortCenter之间的距离计算出的数值。
可选地,所述对所述临时纹理缓存中的采样结果进行径向扭曲处理,包括:
获取径向采样步长;
从所述图像纹理中当前像素点对应的纹理坐标起始,对所述临时纹理缓存中的采样结果采样目标次数,每采样一次将所述当前像素点对应的纹理坐标加上所述径向采样步长,直到加上所述径向采样步长的所述当前像素点对应的纹理坐标达到目标坐标为止;
将每次采样得到的颜色值进行累加,用累加后的值除以所述目标次数,得到经过径向扭曲的图像纹理。
可选地,所述获取径向采样步长,包括:
通过公式,获取径向采样步长;
所述公式为:
BlurVector=DistortCenter-CurrentTexcoord
DeltaSampling=BlurVector/BlurStepCount
其中,DistortCenter是扰动中心,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,BlurVector为DistortCenter到CurrentTexcoord之间的方向向量,BlurStepCount为所述目标次数,DeltaSampling为所述径向采样步长。
第二方面,本发明实施例提供一种扭曲效果生成装置,包括:
获取模块,用于获取图像纹理;
扭曲模块,用于对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,所述扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲;
叠加模块,用于获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标;
采样模块,用于通过所述最终采样坐标对所述图像纹理进行采样,将采样结果输出到临时纹理缓存中;
混合模块,用于对所述临时纹理缓存中的采样结果进行径向扭曲处理得到混合扭曲后的图像纹理,在屏幕中显示所述混合扭曲后的图像纹理。
可选地,所述采样模块,还用于:
按照扭曲处理的排序顺序,对所述图像纹理的纹理坐标进行扭曲处理,每当对所述图像纹理的纹理坐标进行一次扭曲处理时,将当前进行扭曲处理所得的图像纹理确定为下一次扭曲处理时使用的所述图像纹理。
可选地,所述扭曲处理包括水波纹扭曲效果,所述扭曲模块,用于:
对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,得到经过水波纹扭曲的第一扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第一扭曲向量,确定经过水波纹扭曲的纹理坐标。
可选地,所述叠加模块,用于:
获取用户输入的第二扭曲纹理坐标,所述第二扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过水波纹扭曲的纹理坐标,对所述第二扭曲纹理坐标进行采样,得到第三扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第三扭曲向量相加,得到经过水波纹扭曲的最终采样坐标。
可选地,所述扭曲模块,用于:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算;
所述公式为:
WaveDistortion.x’=sin(DistanceToCenter-Time*5)*0.2
WaveDistortion.x= WaveDistortion.x’+sin(CurrentTexcoord.y-Time*5)*0.2
WaveDistortion.y’=cos(DistanceToCenter-Time*5)*0.2
WaveDistortion.y= WaveDistortion.y’+cos(CurrentTexcoord.x-Time*5)*0.2
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,CurrentTexcoord.x和CurrentTexcoord.y为所述图像纹理中当前像素点的初始纹理坐标,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,所述扭曲效果处理包括环形波纹扭曲效果,所述扭曲模块,用于:
对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算,得到经过环形波纹扭曲的第四扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第四扭曲向量,确定经过环形波纹扭曲的纹理坐标。
可选地,所述叠加模块,用于:
获取用户输入的第五扭曲纹理坐标,所述第五扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过环形波纹扭曲的纹理坐标,对所述第五扭曲纹理坐标进行采样,得到第六扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第六扭曲向量相加,得到经过环形波纹扭曲的最终采样坐标。
可选地,所述扭曲模块,用于:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算;
所述公式为:
WaveDistortion.x=sin(DistanceToCenter-Time*5)*0.2
WaveDistortion.y=sin(DistanceToCenter-Time*5)*0.2
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,所述扭曲效果处理包括螺旋扭曲效果,所述扭曲模块,用于:
对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,得到经过螺旋扭曲的第七扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第七扭曲向量,确定经过螺旋扭曲的纹理坐标。
可选地,所述扭曲模块,用于:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算;
所述公式为:
DeltaUV=CurrentTexcoord-DistortCenter
RotatedDistortion.x=cos(RotateAngle)*DeltaUV.x-sin(RotateAngle)*DeltaUV.y
RotatedDistortion.y=sin(RotateAngle)*DeltaUV.x-cos(RotateAngle)*DeltaUV.y
其中,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,DistortCenter是扰动中心,DeltaUV包括DeltaUV.x和DeltaUV.y,RotatedDistortion.x为经过螺旋扭曲的水平方向的扭曲值,RotatedDistortion.y为经过螺旋扭曲的竖直方向的扭曲值,RotateAngle为基于CurrentTexcoord和DistortCenter之间的距离计算出的数值。
可选地,所述混合模块,用于:
获取径向采样步长;
从所述图像纹理中当前像素点对应的纹理坐标起始,对所述临时纹理缓存中的采样结果采样目标次数,每采样一次将所述当前像素点对应的纹理坐标加上所述径向采样步长,直到加上所述径向采样步长的所述当前像素点对应的纹理坐标达到目标坐标为止;
将每次采样得到的颜色值进行累加,用累加后的值除以所述目标次数,得到经过径向扭曲的图像纹理。
可选地,所述混合模块,用于:
通过公式,获取径向采样步长;
所述公式为:
BlurVector=DistortCenter-CurrentTexcoord
DeltaSampling=BlurVector/BlurStepCount
其中,DistortCenter是扰动中心,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,BlurVector为DistortCenter到CurrentTexcoord之间的方向向量,BlurStepCount为所述目标次数,DeltaSampling为所述径向采样步长。
第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第一方面中的扭曲效果生成方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现第一方面中的扭曲效果生成方法。
采用本发明可以将多种扭曲算法进行自由组合,可以将不同扭曲算法输出的扭曲后的图像纹理进行迭代叠加,以实现更加丰富逼真的画面旋转、波动等扭曲效果。采用本发明,可以提高扭曲后的图像纹理的图像质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种扭曲效果生成方法的流程图示意图;
图2为本发明实施例提供的一种启用开关选项效果示意图;
图3为本发明实施例提供的一种扭曲效果生成装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种扭曲效果生成方法的流程图,如图1所示,该方法包括如下步骤:
101、获取图像纹理。
102、对图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲。
103、获取用户输入的第二扭曲纹理坐标,将第一扭曲纹理坐标与用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标。
104、通过最终采样坐标对所述图像纹理进行采样,将采样结果输出到临时纹理缓存中。
105、对临时纹理缓存中的采样结果进行径向扭曲处理得到混合扭曲后的图像纹理,在屏幕中显示混合扭曲后的图像纹理。
在本发明实施例中,提供了多种扭曲算法,采用本发明可以将多种扭曲算法进行自由组合,以实现更加丰富逼真的画面旋转、波动等扭曲效果。本发明可以应用在科幻电影的特效处理过程,也可以应用在游戏中的水下视角效果处理过程等多种不同的扭曲效果处理场景中。
在实际应用中,首先可以获取到图像纹理,初始的图像纹理为未经过任何扭曲效果处理的图像。假设需要对图像纹理进行扭曲效果处理,那么可以在多种扭曲效果中根据实际应用需求选择其中的任意两种或者任意多种扭曲效果进行迭代叠加,将不同扭曲效果融合在一起,最终输出混合扭曲后的图像纹理。其中,扭曲效果可以包括水波纹扭曲效果、环形波纹扭曲效果、螺旋扭曲效果、径向扭曲效果、用户输入的扭曲效果。
需要说明的是,如图2所示,可以为每种扭曲效果设置各自对应的启用开关选项,这样当用户选择了某一个扭曲效果对应的开启选项时,那么可以添加该扭曲效果,相应地,当用户将某一个扭曲效果对应的启用开关选项关闭时,可以跳过该扭曲效果不进行任何处理。
可选地,所述对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,还包括:按照扭曲处理的排序顺序,对所述图像纹理的纹理坐标进行扭曲处理,每当对所述图像纹理的纹理坐标进行一次扭曲处理时,将当前进行扭曲处理所得的图像纹理确定为下一次扭曲处理时使用的所述图像纹理。
在实际应用中,可以结合扭曲处理的排序顺序,依次对图像纹理的纹理坐标进行扭曲效果处理。在每次对图像纹理的纹理坐标进行扭曲处理时,可以将前一次扭曲后输出到临时纹理缓存的图像纹理确定为本次进行扭曲处理所述图像纹理。举例来说,假设需要对图像纹理进行水波纹扭曲效果以及环形波纹扭曲效果处理,图像纹理经过水波纹扭曲效果处理之后得到了经过水波纹扭曲的图像纹理,那么在进行环形波纹扭曲效果处理的过程中,就可以将经过水波纹扭曲的图像纹理作为处理对象进行环形波纹扭曲效果处理,这样就可以达到不断迭代叠加的处理效果。具体使用前一次扭曲后输出到临时纹理缓存的图像纹理进行本次扭曲效果处理的过程会在后面进行详细介绍,在此暂不赘述。
(一)水波纹扭曲效果
可选地,扭曲效果处理包括水波纹扭曲效果,对图像纹理对应的纹理坐标进行扭曲处理的过程可以实现为:对图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,得到经过水波纹扭曲的第一扭曲向量;基于图像纹理中的各像素点的初始纹理坐标和第一扭曲向量,确定经过水波纹扭曲的纹理坐标。
在实际应用中,图像纹理可以是二维图像,它是将三维空间中三角面片投影到二维平面之后进行光栅化处理得到的结果。图像纹理由许多的像素点组成,其中的每个像素点都对应有各自的初始纹理坐标,对于每个初始纹理坐标经过一系列的水波纹扭曲计算,就可以得到第一扭曲向量。第一扭曲向量也可以认为是偏移向量,即将对应的初始纹理坐标经过第一扭曲向量的偏移可以得到一个新的纹理坐标,可以使用该新的纹理坐标对图像纹理对应的颜色纹理进行采样,可以输出经过水波纹扭曲的图像纹理。
上述对图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算的过程可以通过公式1至公式4实现:
WaveDistortion.x’=sin(DistanceToCenter-Time*5)*0.2 (公式1)
WaveDistortion.x= WaveDistortion.x’+sin(CurrentTexcoord.y-Time*5)*0.2(公式2)
WaveDistortion.y’=cos(DistanceToCenter-Time*5)*0.2 (公式3)
WaveDistortion.y= WaveDistortion.y’+cos(CurrentTexcoord.x-Time*5)*0.2(公式4)
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,CurrentTexcoord.x和CurrentTexcoord.y为所述图像纹理中当前像素点的初始纹理坐标,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差,WaveDistortion.x’为基于DistanceToCenter和Time确定的值,WaveDistortion.y’为基于DistanceToCenter和Time确定的值。
可选地,如果用户在该水波纹扭曲处理的过程中未提供扭曲向量纹理,那么可以用图像纹理中的各像素点的初始纹理坐标加上对应的第一扭曲向量,得到经过水波纹扭曲的纹理坐标,也就是说可以用WaveDistortion加上CurrentTexcoord计算出经过水波纹扭曲的纹理坐标。另一方面,如果用户在该水波纹扭曲处理的过程中提供了扭曲向量纹理,那么还可以将扭曲向量纹理考虑到经过水波纹扭曲的纹理坐标的计算过程中。
可选地,获取用户输入的第二扭曲纹理坐标,将第一扭曲纹理坐标与用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标可以包括:获取用户输入的第二扭曲纹理坐标,第二扭曲纹理坐标包括红色r通道和绿色g通道的分量值;通过经过水波纹扭曲的纹理坐标,对第二扭曲纹理坐标进行采样,得到第三扭曲向量;将图像纹理中的各像素点的初始纹理坐标与对应的第三扭曲向量相加,得到经过水波纹扭曲的最终采样坐标。
可以理解的是,扭曲向量纹理也可以称为第二扭曲纹理坐标,扭曲向量纹理是一种图像纹理,它与一般的图像之间的区别是扭曲向量纹理中存储的是单位化后的二维方向向量,包括通过r通道和g通道两个通道分别存储的x和y两个分量值。扭曲向量纹理指示的是纹理坐标需要进行扭曲的方向,用WaveDistortion加上扭曲向量纹理中的扭曲向量,可以得到第三扭曲向量。在得到第三扭曲向量之后,可以用CurrentTexcoord加上对应的第三扭曲向量计算出经过水波纹扭曲的最终采样坐标。
最后,可以使用经过水波纹扭曲的最终采样坐标对图像纹理对应的颜色纹理进行采样,输出经过水波纹扭曲的图像纹理。可以将输出的经过水波纹扭曲的图像纹理存储到颜色缓存中。
(二)环形波纹扭曲效果
可选地,扭曲效果处理包括环形波纹扭曲效果,对图像纹理对应的纹理坐标进行扭曲处理的过程可以实现为:对图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算,得到经过环形波纹扭曲的第四扭曲向量;基于图像纹理中的各像素点的初始纹理坐标和第四扭曲向量,确定经过环形波纹扭曲的纹理坐标。
在实际应用中,图像纹理由许多的像素点组成,其中的每个像素点都对应有各自的初始纹理坐标,对于每个初始纹理坐标经过一系列的环形波纹扭曲计算,就可以得到第四扭曲向量。第四扭曲向量也可以认为是偏移向量,即将对应的初始纹理坐标经过第四扭曲向量的偏移可以得到一个新的纹理坐标,可以使用该新的纹理坐标对上个扭曲处理过程输出的水波纹扭曲的图像纹理进行采样,可以得到经过环形波纹扭曲的图像纹理。
上述对图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算的过程可以通过公式5至公式6实现:
WaveDistortion.x=sin(DistanceToCenter-Time*5)*0.2 (公式5)
WaveDistortion.y=sin(DistanceToCenter-Time*5)*0.2 (公式6)
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,如果用户在该环形波纹扭曲处理的过程中未提供扭曲向量纹理,那么可以用图像纹理中的各像素点的初始纹理坐标加上对应的第一扭曲向量,得到经过环形波纹扭曲的纹理坐标,也就是说可以用 加上 计算出经过环形波纹扭曲的纹理坐标。另一方面,如果用户在该环形波纹扭曲处理的过程中提供了扭曲向量纹理,那么还可以将扭曲向量纹理考虑到经过环形波纹扭曲的纹理坐标的计算过程中。
可选地,获取用户输入的第二扭曲纹理坐标,将第一扭曲纹理坐标与用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标可以包括:获取用户输入的第五扭曲纹理坐标,第五扭曲纹理坐标包括r通道和g通道的分量值;通过经过环形波纹扭曲的纹理坐标,对第五扭曲纹理坐标进行采样,得到第六扭曲向量;将图像纹理中的各像素点的初始纹理坐标与对应的第六扭曲向量相加,得到经过环形波纹扭曲的最终采样坐标。
需要说明的是,由于第二用户输入的扭曲效果的处理过程与第一用户输入的扭曲效果的处理过程类似,因此第二用户输入的扭曲效果的处理过程可以参见第一用户输入的扭曲效果的处理过程,在此不再赘述第二用户输入的扭曲效果的处理过程。
(三)螺旋扭曲效果
可选地,扭曲效果处理包括螺旋扭曲效果,对图像纹理对应的纹理坐标进行扭曲处理的过程可以实现为:对图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,得到经过螺旋扭曲的第七扭曲向量;基于图像纹理中的各像素点的初始纹理坐标和第七扭曲向量,确定经过螺旋扭曲的纹理坐标。
在实际应用中,图像纹理由许多的像素点组成,其中的每个像素点都对应有各自的初始纹理坐标,对于每个初始纹理坐标经过一系列的螺旋扭曲计算,就可以得到第七扭曲向量。第七扭曲向量也可以认为是偏移向量,即将对应的初始纹理坐标经过第七扭曲向量的偏移可以得到一个新的纹理坐标,可以使用该新的纹理坐标对上个扭曲处理过程输出的环形波纹扭曲的图像纹理进行采样,可以得到经过螺旋扭曲的图像纹理。
可选地,对图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算的过程可以通过公式7至公式9实现:
DeltaUV=CurrentTexcoord-DistortCenter (公式7)
RotatedDistortion.x=cos(RotateAngle)*DeltaUV.x-sin(RotateAngle)*DeltaUV.y (公式8)
RotatedDistortion.y=sin(RotateAngle)*DeltaUV.x-cos(RotateAngle)*DeltaUV.y (公式9)
其中,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,CurrentTexcoord为二维向量,DistortCenter是扰动中心,DistortCenter为二维向量,DeltaUV包括DeltaUV.x和DeltaUV.y,RotatedDistortion.x为经过螺旋扭曲的水平方向的扭曲值,RotatedDistortion.y为经过螺旋扭曲的竖直方向的扭曲值,RotateAngle为基于CurrentTexcoord和DistortCenter之间的距离计算出的数值。
在得到RotatedDistortion之后,可以用CurrentTexcoord加上对应的RotatedDistortion计算出经过螺旋扭曲的纹理坐标。最后,可以使用经过螺旋扭曲的纹理坐标对图像纹理对应的颜色纹理进行采样,输出经过螺旋扭曲的图像纹理。可以将输出的经过螺旋扭曲的图像纹理存储到颜色缓存中。
(四)径向扭曲效果
可选地,对临时纹理缓存中的采样结果进行径向扭曲处理的过程可以实现为:获取径向采样步长;从图像纹理中当前像素点对应的纹理坐标起始,对所述临时纹理缓存中的采样结果采样目标次数,每采样一次将当前像素点对应的纹理坐标加上径向采样步长,直到加上径向采样步长的当前像素点对应的纹理坐标达到目标坐标为止;将每次采样得到的颜色值进行累加,用累加后的值除以目标次数,得到经过径向扭曲的图像纹理。
上述径向采样步长的计算方式可以是:
BlurVector=DistortCenter-CurrentTexcoord (公式10)
DeltaSampling=BlurVector/BlurStepCoun (公式11)
其中,DistortCenter是扰动中心,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,CurrentTexcoord为二维向量,BlurVector为DistortCenter到CurrentTexcoord之间的方向向量,BlurStepCount为所述目标次数,用户可以设置该目标次数BlurStepCount,DeltaSampling为所述径向采样步长。
通过公式10至公式11可以计算出径向采样步长,在得到径向采样步长之后,可以从图像纹理中当前像素点对应的纹理坐标起始,对所述临时纹理缓存中的采样结果采样BlurStepCount次。在每次采样的过程中,可以将当前像素点对应的纹理坐标叠加径向采样步长,直到达到DistortCenter为止。每次采样都可以得到一个颜色值,可以将每次采样得到的颜色值进行累加,最终用累加值除以BlurStepCount计算出经过径向扭曲的图像纹理中每个像素点的颜色值。
最后,在获得混合扭曲后的图像纹理之后,可以在屏幕中显示该混合扭曲后的图像纹理。
采用本发明可以将多种扭曲算法进行自由组合,可以将不同扭曲算法输出的扭曲后的图像纹理进行迭代叠加,以实现更加丰富逼真的画面旋转、波动等扭曲效果。采用本发明,可以提高扭曲后的图像纹理的图像质量。
以下将详细描述本发明的一个或多个实施例的扭曲效果生成装置。本领域技术人员可以理解,这些扭曲效果生成装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图3为本发明实施例提供的一种扭曲效果生成装置的结构示意图,如图3所示,该装置包括:
获取模块31,用于获取图像纹理;
扭曲模块32,用于对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,所述扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲;
叠加模块33,用于获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述用户输入的第二扭曲纹理坐标进行叠加,得到最终采样坐标;
采样模块34,用于通过所述最终采样坐标对所述图像纹理进行采样,将采样结果输出到临时纹理缓存中;
混合模块35,用于对所述临时纹理缓存中的采样结果进行径向扭曲处理得到混合扭曲后的图像纹理,在屏幕中显示所述混合扭曲后的图像纹理。
可选地,所述采样模块34,还用于:
按照扭曲处理的排序顺序,对所述图像纹理的纹理坐标进行扭曲处理,每当对所述图像纹理的纹理坐标进行一次扭曲处理时,将当前进行扭曲处理所得的图像纹理确定为下一次扭曲处理时使用的所述图像纹理。
可选地,所述扭曲处理包括水波纹扭曲效果,所述扭曲模块32,用于:
对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,得到经过水波纹扭曲的第一扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第一扭曲向量,确定经过水波纹扭曲的纹理坐标。
可选地,所述叠加模块33,用于:
获取用户输入的第二扭曲纹理坐标,所述第二扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过水波纹扭曲的纹理坐标,对所述第二扭曲纹理坐标进行采样,得到第三扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第三扭曲向量相加,得到经过水波纹扭曲的最终采样坐标。
可选地,所述扭曲模块32,用于:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算;
所述公式为:
WaveDistortion.x’=sin(DistanceToCenter-Time*5)*0.2
WaveDistortion.x= WaveDistortion.x’+sin(CurrentTexcoord.y-Time*5)*0.2
WaveDistortion.y’=cos(DistanceToCenter-Time*5)*0.2
WaveDistortion.y= WaveDistortion.y’+cos(CurrentTexcoord.x-Time*5)*0.2
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,CurrentTexcoord.x和CurrentTexcoord.y为所述图像纹理中当前像素点的初始纹理坐标,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,所述扭曲效果处理包括环形波纹扭曲效果,所述扭曲模块32,用于:
对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算,得到经过环形波纹扭曲的第四扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第四扭曲向量,确定经过环形波纹扭曲的纹理坐标。
可选地,所述叠加模块33,用于:
获取用户输入的第五扭曲纹理坐标,所述第五扭曲纹理坐标括红色r通道和绿色g通道的分量值;
通过所述经过环形波纹扭曲的纹理坐标,对所述第五扭曲纹理坐标进行采样,得到第六扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第六扭曲向量相加,得到经过环形波纹扭曲的最终采样坐标。
可选地,所述扭曲模块32,用于:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算;
所述公式为:
WaveDistortion.x=sin(DistanceToCenter-Time*5)*0.2
WaveDistortion.y=sin(DistanceToCenter-Time*5)*0.2
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差。
可选地,所述扭曲效果处理包括螺旋扭曲效果,所述扭曲模块32,用于:
对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,得到经过螺旋扭曲的第七扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第七扭曲向量,确定经过螺旋扭曲的纹理坐标。
可选地,所述扭曲模块32,用于:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算;
所述公式为:
DeltaUV=CurrentTexcoord-DistortCenter
RotatedDistortion.x=cos(RotateAngle)*DeltaUV.x-sin(RotateAngle)*DeltaUV.y
RotatedDistortion.y=sin(RotateAngle)*DeltaUV.x-cos(RotateAngle)*DeltaUV.y
其中,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,DistortCenter是扰动中心,DeltaUV包括DeltaUV.x和DeltaUV.y,RotatedDistortion.x为经过螺旋扭曲的水平方向的扭曲值,RotatedDistortion.y为经过螺旋扭曲的竖直方向的扭曲值,RotateAngle为基于CurrentTexcoord和DistortCenter之间的距离计算出的数值。
可选地,所述混合模块35,用于:
获取径向采样步长;
从所述图像纹理中当前像素点对应的纹理坐标起始,对经过螺旋扭曲的图像采样目标次数,每采样一次将所述当前像素点对应的纹理坐标加上所述径向采样步长,直到加上所述径向采样步长的所述当前像素点对应的纹理坐标达到目标坐标为止;
将每次采样得到的颜色值进行累加,用累加后的值除以所述目标次数,得到经过径向扭曲的图像纹理。
可选地,所述混合模块35,用于:
通过公式,获取径向采样步长;
所述公式为:
BlurVector=DistortCenter-CurrentTexcoord
DeltaSampling=BlurVector/BlurStepCount
其中,DistortCenter是扰动中心,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,BlurVector为DistortCenter到CurrentTexcoord之间的方向向量,BlurStepCount为所述目标次数,DeltaSampling为所述径向采样步长。
图3所示装置可以执行前述图1至图2所示实施例中提供的扭曲效果生成方法,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图3所示扭曲效果生成装置的结构可实现为一电子设备,如图4所示,该电子设备可以包括:处理器91、存储器92。其中,所述存储器92上存储有可执行代码,当所述可执行代码被所述处理器91执行时,使所述处理器91至少可以实现如前述图1至图2所示实施例中提供的扭曲效果生成方法。
可选地,该电子设备中还可以包括通信接口93,用于与其他设备进行通信。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图1至图2所示实施例中提供的扭曲效果生成方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例提供的扭曲效果生成方法可以由某种程序/软件来执行,该程序/软件可以由网络侧提供,前述实施例中提及的电子设备可以将该程序/软件下载到本地的非易失性存储介质中,并在其需要执行前述扭曲效果生成方法时,通过CPU将该程序/软件读取到内存中,进而由CPU执行该程序/软件以实现前述实施例中所提供的扭曲效果生成方法,执行过程可以参见前述图1至图2中的示意。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种扭曲效果生成方法,其特征在于,包括:
获取图像纹理;
对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,所述扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲;
获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述第二扭曲纹理坐标进行叠加,得到最终采样坐标;
通过所述最终采样坐标对所述图像纹理进行采样,将采样结果输出到临时纹理缓存中;
获取径向采样步长;
从所述图像纹理中当前像素点对应的纹理坐标起始,对所述临时纹理缓存中的采样结果采样目标次数,每采样一次将所述当前像素点对应的纹理坐标加上所述径向采样步长,直到加上所述径向采样步长的所述当前像素点对应的纹理坐标达到目标坐标为止;
将每次采样得到的颜色值进行累加,用累加后的值除以所述目标次数,得到经过径向扭曲的图像纹理;
在屏幕中显示所述经过径向扭曲的图像纹理。
2.根据权利要求1所述的方法,其特征在于,所述对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,还包括:
按照扭曲处理的排序顺序,对所述图像纹理的纹理坐标进行扭曲处理,每当对所述图像纹理的纹理坐标进行一次扭曲处理时,将当前进行扭曲处理所得的图像纹理确定为下一次扭曲处理时使用的所述图像纹理。
3.根据权利要求2所述的方法,其特征在于,所述扭曲处理包括水波纹扭曲效果,所述对所述图像纹理对应的纹理坐标进行扭曲处理,包括:
对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,得到经过水波纹扭曲的第一扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第一扭曲向量,确定经过水波纹扭曲的纹理坐标。
4.根据权利要求3所述的方法,其特征在于,所述获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述第二扭曲纹理坐标进行叠加,得到最终采样坐标,包括:
获取用户输入的第二扭曲纹理坐标,所述第二扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过水波纹扭曲的纹理坐标,对所述第二扭曲纹理坐标进行采样,得到第三扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第三扭曲向量相加,得到经过水波纹扭曲的最终采样坐标。
5.根据权利要求3所述的方法,其特征在于,所述对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算,包括:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行水波纹扭曲计算;
所述公式为:
其中,WaveDistortion.x为所述图像纹理中的任一像素点的初始纹理坐标在水平方向上的最终偏移分量,WaveDistortion.y为所述图像纹理中的任一像素点的初始纹理坐标在竖直方向上的最终偏移分量,DistanceToCenter为所述图像纹理中当前像素点到中心点之间的距离,CurrentTexcoord.x和CurrentTexcoord.y为所述图像纹理中当前像素点的初始纹理坐标,Time为程序启动时刻到对所述图像纹理渲染的时刻之间的时间差,WaveDistortion.x’为基于DistanceToCenter和Time确定的值,WaveDistortion.y’为基于DistanceToCenter和Time确定的值。
6.根据权利要求2所述的方法,其特征在于,所述扭曲效果处理包括环形波纹扭曲效果,所述对所述图像纹理对应的纹理坐标进行扭曲处理,包括:
对所述图像纹理中的每个像素点的初始纹理坐标进行环形波纹扭曲计算,得到经过环形波纹扭曲的第四扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第四扭曲向量,确定经过环形波纹扭曲的纹理坐标。
7.根据权利要求6所述的方法,其特征在于,所述获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述第二扭曲纹理坐标进行叠加,得到最终采样坐标,包括:
获取用户输入的第二扭曲纹理坐标,所述第二扭曲纹理坐标包括红色r通道和绿色g通道的分量值;
通过所述经过环形波纹扭曲的纹理坐标,对所述第二扭曲纹理坐标进行采样,得到第六扭曲向量;
将所述图像纹理中的各像素点的初始纹理坐标与对应的第六扭曲向量相加,得到经过环形波
纹扭曲的最终采样坐标。
9.根据权利要求2所述的方法,其特征在于,所述扭曲效果处理包括螺旋扭曲效果,所述对所述图像纹理对应的纹理坐标进行扭曲处理,包括:
对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,得到经过螺旋扭曲的第七扭曲向量;
基于所述图像纹理中的各像素点的初始纹理坐标和所述第七扭曲向量,确定经过螺旋扭曲的纹理坐标。
10.根据权利要求9所述的方法,其特征在于,所述对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算,包括:
通过公式,对所述图像纹理中的每个像素点的初始纹理坐标进行螺旋扭曲计算;
所述公式为:
其中,CurrentTexcoord为所述图像纹理中当前像素点的初始纹理坐标,DistortCenter是扰动中心,DeltaUV包括DeltaUV.x和DeltaUV.y;DeltaUV为基于CurrentTexcoord和DistortCenter确定的值,RotatedDistortion.x为经过螺旋扭曲的水平方向的扭曲值,RotatedDistortion.y为经过螺旋扭曲的竖直方向的扭曲值,RotateAngle为基于CurrentTexcoord和DistortCenter之间的距离计算出的数值。
12.一种扭曲效果生成装置,其特征在于,包括:
获取模块,用于获取图像纹理;
扭曲模块,用于对所述图像纹理对应的纹理坐标进行扭曲处理,得到第一扭曲纹理坐标,所述扭曲处理依次包括水波纹扭曲、环形波纹扭曲以及螺旋扭曲;
叠加模块,用于获取用户输入的第二扭曲纹理坐标,将所述第一扭曲纹理坐标与所述第二扭曲纹理坐标进行叠加,得到最终采样坐标;
采样模块,用于通过所述最终采样坐标对所述图像纹理进行采样,将采样结果输出到临时纹
理缓存中;
混合模块,用于获取径向采样步长;从所述图像纹理中当前像素点对应的纹理坐标起始,对所述临时纹理缓存中的采样结果采样目标次数,每采样一次将所述当前像素点对应的纹理坐标加上所述径向采样步长,直到加上所述径向采样步长的所述当前像素点对应的纹理坐标达到目标坐标为止;将每次采样得到的颜色值进行累加,用累加后的值除以所述目标次数,得到经过径向扭曲的图像纹理,在屏幕中显示所述经过径向扭曲的图像纹理。
13.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-11中任一项所述的扭曲效果生成方法。
14.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-11中任一项所述的扭曲效果生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011143463.5A CN111968213B (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
CN202110077490.5A CN112652047A (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011143463.5A CN111968213B (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110077490.5A Division CN112652047A (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111968213A CN111968213A (zh) | 2020-11-20 |
CN111968213B true CN111968213B (zh) | 2021-03-23 |
Family
ID=73387189
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011143463.5A Active CN111968213B (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
CN202110077490.5A Pending CN112652047A (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110077490.5A Pending CN112652047A (zh) | 2020-10-23 | 2020-10-23 | 扭曲效果生成方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111968213B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111968213B (zh) * | 2020-10-23 | 2021-03-23 | 成都完美时空网络技术有限公司 | 扭曲效果生成方法、装置、设备和存储介质 |
CN113181639B (zh) * | 2021-04-28 | 2024-06-04 | 网易(杭州)网络有限公司 | 一种游戏中的图形处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898438A (en) * | 1996-11-12 | 1999-04-27 | Ford Global Technologies, Inc. | Texture mapping of photographic images to CAD surfaces |
EP1413989A1 (en) * | 2002-10-21 | 2004-04-28 | Canon Europa N.V. | Apparatus and method for generating texture maps for use in 3D computer graphics |
CN107079141A (zh) * | 2014-09-22 | 2017-08-18 | 三星电子株式会社 | 用于三维视频的图像拼接 |
CN108182852A (zh) * | 2018-02-15 | 2018-06-19 | 上海诚唐展览展示有限公司 | 一种用于科普演示的黑洞模拟感知*** |
CN111311719A (zh) * | 2020-02-10 | 2020-06-19 | 网易(杭州)网络有限公司 | 一种游戏中的显示处理方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1781111A (zh) * | 2002-11-06 | 2006-05-31 | 几何信息学股份有限公司 | 基于共形结构的几何曲面分析 |
BR102012016227A2 (pt) * | 2012-06-27 | 2015-12-01 | Unicamp | método de obtenção de faces atrativas e seus usos |
CN105631924B (zh) * | 2015-12-28 | 2018-09-11 | 北京像素软件科技股份有限公司 | 一种场景中扭曲效果的实现方法 |
US10104288B2 (en) * | 2017-02-08 | 2018-10-16 | Aspeed Technology Inc. | Method and apparatus for generating panoramic image with stitching process |
CN110111262B (zh) * | 2019-03-29 | 2021-06-04 | 北京小鸟听听科技有限公司 | 一种投影仪投影畸变校正方法、装置和投影仪 |
CN110917617B (zh) * | 2019-11-15 | 2023-10-24 | 瑞立视视觉创意科技(深圳)有限公司 | 水波纹图像的生成方法、装置、设备及存储介质 |
CN111968213B (zh) * | 2020-10-23 | 2021-03-23 | 成都完美时空网络技术有限公司 | 扭曲效果生成方法、装置、设备和存储介质 |
-
2020
- 2020-10-23 CN CN202011143463.5A patent/CN111968213B/zh active Active
- 2020-10-23 CN CN202110077490.5A patent/CN112652047A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898438A (en) * | 1996-11-12 | 1999-04-27 | Ford Global Technologies, Inc. | Texture mapping of photographic images to CAD surfaces |
EP1413989A1 (en) * | 2002-10-21 | 2004-04-28 | Canon Europa N.V. | Apparatus and method for generating texture maps for use in 3D computer graphics |
CN107079141A (zh) * | 2014-09-22 | 2017-08-18 | 三星电子株式会社 | 用于三维视频的图像拼接 |
CN108182852A (zh) * | 2018-02-15 | 2018-06-19 | 上海诚唐展览展示有限公司 | 一种用于科普演示的黑洞模拟感知*** |
CN111311719A (zh) * | 2020-02-10 | 2020-06-19 | 网易(杭州)网络有限公司 | 一种游戏中的显示处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111968213A (zh) | 2020-11-20 |
CN112652047A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110136066B (zh) | 面向视频的超分辨率方法、装置、设备和存储介质 | |
CN106504220B (zh) | 一种图像处理方法及装置 | |
CN111968213B (zh) | 扭曲效果生成方法、装置、设备和存储介质 | |
CN110062176B (zh) | 生成视频的方法、装置、电子设备和计算机可读存储介质 | |
KR100914211B1 (ko) | 왜곡 영상 보정 장치 및 방법 | |
US20190073743A1 (en) | Image generating apparatus, image generating method, and program | |
CN110335330B (zh) | 图像模拟生成方法及其***、深度学习算法训练方法及电子设备 | |
US11030715B2 (en) | Image processing method and apparatus | |
JP2015035198A (ja) | 画像処理装置及び画像処理方法 | |
CN107948547B (zh) | 全景视频拼接的处理方法、装置及电子设备 | |
CN110070515B (zh) | 图像合成方法、装置和计算机可读存储介质 | |
JP6071419B2 (ja) | 画像処理装置及び画像処理方法 | |
EP2731325A1 (en) | Imaging device and recording medium | |
CN103700062B (zh) | 图像处理方法和装置 | |
CN103593156B (zh) | 一种三维全景显示方法和装置 | |
US10158790B2 (en) | Image processing apparatus, image processing system, and image processing method | |
JP2009187548A (ja) | サムネイル画像生成方法及びその装置 | |
WO2018087856A1 (ja) | 映像合成装置及び映像合成方法 | |
US10311550B2 (en) | Image processing device for eliminating graininess of image | |
CN114926491B (zh) | 一种抠图方法、装置、电子设备及存储介质 | |
JP6756679B2 (ja) | 決定装置、画像処理装置、決定方法及び決定プログラム | |
WO2018092715A1 (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN112700526B (zh) | 凹凸材质图像渲染方法及装置 | |
US9754162B2 (en) | Image processing method and device for adaptive image enhancement | |
CN115002345A (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 |