0
|
1 /* Fragment shader */
|
|
2
|
|
3 uniform float width;
|
|
4 uniform float height;
|
|
5
|
|
6 uniform float time;
|
|
7
|
|
8 varying float zpos;
|
|
9
|
|
10 uniform sampler2D texture0;
|
|
11
|
|
12 vec4 sampleEffect(float x, float y)
|
|
13 {
|
|
14 float v = (gl_FragCoord.x+x / gl_FragCoord.y+y) * cos(zpos) * sin(zpos);
|
|
15 v += (gl_FragCoord.y+y / gl_FragCoord.x+x) * tan(zpos) * atan(zpos);
|
|
16 v -= (gl_FragCoord.y+y * gl_FragCoord.x+x) * cos(zpos) * tan(zpos);
|
|
17
|
|
18 float v2 = (0.5*zpos+gl_FragCoord.x+x) + (0.4*zpos+gl_FragCoord.y+y);
|
|
19 v2 -= (gl_FragCoord.y+y / gl_FragCoord.x+x) * tan(zpos) * atan(zpos);
|
|
20 v2 += (gl_FragCoord.y+y * gl_FragCoord.x+x) * cos(zpos) * tan(zpos);
|
|
21
|
|
22 vec4 color = vec4(v+v2*0.1-zpos*10.0-zpos,v*v2*0.15-zpos,v2-zpos*0.1,0.02);
|
|
23
|
|
24 return color;
|
|
25 }
|
|
26
|
|
27 void main()
|
|
28 {
|
|
29
|
|
30 vec4 outcolor = (sampleEffect(0.0,0.0) + sampleEffect(1.0,0.0) + sampleEffect(-1.0,0.0) - sampleEffect(0.0,-1.0) + sampleEffect(0.0,1.0))*vec4(1.0,0.5,0.3,0.001);
|
|
31
|
|
32 vec4 finaleffu = outcolor*vec4(-1.0*0.2,1.0*0.4,-1.0*0.4+cos(time*0.000001)*0.3,1.0)+outcolor*0.5-0.4*cos(gl_FragCoord.x*(0.005+atan(time*0.05*gl_FragCoord.x))+gl_FragCoord.y*(0.1+atan(time*0.01)));
|
|
33
|
|
34 vec4 texcolor = texture2D(texture0, vec2((gl_FragCoord.x/width)+sin(time*0.01)*0.01, (gl_FragCoord.y/height)+cos(time*0.005)*0.01));
|
|
35
|
|
36 outcolor = vec4(texcolor.r,finaleffu.r/texcolor.r*0.2,finaleffu.r-texcolor.r*0.1,finaleffu.a*(sin(time*0.000007)*texcolor.r*0.2));
|
|
37
|
|
38 // outcolor.b *= texcolor.g*0.3;
|
|
39
|
|
40 float redv = sin(time*0.00003)*0.98;
|
|
41
|
|
42 float timefade = time*0.000005;
|
|
43
|
|
44 gl_FragColor = vec4(outcolor.r,outcolor.r*(0.2+redv),outcolor.r*(0.2+redv),outcolor.a*redv*timefade);
|
|
45
|
|
46 }
|
|
47
|