可以指出图像变形算法吗?特别是对于膨胀效应?
答案 0 :(得分:22)
看看我是否理解你想要的东西。假设您的图像坐标从0到1。
如果你这样做:
r = Sqrt[(x - .5)^2 + (y - .5)^2]
a = ArcTan[x - .5, y - .5]
rn = r^2.5/.5
然后根据以下内容重新映射您的像素:
x -> rn*Cos[a] + .5
y -> rn*Sin[a] + .5
你得到:
您可以调整参数以获得更大或更小的凸起。
修改
让我们看看我是否理解你关于翘曲的评论。使用
生成以下图像rn = r^k {k: 1 ... 2}:
答案 1 :(得分:14)
GLSL代码版本:
uniform sampler2D tex;
void main()
{
vec2 cen = vec2(0.5,0.5) - gl_TexCoord[0].xy;
vec2 mcen = - // delete minus for implosion effect
0.07*log(length(cen))*normalize(cen);
gl_FragColor = texture2D(tex, gl_TexCoord[0].xy+mcen);
}
原:
爆炸:
内爆:
喝彩!