Image Warping - Bulge Effect Algorithm
Can any point to image warping algorithms? Specifically for bulge effect?
See if I understood what you want. Suppose your image coordinates go from 0 to 1.
If you do:
r = Sqrt[(x - .5)^2 + (y - .5)^2]
a = ArcTan[x - .5, y - .5]
rn = r^2.5/.5
And then remap your pixels according to:
x -> rn*Cos[a] + .5
y -> rn*Sin[a] + .5
You get:
You may adjust the parameters to get bigger or smaller bulges.
Edit
Let's see if I understood your comment about warping. The following images are generated using
rn = r^k {k: 1 ... 2}:
GLSL code version:
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);
}
original:
explosion:
implosion:
cheers!