diff --git a/acidmetal.txt b/acidmetal.txt new file mode 100644 index 0000000000..7f479ca274 --- /dev/null +++ b/acidmetal.txt @@ -0,0 +1,16 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float blue = 0.0; + + if (c0.r > 0.25 && c0.b > 0.25) + { + blue = c0.b; + red = c0.r; + } + + ocol0 = float4(red, c0.g, blue, 1.0); +} \ No newline at end of file diff --git a/acidtrip.txt b/acidtrip.txt new file mode 100644 index 0000000000..a5abb48d8a --- /dev/null +++ b/acidtrip.txt @@ -0,0 +1,6 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + ocol0 = (texRECT(samp0, uv0+1).rgba - texRECT(samp0, uv0-1).rgba)*8; +} diff --git a/acidtrip2.txt b/acidtrip2.txt new file mode 100644 index 0000000000..6673879589 --- /dev/null +++ b/acidtrip2.txt @@ -0,0 +1,6 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + ocol0 = texRECT(samp0, uv0+1).rgba * 1.3 * abs(texRECT(samp0, uv0+1).rgba - texRECT(samp0, uv0-1).rgba)*8; +} diff --git a/auto_toon.txt b/auto_toon.txt new file mode 100644 index 0000000000..7c7e94387d --- /dev/null +++ b/auto_toon.txt @@ -0,0 +1,16 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 to_gray = float4(0.3,0.59,0.11,0); + float x1 = dot(to_gray, texRECT(samp0, uv0+float2(1,1))); + float x0 = dot(to_gray, texRECT(samp0, uv0+float2(-1,-1))); + float x3 = dot(to_gray, texRECT(samp0, uv0+float2(1,-1))); + float x2 = dot(to_gray, texRECT(samp0, uv0+float2(-1,1))); + float edge = (x1 - x0) * (x1 - x0); + float edge2 = (x3 - x2) * (x3 - x2); + edge += edge2; + float4 color = texRECT(samp0, uv0).rgba; + + ocol0 = max(color - float4(edge, edge, edge, edge) * 12, float4(0,0,0,0)); +} diff --git a/bad_bloom.txt b/bad_bloom.txt new file mode 100644 index 0000000000..1c73998f00 --- /dev/null +++ b/bad_bloom.txt @@ -0,0 +1,38 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0, in float2 uv1 : TEXCOORD1) +{ + float4 c_center = texRECT(samp0, uv0.xy).rgba; + + float4 bloom_sum = float4(0.0, 0.0, 0.0, 0.0); + uv0 += float2(0.3, 0.3); + float radius1 = 1.3; + bloom_sum += texRECT(samp0, uv0 + float2(-1.5, -1.5) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(-2.5, 0) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(-1.5, 1.5) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(0, 2.5) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(1.5, 1.5) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(2.5, 0) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(1.5, -1.5) * radius1); + bloom_sum += texRECT(samp0, uv0 + float2(0, -2.5) * radius1); + + float radius2 = 4.6; + bloom_sum += texRECT(samp0, uv0 + float2(-1.5, -1.5) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(-2.5, 0) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(-1.5, 1.5) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(0, 2.5) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(1.5, 1.5) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(2.5, 0) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(1.5, -1.5) * radius2); + bloom_sum += texRECT(samp0, uv0 + float2(0, -2.5) * radius2); + + bloom_sum *= 0.07; + bloom_sum -= float4(0.3, 0.3, 0.3, 0.3); + bloom_sum = max(bloom_sum, float4(0,0,0,0)); + + float2 vpos = (uv1 - float2(.5, .5)) * 2; + float dist = (dot(vpos, vpos)); + dist = 1 - 0.4*dist; + + ocol0 = (c_center * 0.7 + bloom_sum) * dist; +} diff --git a/chrismas.txt b/chrismas.txt new file mode 100644 index 0000000000..6de668b2db --- /dev/null +++ b/chrismas.txt @@ -0,0 +1,19 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + + if (c0.r < 0.50 || c0.b > 0.5) + { + green = c0.g + (c0.b / 2); + } + else + { + red = c0.r + (c0.b / 2); + } + + ocol0 = float4(red, green, 0.0, 1.0); +} \ No newline at end of file diff --git a/color_swap_1.txt b/color_swap_1.txt new file mode 100644 index 0000000000..68debd6837 --- /dev/null +++ b/color_swap_1.txt @@ -0,0 +1,7 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + ocol0 = float4(c0.g, c0.b,c0.r, 1.0); +} \ No newline at end of file diff --git a/cool1.txt b/cool1.txt new file mode 100644 index 0000000000..66de9c4d38 --- /dev/null +++ b/cool1.txt @@ -0,0 +1,22 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + float blue = 0.0; + + if (c0.r < 0.50 || c0.b > 0.5) + { + blue = c0.r + (c0.b / 2); + red = c0.g + (c0.b / 2); + } + else + { + blue = c0.r + (c0.b / 2); + green = c0.r + (c0.b / 2); + } + + ocol0 = float4(red, green, blue, 1.0); +} \ No newline at end of file diff --git a/emboss.txt b/emboss.txt new file mode 100644 index 0000000000..62850dff44 --- /dev/null +++ b/emboss.txt @@ -0,0 +1,19 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float4 c1 = texRECT(samp0, uv0 + float2(5,5)).rgba; + float y = (0.222 * c1.r) + (0.707 * c1.g) + (0.071 * c1.b); + float y2 = ((0.222 * c0.r) + (0.707 * c0.g) + (0.071 * c0.b)) / 3; + float red = c0.r; + float green = c0.g; + float blue = c0.b; + float alpha = c0.a; + + red = y2 + (1 - y); + green = y2 + (1 - y); + blue = y2 + (1 - y); + + ocol0 = float4(red, green, blue, alpha); +} \ No newline at end of file diff --git a/fire.txt b/fire.txt new file mode 100644 index 0000000000..6094307f40 --- /dev/null +++ b/fire.txt @@ -0,0 +1,39 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + float blue = 0.0; + + red = c0.r; + + + if (c0.r > 0.0) + { + if (c0.g > c0.r) + { + green = (c0.g - (c0.g - c0.r)) / 3; + } + } + + if (c0.b > 0.0 && c0.r < 0.25) + { + red = c0.b; + green = c0.b / 3; + } + + if (c0.g > 0.0 && c0.r < 0.25) + { + red = c0.g; + green = c0.g / 3; + } + + if (((c0.r + c0.g + c0.b) / 3) > 0.9) + { + green = c0.r / 3; + } + + ocol0 = float4(red, green, blue, 1.0); +} \ No newline at end of file diff --git a/fire2.txt b/fire2.txt new file mode 100644 index 0000000000..3f7c09e3db --- /dev/null +++ b/fire2.txt @@ -0,0 +1,15 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + float blue = 0.0; + float avg = (c0.r + c0.g + c0.b) / 3; + + red = c0.r + (c0.g / 2) + (c0.b / 3); + green = c0.r / 3; + + ocol0 = float4(red, green, blue, 1.0); +} \ No newline at end of file diff --git a/firewater.txt b/firewater.txt new file mode 100644 index 0000000000..c610f40d45 --- /dev/null +++ b/firewater.txt @@ -0,0 +1,17 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float4 c1 = texRECT(samp0, uv0 + float2(1,1)).rgba; + float4 c2 = texRECT(samp0, uv0 + float2(-1,-1)).rgba; + float red = c0.r; + float green = c0.g; + float blue = c0.b; + float alpha = c0.a; + + red = c0.r - c1.b; + blue = c0.b - c2.r + (c0.g - c0.r); + + ocol0 = float4(red, 0.0, blue, alpha); +} \ No newline at end of file diff --git a/grayscale.txt b/grayscale.txt new file mode 100644 index 0000000000..85fee9e546 --- /dev/null +++ b/grayscale.txt @@ -0,0 +1,8 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float avg = (c0.r + c0.g + c0.b) / 3.0; + ocol0 = float4(avg, avg, avg, c0.a); +} diff --git a/grayscale2.txt b/grayscale2.txt new file mode 100644 index 0000000000..bf179dcbbb --- /dev/null +++ b/grayscale2.txt @@ -0,0 +1,9 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + // Info: http://www.oreillynet.com/cs/user/view/cs_msg/8691 + float avg = (0.222 * c0.r) + (0.707 * c0.g) + (0.071 * c0.b); + ocol0 = float4(avg, avg, avg, c0.a); +} diff --git a/invert.txt b/invert.txt new file mode 100644 index 0000000000..efd57def22 --- /dev/null +++ b/invert.txt @@ -0,0 +1,7 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + ocol0 = float4(1.0, 1.0, 1.0, 1.0) - c0; +} diff --git a/invert_blue.txt b/invert_blue.txt new file mode 100644 index 0000000000..7d6cf651ca --- /dev/null +++ b/invert_blue.txt @@ -0,0 +1,7 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + ocol0 = float4(0.0, 0.0, 0.7, 1.0) - c0; +} \ No newline at end of file diff --git a/invertedoutline.txt b/invertedoutline.txt new file mode 100644 index 0000000000..72e835ac41 --- /dev/null +++ b/invertedoutline.txt @@ -0,0 +1,17 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float4 c1 = texRECT(samp0, uv0 + float2(3,3)).rgba; + float red = c0.r; + float green = c0.g; + float blue = c0.b; + float alpha = c0.a; + + red = c0.r - c1.r; + green = c0.g - c1.g; + blue = c0.b - c1.b; + + ocol0 = float4(red, green, blue, alpha); +} \ No newline at end of file diff --git a/mad_world.txt b/mad_world.txt new file mode 100644 index 0000000000..1f7184fe67 --- /dev/null +++ b/mad_world.txt @@ -0,0 +1,17 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 emboss = (texRECT(samp0, uv0+1).rgba - texRECT(samp0, uv0-1).rgba)*2.0f; + emboss -= (texRECT(samp0, uv0+float2(1,-1)).rgba - texRECT(samp0, uv0+float2(-1,1)).rgba); + float4 color = texRECT(samp0, uv0).rgba; + if (color.r > 0.8 && color.b + color.b < 0.2) + ocol0 = float4(1,0,0,0); + else { + color += emboss; + if (dot(color.rgb, float3(0.3, 0.5, 0.2)) > 0.5) + ocol0 = float4(1,1,1,1); + else + ocol0 = float4(0,0,0,0); + } +} \ No newline at end of file diff --git a/nightvision.txt b/nightvision.txt new file mode 100644 index 0000000000..db354d0b81 --- /dev/null +++ b/nightvision.txt @@ -0,0 +1,14 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float green = c0.g; + + if (c0.g < 0.50) + { + green = c0.r + c0.b; + } + + ocol0 = float4(0.0, green, 0.0, 1.0); +} \ No newline at end of file diff --git a/nightvision2.txt b/nightvision2.txt new file mode 100644 index 0000000000..e0e75718ee --- /dev/null +++ b/nightvision2.txt @@ -0,0 +1,51 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + //variables + int internalresolution = 1282; //for 800x600; should be changed for other settings. + float4 c0 = texRECT(samp0, uv0).rgba; + //blur + float4 blurtotal = float4(0, 0, 0, 0); + float blursize = 1.5; + blurtotal += texRECT(samp0, uv0 + float2(-blursize, -blursize)); + blurtotal += texRECT(samp0, uv0 + float2(-blursize, blursize)); + blurtotal += texRECT(samp0, uv0 + float2( blursize, -blursize)); + blurtotal += texRECT(samp0, uv0 + float2( blursize, blursize)); + blurtotal += texRECT(samp0, uv0 + float2(-blursize, 0)); + blurtotal += texRECT(samp0, uv0 + float2( blursize, 0)); + blurtotal += texRECT(samp0, uv0 + float2( 0, -blursize)); + blurtotal += texRECT(samp0, uv0 + float2( 0, blursize)); + blurtotal *= 0.125; + c0 = blurtotal; + //greyscale + float grey = ((0.3 * c0.r) + (0.4 * c0.g) + (0.3 * c0.b)); + // brighten + grey = grey * 0.5 + 0.7; + // darken edges + float x = uv0[0]; + float y = uv0[1]; + if (x > internalresolution/2) x = internalresolution-x; + if (y > internalresolution/2) y = internalresolution-y; + if (x > internalresolution/2*0.95) x = internalresolution/2*0.95; + if (y > internalresolution/2*0.95) y = internalresolution/2*0.95; + x = -x+641; + y = -y+641; + /*****inline square root routines*****/ + // bit of a performance bottleneck. + // neccessary to make the darkened area rounded + // instead of rhombus-shaped. + float sqrt=x/10; + while((sqrt*sqrt) < x) sqrt+=0.1; + x = sqrt; + sqrt=y/10; + while((sqrt*sqrt) < y) sqrt+=0.1; + y = sqrt; + /*****end of inline square root routines*****/ + x *= 2; + y *= 2; + grey -= x/200; + grey -= y/200; + // output + ocol0 = float4(0, grey, 0, 1.0); +} \ No newline at end of file diff --git a/posterize.txt b/posterize.txt new file mode 100644 index 0000000000..fca009b145 --- /dev/null +++ b/posterize.txt @@ -0,0 +1,26 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + float blue = 0.0; + + if (c0.r > 0.25) + { + red = c0.r; + } + + if (c0.g > 0.25) + { + green = c0.g; + } + + if (c0.b > 0.25) + { + blue = c0.b; + } + + ocol0 = float4(red, green, blue, 1.0); +} \ No newline at end of file diff --git a/spookey1.txt b/spookey1.txt new file mode 100644 index 0000000000..f0cde83b55 --- /dev/null +++ b/spookey1.txt @@ -0,0 +1,20 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float blue = 0.0; + + if (c0.r < 0.50 || c0.b > 0.5) + { + red = c0.g + (c0.b / 2); + } + else + { + red = c0.g + (c0.b / 2); + blue = c0.r + (c0.b / 2); + } + + ocol0 = float4(red, 0.0, blue, 1.0); +} \ No newline at end of file diff --git a/spookey2.txt b/spookey2.txt new file mode 100644 index 0000000000..747d236427 --- /dev/null +++ b/spookey2.txt @@ -0,0 +1,22 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + float blue = 0.0; + + if (c0.r < 0.50 || c0.b > 0.5) + { + red = c0.g + (c0.b / 2); + } + else + { + red = c0.g + (c0.b / 2); + blue = c0.r + (c0.b / 2); + green = c0.r + (c0.b / 2); + } + + ocol0 = float4(red, green, blue, 1.0); +} \ No newline at end of file diff --git a/stereoscopic.txt b/stereoscopic.txt new file mode 100644 index 0000000000..254db332c0 --- /dev/null +++ b/stereoscopic.txt @@ -0,0 +1,27 @@ +// Omega's 3D Stereoscopic filtering +// TODO: Need depth info! + +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; // Source Color + float sep = 5; + float red = c0.r; + float green = c0.g; + float blue = c0.b; + + + // Red Eye (Red) + float4 c1 = texRECT(samp0, uv0 + float2(sep,0)).rgba; + red = max(c0.r, c1.r); + + // Right Eye (Cyan) + float4 c2 = texRECT(samp0, uv0 + float2(-sep,0)).rgba; + float cyan = (c2.g + c2.b) / 2; + green = max(c0.g, cyan); + blue = max(c0.b, cyan); + + + ocol0 = float4(red, green, blue, c0.a); +} \ No newline at end of file diff --git a/stereoscopic2.txt b/stereoscopic2.txt new file mode 100644 index 0000000000..f694aec2e6 --- /dev/null +++ b/stereoscopic2.txt @@ -0,0 +1,26 @@ +// Omega's 3D Stereoscopic filtering (Amber/Blue) +// TODO: Need depth info! + +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; // Source Color + float sep = 5; + float red = c0.r; + float green = c0.g; + float blue = c0.b; + + // Left Eye (Amber) + float4 c2 = texRECT(samp0, uv0 + float2(sep,0)).rgba; + float amber = (c2.r + c2.g) / 2; + red = max(c0.r, amber); + green = max(c0.g, amber); + + // Right Eye (Blue) + float4 c1 = texRECT(samp0, uv0 + float2(-sep,0)).rgba; + blue = max(c0.b, c1.b); + + + ocol0 = float4(red, green, blue, c0.a); +} \ No newline at end of file diff --git a/sunset.txt b/sunset.txt new file mode 100644 index 0000000000..e92562461e --- /dev/null +++ b/sunset.txt @@ -0,0 +1,7 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + ocol0 = float4(c0.b, c0.g, c0.r, c0.a); +} diff --git a/toxic.txt b/toxic.txt new file mode 100644 index 0000000000..81205ed0f8 --- /dev/null +++ b/toxic.txt @@ -0,0 +1,22 @@ +uniform samplerRECT samp0 : register(s0); + +void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0) +{ + float4 c0 = texRECT(samp0, uv0).rgba; + float red = 0.0; + float green = 0.0; + float blue = 0.0; + + if (c0.r < 0.50 || c0.b > 0.5) + { + blue = c0.r + (c0.b / 2); + red = c0.g + (c0.b / 2); + } + else + { + red = c0.g + (c0.b / 2); + green = c0.r + (c0.b / 2); + } + + ocol0 = float4(red, green, blue, 1.0); +} \ No newline at end of file