Update nightvision2.glsl

This commit is contained in:
myownfriend
2014-05-20 23:53:37 -04:00
parent d5fea64953
commit 548d872843

View File

@ -7,50 +7,60 @@ uniform vec4 resolution;
void main() void main()
{ {
//variables //variables
float internalresolution = 1278.0; float internalresolution = 1278.0;
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = texture(samp9, uv0).rgba;
//blur
float4 blurtotal = float4(0.0, 0.0, 0.0, 0.0); //blur
float blursize = 1.5; float4 blurtotal = float4(0.0, 0.0, 0.0, 0.0);
blurtotal += texture(samp9, uv0 + float2(-blursize, -blursize)*resolution.zw); float blursize = 1.5;
blurtotal += texture(samp9, uv0 + float2(-blursize, blursize)*resolution.zw); blurtotal += texture(samp9, uv0 + float2(-blursize, -blursize) * resolution.zw);
blurtotal += texture(samp9, uv0 + float2( blursize, -blursize)*resolution.zw); blurtotal += texture(samp9, uv0 + float2(-blursize, blursize) * resolution.zw);
blurtotal += texture(samp9, uv0 + float2( blursize, blursize)*resolution.zw); blurtotal += texture(samp9, uv0 + float2( blursize, -blursize) * resolution.zw);
blurtotal += texture(samp9, uv0 + float2(-blursize, 0.0)*resolution.zw); blurtotal += texture(samp9, uv0 + float2( blursize, blursize) * resolution.zw);
blurtotal += texture(samp9, uv0 + float2( blursize, 0.0)*resolution.zw); blurtotal += texture(samp9, uv0 + float2(-blursize, 0.0) * resolution.zw);
blurtotal += texture(samp9, uv0 + float2( 0.0, -blursize)*resolution.zw); blurtotal += texture(samp9, uv0 + float2( blursize, 0.0) * resolution.zw);
blurtotal += texture(samp9, uv0 + float2( 0.0, blursize)*resolution.zw); blurtotal += texture(samp9, uv0 + float2( 0.0, -blursize) * resolution.zw);
blurtotal *= 0.125; blurtotal += texture(samp9, uv0 + float2( 0.0, blursize) * resolution.zw);
c0 = blurtotal; blurtotal *= 0.125;
//greyscale c0 = blurtotal;
float grey = ((0.3 * c0.r) + (0.4 * c0.g) + (0.3 * c0.b));
// brighten //greyscale
grey = grey * 0.5 + 0.7; float grey = ((0.3 * c0.r) + (0.4 * c0.g) + (0.3 * c0.b));
// darken edges
float x = uv0.x * resolution.x; // brighten
float y = uv0.y * resolution.y; grey = grey * 0.5 + 0.7;
if (x > internalresolution/2.0) x = internalresolution-x;
if (y > internalresolution/2.0) y = internalresolution-y; // darken edges
if (x > internalresolution/2.0*0.95) x = internalresolution/2.0*0.95; float x = uv0.x * resolution.x;
if (y > internalresolution/2.0*0.95) y = internalresolution/2.0*0.95; float y = uv0.y * resolution.y;
x = -x+641.0; if (x > internalresolution/2.0)
y = -y+641.0; x = internalresolution-x;
/*****inline square root routines*****/ if (y > internalresolution/2.0)
// bit of a performance bottleneck. y = internalresolution-y;
// neccessary to make the darkened area rounded if (x > internalresolution/2.0*0.95)
// instead of rhombus-shaped. x = internalresolution/2.0*0.95;
float sqrt = x / 10.0; if (y > internalresolution/2.0*0.95)
while((sqrt*sqrt) < x) sqrt+=0.1; y = internalresolution/2.0*0.95;
x = sqrt; x = -x+641.0;
sqrt = y / 10.0; y = -y+641.0;
while((sqrt*sqrt) < y) sqrt+=0.1;
y = sqrt; /*****inline square root routines*****/
/*****end of inline square root routines*****/ // bit of a performance bottleneck.
x *= 2.0; // neccessary to make the darkened area rounded
y *= 2.0; // instead of rhombus-shaped.
grey -= x / 200.0; float sqrt = x / 10.0;
grey -= y / 200.0; while((sqrt*sqrt) < x) sqrt+=0.1;
// output x = sqrt;
ocol0 = float4(0.0, grey, 0.0, 1.0); sqrt = y / 10.0;
while((sqrt*sqrt) < y) sqrt+=0.1;
y = sqrt;
x *= 2.0;
y *= 2.0;
grey -= x / 200.0;
grey -= y / 200.0;
// output
ocol0 = float4(0.0, grey, 0.0, 1.0);
} }