// Cyrille Henry 2007

uniform float K1, seed;
uniform sampler2D tex0;

void main()
{

	vec2 C =  (gl_TextureMatrix[0] * gl_TexCoord[0]).st;

	float xs1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.));
	float xs2 = sin(xs1*533.);
	float xs3 = sin(xs2*1013.);

	float ys1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.));
	float ys2 = sin(ys1*5313.);
	float ys3 = sin(ys2*10113.);

	gl_FragColor = texture2D(tex0, C + K1 * 0.01 *vec2(xs3,ys3)) ;

}