123456789101112131415161718192021222324252627 |
- #version 120
-
- uniform sampler2D texture;
- uniform vec2 screenSize;
- uniform float time;
-
- varying vec2 uvCoord;
-
- const float pi = 3.14159265f;
-
- vec3 color(float x) {
- return max(min(sin(vec3(x,x+pi*2.0/3.0,x+pi*4.0/3.0))+0.5,1.0),0.0);
- }
-
- void main() {
- vec2 pos = (( gl_FragCoord.xy / screenSize.xy )-0.5)*screenSize.xy/screenSize.x*4.0;
- pos+=normalize(pos);
- pos.xy+=sin(pos.yx*10.0)*0.1;
- float r=(2.0/(dot(pos,pos)*10.0+1.0));
- vec2 rr=vec2(cos(r),sin(r));
- pos=pos.xy*rr.xx+pos.yx*rr.yy*vec2(-1.0,1.0);
- float f=(length(pos)*10.0)+time;
- //f=acos((pos.x/length(pos)*0.5+0.5)*pi);
- f+=sin(atan(pos.y,pos.x)*7.0)*5.0;
- vec4 rect = texture2D(texture,uvCoord);
- gl_FragColor = vec4(color(f),1.f)*rect;
- }
|