|
- -- GLSL.Vert --
-
- #version 120
-
- void main()
- {
- gl_Position=gl_Vertex;
- gl_TexCoord[0]=gl_MultiTexCoord0;
- }
-
- -- GLSL.Frag --
-
- #version 120
-
- uniform sampler2D texture;
- uniform vec2 screen_size;
- uniform float blur;
- uniform float deform;
-
- const float PI=3.14159265358979323846;
-
- void main(void)
- {
- vec4 total=vec4(0.0);
- vec2 p=gl_TexCoord[0].xy/screen_size;
- float mask=2.0-p.x*(6.0-p.x*6.0)*p.y*(6.0-p.y*6.0);
- float b=blur+deform*mask;
- total+=texture2D(texture,vec2(p.x-b*4.0,p.y))*0.04;
- total+=texture2D(texture,vec2(p.x-b*3.0,p.y))*0.08;
- total+=texture2D(texture,vec2(p.x-b*2.0,p.y))*0.12;
- total+=texture2D(texture,vec2(p.x-b ,p.y))*0.16;
- total+=texture2D(texture,vec2(p.x ,p.y))*0.20;
- total+=texture2D(texture,vec2(p.x+b ,p.y))*0.16;
- total+=texture2D(texture,vec2(p.x+b*2.0,p.y))*0.12;
- total+=texture2D(texture,vec2(p.x+b*3.0,p.y))*0.08;
- total+=texture2D(texture,vec2(p.x+b*4.0,p.y))*0.04;
- gl_FragColor=total;
- }
|