@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -16,19 +16,19 @@ uniform sampler2D texture; | |||||
uniform vec2 radius; | uniform vec2 radius; | ||||
void main(void) | void main(void) | ||||
{ | |||||
vec4 total=vec4(0.0); | |||||
vec2 p=gl_TexCoord[0].xy; | |||||
float mask=2.0-p.x*(6.0-p.x*6.0)*p.y*(6.0-p.y*6.0); | |||||
float b=radius.x+radius.y*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; | |||||
} | |||||
{ | |||||
vec4 total = vec4(0.0); | |||||
vec2 p = gl_TexCoord[0].xy; | |||||
float mask = 2.0-p.x*(6.0-p.x*6.0)*p.y*(6.0-p.y*6.0); | |||||
float b = radius.x+radius.y*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; | |||||
} |
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -16,19 +16,20 @@ uniform sampler2D texture; | |||||
uniform vec2 radius; | uniform vec2 radius; | ||||
void main(void) | void main(void) | ||||
{ | |||||
vec4 total=vec4(0.0); | |||||
vec2 p=gl_TexCoord[0].xy; | |||||
float mask=2.0-p.x*(6.0-p.x*6.0)*p.y*(6.0-p.y*6.0); | |||||
float b=radius.x+radius.y*mask; | |||||
total+=texture2D(texture,vec2(p.x,p.y-b*4.0))*0.04; | |||||
total+=texture2D(texture,vec2(p.x,p.y-b*3.0))*0.08; | |||||
total+=texture2D(texture,vec2(p.x,p.y-b*2.0))*0.12; | |||||
total+=texture2D(texture,vec2(p.x,p.y-b ))*0.16; | |||||
total+=texture2D(texture,vec2(p.x,p.y ))*0.20; | |||||
total+=texture2D(texture,vec2(p.x,p.y+b ))*0.16; | |||||
total+=texture2D(texture,vec2(p.x,p.y+b*2.0))*0.12; | |||||
total+=texture2D(texture,vec2(p.x,p.y+b*3.0))*0.08; | |||||
total+=texture2D(texture,vec2(p.x,p.y+b*4.0))*0.04; | |||||
gl_FragColor=total; | |||||
} | |||||
{ | |||||
vec4 total = vec4(0.0); | |||||
vec2 p = gl_TexCoord[0].xy; | |||||
float mask = 2.0-p.x*(6.0-p.x*6.0)*p.y*(6.0-p.y*6.0); | |||||
float b = radius.x+radius.y*mask; | |||||
total += texture2D(texture,vec2(p.x,p.y-b*4.0))*0.04; | |||||
total += texture2D(texture,vec2(p.x,p.y-b*3.0))*0.08; | |||||
total += texture2D(texture,vec2(p.x,p.y-b*2.0))*0.12; | |||||
total += texture2D(texture,vec2(p.x,p.y-b ))*0.16; | |||||
total += texture2D(texture,vec2(p.x,p.y ))*0.20; | |||||
total += texture2D(texture,vec2(p.x,p.y+b ))*0.16; | |||||
total += texture2D(texture,vec2(p.x,p.y+b*2.0))*0.12; | |||||
total += texture2D(texture,vec2(p.x,p.y+b*3.0))*0.08; | |||||
total += texture2D(texture,vec2(p.x,p.y+b*4.0))*0.04; | |||||
gl_FragColor = total; | |||||
} | |||||
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -19,17 +19,17 @@ uniform vec4 color; | |||||
uniform float flash; | uniform float flash; | ||||
void main(void) | void main(void) | ||||
{ | |||||
vec2 p=gl_FragCoord.xy/screen_size.xy; | |||||
vec3 c=texture2D(texture,p).xyz; | |||||
float a=(c.x+c.y+c.z)/3.0; | |||||
c=mix(c,vec3(a),color.w); // grayscale | |||||
c*=filter; // filter | |||||
c+=color.z*0.1; // level | |||||
c*=color.x; // brightness | |||||
c=0.5+(c-0.5)*color.y; // contrast | |||||
c+=flash; // flash | |||||
gl_FragColor=vec4(c,1.0); | |||||
} | |||||
{ | |||||
vec2 p = gl_FragCoord.xy/screen_size.xy; | |||||
vec3 c = texture2D(texture,p).xyz; | |||||
float a = (c.x+c.y+c.z)/3.0; | |||||
c = mix(c,vec3(a),color.w); // grayscale | |||||
c *= filter; // filter | |||||
c += color.z*0.1; // level | |||||
c *= color.x; // brightness | |||||
c = 0.5+(c-0.5)*color.y; // contrast | |||||
c += flash; // flash | |||||
gl_FragColor = vec4(c,1.0); | |||||
} |
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -18,20 +18,21 @@ uniform float time; | |||||
uniform vec4 copper; | uniform vec4 copper; | ||||
void main(void) | void main(void) | ||||
{ | |||||
vec2 p=gl_TexCoord[0].xy; | |||||
vec3 source=texture2D(texture,p).xyz; | |||||
{ | |||||
vec2 p = gl_TexCoord[0].xy; | |||||
vec3 source = texture2D(texture,p).xyz; | |||||
vec3 color=vec3(0.5); | |||||
vec3 color = vec3(0.5); | |||||
color.x+=0.5*cos(p.y*float(screen_size.y/copper.z)+time*2.0); | |||||
color.z+=0.5*sin(p.y*float(screen_size.y/copper.z)+time*2.0); | |||||
color.x += 0.5*cos(p.y*float(screen_size.y/copper.z)+time*2.0); | |||||
color.z += 0.5*sin(p.y*float(screen_size.y/copper.z)+time*2.0); | |||||
color*=copper.x+copper.y*cos(p.y*float(screen_size.x/copper.w)-time*2.0); | |||||
color *= copper.x+copper.y*cos(p.y*float(screen_size.x/copper.w)-time*2.0); | |||||
color.x=float(int(color.x*8.0)*32)/256.0; | |||||
color.y=float(int(color.y*8.0)*32)/256.0; | |||||
color.z=float(int(color.z*8.0)*32)/256.0; | |||||
color.x = float(int(color.x*8.0)*32)/256.0; | |||||
color.y = float(int(color.y*8.0)*32)/256.0; | |||||
color.z = float(int(color.z*8.0)*32)/256.0; | |||||
gl_FragColor = vec4((color==1.0)?color:source,1.0); | |||||
} | |||||
gl_FragColor=vec4((color==1.0)?color:source,1.0); | |||||
} |
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -17,6 +17,6 @@ uniform sampler2D source; | |||||
uniform vec2 mix; | uniform vec2 mix; | ||||
void main(void) | void main(void) | ||||
{ | |||||
gl_FragColor=texture2D(source,gl_TexCoord[0].xy)*mix.x+texture2D(glow,gl_TexCoord[0].xy)*mix.y; | |||||
} | |||||
{ | |||||
gl_FragColor = texture2D(source,gl_TexCoord[0].xy)*mix.x+texture2D(glow,gl_TexCoord[0].xy)*mix.y; | |||||
} |
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -20,20 +20,21 @@ uniform float noise; | |||||
uniform vec3 retrace; | uniform vec3 retrace; | ||||
float rand(in vec2 p,in float t,in float v) | float rand(in vec2 p,in float t,in float v) | ||||
{ | |||||
{ | |||||
return fract(sin(dot(p+mod(t,2.0),vec2(12.9898,78.2333)))*v); | return fract(sin(dot(p+mod(t,2.0),vec2(12.9898,78.2333)))*v); | ||||
} | |||||
} | |||||
void main(void) | void main(void) | ||||
{ | |||||
vec2 p=gl_FragCoord.xy/screen_size.xy; | |||||
float r1=rand(p,time,43758.5453); | |||||
float r2=rand(p,time,70425.2854); | |||||
vec2 o=(offset-offset*2.0*r1)/screen_size; | |||||
vec3 c=texture2D(texture,p+o).xyz; // offset | |||||
c*=1.0+(noise-noise*2.0*r1); // noise | |||||
c-=retrace.x*0.01*mod(p.y*retrace.y+time*retrace.z,1.0); // retrace | |||||
gl_FragColor=vec4(c,1.0); | |||||
} | |||||
{ | |||||
vec2 p = gl_FragCoord.xy/screen_size.xy; | |||||
float r1 = rand(p,time,43758.5453); | |||||
float r2 = rand(p,time,70425.2854); | |||||
vec2 o = (offset-offset*2.0*r1)/screen_size; | |||||
vec3 c = texture2D(texture,p+o).xyz; // offset | |||||
c *= 1.0+(noise-noise*2.0*r1); // noise | |||||
c -= retrace.x*0.01*mod(p.y*retrace.y+time*retrace.z,1.0); // retrace | |||||
gl_FragColor = vec4(c,1.0); | |||||
} | |||||
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -29,47 +29,48 @@ uniform float sync; | |||||
uniform float beat; | uniform float beat; | ||||
vec2 screen(in vec2 p,in float radius) | vec2 screen(in vec2 p,in float radius) | ||||
{ | |||||
float d=deform.x+sync*0.0625+beat*0.0375; | |||||
{ | |||||
float d = deform.x+sync*0.0625+beat*0.0375; | |||||
return p*(1.5-(radius*cos(p.x*d)+radius*cos(p.y*d)))-0.5; | return p*(1.5-(radius*cos(p.x*d)+radius*cos(p.y*d)))-0.5; | ||||
} | |||||
} | |||||
vec3 get_color(in sampler2D tex,in vec2 p) | vec3 get_color(in sampler2D tex,in vec2 p) | ||||
{ | |||||
{ | |||||
return texture2D(tex,clamp(p,-1.0,0.0)).xyz; | return texture2D(tex,clamp(p,-1.0,0.0)).xyz; | ||||
} | |||||
} | |||||
float letterbox(in vec2 p,in float w,in float radius,in float smooth) | float letterbox(in vec2 p,in float w,in float radius,in float smooth) | ||||
{ | |||||
{ | |||||
return 1.0-smoothstep(smooth,1.0,length(max(abs(p*w+w/2.0)-vec2(radius),0.0))+radius); | return 1.0-smoothstep(smooth,1.0,length(max(abs(p*w+w/2.0)-vec2(radius),0.0))+radius); | ||||
} | |||||
} | |||||
void main(void) | void main(void) | ||||
{ | |||||
vec2 q=gl_FragCoord.xy/screen_size.xy; | |||||
vec2 p=-1.0+2.0*gl_FragCoord.xy/screen_size.xy; | |||||
p.y+=0.025*sync; | |||||
vec2 z=screen(p,deform.y); | |||||
vec2 z1=screen(p,deform.y+ghost1.z*0.01); | |||||
vec2 z2=screen(p,deform.y+ghost2.z*0.01); | |||||
float mask=q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0); | |||||
{ | |||||
vec2 q = gl_FragCoord.xy/screen_size.xy; | |||||
vec2 p = -1.0+2.0*gl_FragCoord.xy/screen_size.xy; | |||||
p.y += 0.025*sync; | |||||
vec2 z = screen(p,deform.y); | |||||
vec2 z1 = screen(p,deform.y+ghost1.z*0.01); | |||||
vec2 z2 = screen(p,deform.y+ghost2.z*0.01); | |||||
float mask = q.x*(6.0-q.x*6.0)*q.y*(6.0-q.y*6.0); | |||||
vec3 source=get_color(texture,z); | |||||
vec3 g1=get_color(texture,z1-ghost1.xy*0.01); | |||||
vec3 g2=get_color(texture,z2-ghost2.xy*0.01); | |||||
vec3 source = get_color(texture,z); | |||||
vec3 g1 = get_color(texture,z1-ghost1.xy*0.01); | |||||
vec3 g2 = get_color(texture,z2-ghost2.xy*0.01); | |||||
vec3 c=source+g1*ghost1.w+g2*ghost2.w; // mix | |||||
vec3 c = source+g1*ghost1.w+g2*ghost2.w; // mix | |||||
float v=aberration/float(screen_size.x);//+aberration/float(screen_size.x)*(2.0-mask); | |||||
vec3 ca1=get_color(texture,vec2(z.x-v,z.y)); | |||||
vec3 ca2=get_color(texture,vec2(z.x+v,z.y)); | |||||
c+=vec3(ca1.x,c.y,ca2.z); // chromatic aberration | |||||
float v = aberration/float(screen_size.x);//+aberration/float(screen_size.x)*(2.0-mask); | |||||
vec3 ca1 = get_color(texture,vec2(z.x-v,z.y)); | |||||
vec3 ca2 = get_color(texture,vec2(z.x+v,z.y)); | |||||
c += vec3(ca1.x,c.y,ca2.z); // chromatic aberration | |||||
c *= moire_h.x+moire_h.y*sin(z.y*float(screen_size.y*moire_h.z))*sin(0.5+z.x*float(screen_size.x*moire_h.w)); // moire h | |||||
c *= moire_v.x+moire_v.y*sin(z.x*float(screen_size.x*moire_v.z))*sin(0.5+z.y*float(screen_size.y*moire_v.w)); // moire v | |||||
c *= scanline_h.x+scanline_h.y*cos(z.y*float(screen_size.y*scanline_h.z+scanline_h.w)); // scanline h | |||||
c *= scanline_v.x+scanline_v.y*cos(z.x*float(screen_size.x*scanline_v.z+scanline_v.w)); // scanline v | |||||
c *= mix(1.0,mask,vignetting); // vignetting | |||||
c *= letterbox(z,corner.x+2.0,corner.y,corner.z); // corner | |||||
gl_FragColor = vec4(c,1.0); | |||||
} | |||||
c*=moire_h.x+moire_h.y*sin(z.y*float(screen_size.y*moire_h.z))*sin(0.5+z.x*float(screen_size.x*moire_h.w)); // moire h | |||||
c*=moire_v.x+moire_v.y*sin(z.x*float(screen_size.x*moire_v.z))*sin(0.5+z.y*float(screen_size.y*moire_v.w)); // moire v | |||||
c*=scanline_h.x+scanline_h.y*cos(z.y*float(screen_size.y*scanline_h.z+scanline_h.w)); // scanline h | |||||
c*=scanline_v.x+scanline_v.y*cos(z.x*float(screen_size.x*scanline_v.z+scanline_v.w)); // scanline v | |||||
c*=mix(1.0,mask,vignetting); // vignetting | |||||
c*=letterbox(z,corner.x+2.0,corner.y,corner.z); // corner | |||||
gl_FragColor=vec4(c,1.0); | |||||
} |
@@ -1,14 +1,14 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
gl_Position=gl_Vertex; | |||||
gl_TexCoord[0]=gl_MultiTexCoord0; | |||||
} | |||||
{ | |||||
gl_Position = gl_Vertex; | |||||
gl_TexCoord[0] = gl_MultiTexCoord0; | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
@@ -17,6 +17,7 @@ uniform sampler2D buffer; | |||||
uniform vec2 mix; | uniform vec2 mix; | ||||
void main(void) | void main(void) | ||||
{ | |||||
gl_FragColor=texture2D(source,gl_TexCoord[0].xy)*mix.x+texture2D(buffer,gl_TexCoord[0].xy)*mix.y; | |||||
} | |||||
{ | |||||
gl_FragColor = texture2D(source,gl_TexCoord[0].xy)*mix.x+texture2D(buffer,gl_TexCoord[0].xy)*mix.y; | |||||
} | |||||
@@ -1,20 +1,21 @@ | |||||
[vert.glsl] | |||||
#version 120 | #version 120 | ||||
void main() | void main() | ||||
{ | |||||
{ | |||||
gl_Position = gl_Vertex; | gl_Position = gl_Vertex; | ||||
gl_TexCoord[0] = gl_MultiTexCoord0; | gl_TexCoord[0] = gl_MultiTexCoord0; | ||||
} | |||||
} | |||||
[frag.glsl] | |||||
#version 120 | #version 120 | ||||
uniform sampler2D texture; | uniform sampler2D texture; | ||||
void main(void) | void main(void) | ||||
{ | |||||
{ | |||||
gl_FragColor = texture2D(texture, gl_TexCoord[0].xy); | gl_FragColor = texture2D(texture, gl_TexCoord[0].xy); | ||||
} | |||||
} | |||||
@@ -1,4 +1,4 @@ | |||||
[vert.glsl] | |||||
#version 130 | #version 130 | ||||
@@ -61,7 +61,7 @@ void main() | |||||
gl_Position = in_Transform * vec4(in_Position, 0.0, 1.0); | gl_Position = in_Transform * vec4(in_Position, 0.0, 1.0); | ||||
} | } | ||||
[frag.glsl] | |||||
#version 130 | #version 130 | ||||