Change all the post processing shaders to the new system.

Removes the README.txt file in favour of a new wiki page I'm going to generate.
This commit is contained in:
Ryan Houdek 2014-07-29 12:08:57 -05:00
parent cced3b4a18
commit 32fe37d834
44 changed files with 206 additions and 479 deletions

View File

@ -1,10 +1,3 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
//Change this number to increase the pixel size. //Change this number to increase the pixel size.
@ -14,9 +7,9 @@ void main()
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
vec2 pos = floor(uv0 * resolution.xy / pixelSize) * pixelSize * resolution.zw; float2 pos = floor(GetCoordinates() * GetResolution() / pixelSize) * pixelSize * GetInvResolution();
vec4 c0 = texture(samp9, pos); float4 c0 = SampleLocation(pos);
if (c0.r < 0.1) if (c0.r < 0.1)
red = 0.1; red = 0.1;
@ -57,5 +50,5 @@ void main()
else else
green = 1.0; green = 1.0;
ocol0 = vec4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,10 +1,3 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
//Change this number to increase the pixel size. //Change this number to increase the pixel size.
@ -14,9 +7,9 @@ void main()
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
vec2 pos = floor(uv0 * resolution.xy / pixelSize) * pixelSize * resolution.zw; float2 pos = floor(GetCoordinates() * GetResolution() / pixelSize) * pixelSize * GetInvResolution();
vec4 c0 = texture(samp9, pos); float4 c0 = SampleLocation(pos);
if (c0.r < 0.06) if (c0.r < 0.06)
red = 0.06; red = 0.06;
@ -82,5 +75,5 @@ void main()
else else
green = 1.0; green = 1.0;
ocol0 = vec4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -12,26 +12,20 @@
// 0. You just DO WHAT THE FUCK YOU WANT TO. // 0. You just DO WHAT THE FUCK YOU WANT TO.
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
#define FXAA_REDUCE_MIN (1.0/ 128.0) #define FXAA_REDUCE_MIN (1.0/ 128.0)
#define FXAA_REDUCE_MUL (1.0 / 8.0) #define FXAA_REDUCE_MUL (1.0 / 8.0)
#define FXAA_SPAN_MAX 8.0 #define FXAA_SPAN_MAX 8.0
vec4 applyFXAA(vec2 fragCoord, sampler2D tex) float4 applyFXAA(float2 fragCoord)
{ {
vec4 color; float4 color;
vec2 inverseVP = resolution.zw; float2 inverseVP = GetInvResolution();
vec3 rgbNW = texture(tex, (fragCoord + vec2(-1.0, -1.0)) * inverseVP).xyz; float3 rgbNW = SampleLocation((fragCoord + float2(-1.0, -1.0)) * inverseVP).xyz;
vec3 rgbNE = texture(tex, (fragCoord + vec2(1.0, -1.0)) * inverseVP).xyz; float3 rgbNE = SampleLocation((fragCoord + float2(1.0, -1.0)) * inverseVP).xyz;
vec3 rgbSW = texture(tex, (fragCoord + vec2(-1.0, 1.0)) * inverseVP).xyz; float3 rgbSW = SampleLocation((fragCoord + float2(-1.0, 1.0)) * inverseVP).xyz;
vec3 rgbSE = texture(tex, (fragCoord + vec2(1.0, 1.0)) * inverseVP).xyz; float3 rgbSE = SampleLocation((fragCoord + float2(1.0, 1.0)) * inverseVP).xyz;
vec3 rgbM = texture(tex, fragCoord * inverseVP).xyz; float3 rgbM = SampleLocation(fragCoord * inverseVP).xyz;
vec3 luma = vec3(0.299, 0.587, 0.114); float3 luma = float3(0.299, 0.587, 0.114);
float lumaNW = dot(rgbNW, luma); float lumaNW = dot(rgbNW, luma);
float lumaNE = dot(rgbNE, luma); float lumaNE = dot(rgbNE, luma);
float lumaSW = dot(rgbSW, luma); float lumaSW = dot(rgbSW, luma);
@ -40,7 +34,7 @@ vec4 applyFXAA(vec2 fragCoord, sampler2D tex)
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
vec2 dir; float2 dir;
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
@ -48,26 +42,26 @@ vec4 applyFXAA(vec2 fragCoord, sampler2D tex)
(0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN); (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce); float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX), dir = min(float2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),
max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), max(float2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),
dir * rcpDirMin)) * inverseVP; dir * rcpDirMin)) * inverseVP;
vec3 rgbA = 0.5 * ( float3 rgbA = 0.5 * (
texture(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz + SampleLocation(fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +
texture(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz); SampleLocation(fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);
vec3 rgbB = rgbA * 0.5 + 0.25 * ( float3 rgbB = rgbA * 0.5 + 0.25 * (
texture(tex, fragCoord * inverseVP + dir * -0.5).xyz + SampleLocation(fragCoord * inverseVP + dir * -0.5).xyz +
texture(tex, fragCoord * inverseVP + dir * 0.5).xyz); SampleLocation(fragCoord * inverseVP + dir * 0.5).xyz);
float lumaB = dot(rgbB, luma); float lumaB = dot(rgbB, luma);
if ((lumaB < lumaMin) || (lumaB > lumaMax)) if ((lumaB < lumaMin) || (lumaB > lumaMax))
color = vec4(rgbA, 1.0); color = float4(rgbA, 1.0);
else else
color = vec4(rgbB, 1.0); color = float4(rgbB, 1.0);
return color; return color;
} }
void main() void main()
{ {
ocol0 = applyFXAA(uv0 * resolution.xy, samp9); SetOutput(applyFXAA(GetCoordinates() * GetResolution()));
} }

View File

@ -1,18 +0,0 @@
//dummy shader:
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main()
{
ocol0 = texture(samp9, uv0);
}
/*
And now that's over with, the contents of this readme file!
For best results, turn Wordwrap formatting on...
The shaders shown in the dropdown box in the video plugin configuration window are kept in the directory named User/Data/Shaders. They are linked in to the dolphin source from the repository at <http://dolphin-shaders-database.googlecode.com/svn/trunk/>. See <http://code.google.com/p/dolphin-shaders-database/wiki/Documentation> for more details on the way shaders work.
This file will hopefully hold more content in future...
*/

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float blue = 0.0; float blue = 0.0;
@ -17,5 +12,5 @@ void main()
float green = max(c0.r + c0.b, c0.g); float green = max(c0.r + c0.b, c0.g);
ocol0 = vec4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }

View File

@ -1,11 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
ocol0 = (texture(samp9, uv0+resolution.zw) - texture(samp9, uv0-resolution.zw)) * 8.0; SetOutput((SampleOffset(int2(1, 1)) - SampleOffset(int2(-1, -1))) * 8.0);
} }

View File

@ -1,13 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
vec4 a = texture(samp9, uv0+resolution.zw); float4 a = SampleOffset(int2( 1, 1));
vec4 b = texture(samp9, uv0-resolution.zw); float4 b = SampleOffset(int2(-1, -1));
ocol0 = ( a*a*1.3 - b ) * 8.0; SetOutput(( a*a*1.3 - b ) * 8.0);
} }

View File

@ -1,48 +1,39 @@
// textures
SAMPLER_BINDING(8) uniform sampler2D samp8;
SAMPLER_BINDING(9) uniform sampler2D samp9;
const int char_width = 8; const int char_width = 8;
const int char_height = 13; const int char_height = 13;
const int char_count = 95; const int char_count = 95;
const int char_pixels = char_width*char_height; const int char_pixels = char_width*char_height;
const vec2 char_dim = vec2(char_width, char_height); const float2 char_dim = float2(char_width, char_height);
const vec2 font_scale = vec2(1.0/float(char_width)/float(char_count), 1.0/float(char_height)); const float2 font_scale = float2(1.0/float(char_width)/float(char_count), 1.0/float(char_height));
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
vec2 char_pos = floor(uv0*resolution.xy/char_dim); float2 char_pos = floor(GetCoordinates()*GetResolution()/char_dim);
vec2 pixel_offset = floor(uv0*resolution.xy) - char_pos*char_dim; float2 pixel_offset = floor(GetCoordinates()*GetResolution()) - char_pos*char_dim;
// just a big number // just a big number
float mindiff = float(char_width*char_height) * 100.0; float mindiff = float(char_width*char_height) * 100.0;
float minc = 0.0; float minc = 0.0;
vec4 mina = vec4(0.0, 0.0, 0.0, 0.0); float4 mina = float4(0.0, 0.0, 0.0, 0.0);
vec4 minb = vec4(0.0, 0.0, 0.0, 0.0); float4 minb = float4(0.0, 0.0, 0.0, 0.0);
for (int i=0; i<char_count; i++) for (int i=0; i<char_count; i++)
{ {
vec4 ff = vec4(0.0, 0.0, 0.0, 0.0); float4 ff = float4(0.0, 0.0, 0.0, 0.0);
vec4 f = vec4(0.0, 0.0, 0.0, 0.0); float4 f = float4(0.0, 0.0, 0.0, 0.0);
vec4 ft = vec4(0.0, 0.0, 0.0, 0.0); float4 ft = float4(0.0, 0.0, 0.0, 0.0);
vec4 t = vec4(0.0, 0.0, 0.0, 0.0); float4 t = float4(0.0, 0.0, 0.0, 0.0);
vec4 tt = vec4(0.0, 0.0, 0.0, 0.0); float4 tt = float4(0.0, 0.0, 0.0, 0.0);
for (int x=0; x<char_width; x++) for (int x=0; x<char_width; x++)
{ {
for (int y=0; y<char_height; y++) for (int y=0; y<char_height; y++)
{ {
vec2 tex_pos = char_pos*char_dim + vec2(x,y) + 0.5; float2 tex_pos = char_pos*char_dim + float2(x,y) + 0.5;
vec4 tex = texture(samp9, tex_pos * resolution.zw); float4 tex = SampleLocation(tex_pos * GetInvResolution());
vec2 font_pos = vec2(x+i*char_width, y) + 0.5; float2 font_pos = float2(x+i*char_width, y) + 0.5;
vec4 font = texture(samp8, font_pos * font_scale); float4 font = SampleFontLocation(font_pos * font_scale);
// generates sum of texture and font and their squares // generates sum of texture and font and their squares
ff += font*font; ff += font*font;
@ -78,11 +69,11 @@ void main()
// So, both equations must be zero at minimum and there is only one solution. // So, both equations must be zero at minimum and there is only one solution.
vec4 a = (f*ft - ff*t + f*t - ft*float(char_pixels)) / (f*f - ff*float(char_pixels)); float4 a = (f*ft - ff*t + f*t - ft*float(char_pixels)) / (f*f - ff*float(char_pixels));
vec4 b = (f*ft - ff*t) / (f*f - ff*float(char_pixels)); float4 b = (f*ft - ff*t) / (f*f - ff*float(char_pixels));
vec4 diff = a*a*ff + 2.0*a*b*f - 2.0*a*b*ff - 2.0*a*ft + b*b *(-2.0*f + ff + float(char_pixels)) + 2.0*b*ft - 2.0*b*t + tt; float4 diff = a*a*ff + 2.0*a*b*f - 2.0*a*b*ff - 2.0*a*ft + b*b *(-2.0*f + ff + float(char_pixels)) + 2.0*b*ft - 2.0*b*t + tt;
float diff_f = dot(diff, vec4(1.0, 1.0, 1.0, 1.0)); float diff_f = dot(diff, float4(1.0, 1.0, 1.0, 1.0));
if (diff_f < mindiff) if (diff_f < mindiff)
{ {
@ -93,8 +84,8 @@ void main()
} }
} }
vec2 font_pos_res = vec2(minc * float(char_width), 0.0) + pixel_offset + 0.5; float2 font_pos_res = float2(minc * float(char_width), 0.0) + pixel_offset + 0.5;
vec4 col = texture(samp8, font_pos_res * font_scale); float4 col = SampleFontLocation(font_pos_res * font_scale);
ocol0 = mina * col + minb * (vec4(1.0,1.0,1.0,1.0) - col); SetOutput(mina * col + minb * (float4(1.0,1.0,1.0,1.0) - col));
} }

View File

@ -1,22 +1,15 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
vec4 to_gray = vec4(0.3,0.59,0.11,0); float4 to_gray = float4(0.3,0.59,0.11,0);
float x1 = dot(to_gray, texture(samp9, uv0+vec2(1,1)*resolution.zw)); float x1 = dot(to_gray, SampleOffset(int2( 1, 1)));
float x0 = dot(to_gray, texture(samp9, uv0+vec2(-1,-1)*resolution.zw)); float x0 = dot(to_gray, SampleOffset(int2(-1,-1)));
float x3 = dot(to_gray, texture(samp9, uv0+vec2(1,-1)*resolution.zw)); float x3 = dot(to_gray, SampleOffset(int2( 1,-1)));
float x2 = dot(to_gray, texture(samp9, uv0+vec2(-1,1)*resolution.zw)); float x2 = dot(to_gray, SampleOffset(int2(-1, 1)));
float edge = (x1 - x0) * (x1 - x0) + (x3 - x2) * (x3 - x2); float edge = (x1 - x0) * (x1 - x0) + (x3 - x2) * (x3 - x2);
float4 color = texture(samp9, uv0).rgba; float4 color = Sample();
ocol0 = color - vec4(edge, edge, edge, edge) * 12.0; SetOutput(color - float4(edge, edge, edge, edge) * 12.0);
} }

View File

@ -1,23 +1,15 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
//Changethis to increase the number of colors. //Changethis to increase the number of colors.
int numColors =8; int numColors =8;
float4 to_gray = float4(0.3,0.59,0.11,0); float4 to_gray = float4(0.3,0.59,0.11,0);
float x1 = dot(to_gray, texture(samp9, uv0+vec2(1,1)*resolution.zw)); float x1 = dot(to_gray, SampleOffset(int2( 1, 1)));
float x0 = dot(to_gray, texture(samp9, uv0+vec2(-1,-1)*resolution.zw)); float x0 = dot(to_gray, SampleOffset(int2(-1,-1)));
float x3 = dot(to_gray, texture(samp9, uv0+vec2(1,-1)*resolution.zw)); float x3 = dot(to_gray, SampleOffset(int2( 1,-1)));
float x2 = dot(to_gray, texture(samp9, uv0+vec2(-1,1)*resolution.zw)); float x2 = dot(to_gray, SampleOffset(int2(-1, 1)));
float edge = (x1 - x0) * (x1 - x0) + (x3 - x2) * (x3 - x2); float edge = (x1 - x0) * (x1 - x0) + (x3 - x2) * (x3 - x2);
float4 color = texture(samp9, uv0).rgba; float4 color = Sample();
float4 c0 = color - float4(edge, edge, edge, edge) * 12.0; float4 c0 = color - float4(edge, edge, edge, edge) * 12.0;
@ -92,5 +84,5 @@ void main()
break; break;
} }
ocol0 = float4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,43 +1,36 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 c_center = texture(samp9, uv0); float4 c_center = Sample();
float4 bloom_sum = float4(0.0, 0.0, 0.0, 0.0); float4 bloom_sum = float4(0.0, 0.0, 0.0, 0.0);
vec2 pos = uv0 + float2(0.3, 0.3) * resolution.zw; float2 pos = GetCoordinates() + float2(0.3, 0.3) * GetInvResolution();
float2 radius1 = 1.3 * resolution.zw; float2 radius1 = 1.3 * GetInvResolution();
bloom_sum += texture(samp9, pos + float2(-1.5, -1.5) * radius1); bloom_sum += SampleLocation(pos + float2(-1.5, -1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(-2.5, 0.0) * radius1); bloom_sum += SampleLocation(pos + float2(-2.5, 0.0) * radius1);
bloom_sum += texture(samp9, pos + float2(-1.5, 1.5) * radius1); bloom_sum += SampleLocation(pos + float2(-1.5, 1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(0.0, 2.5) * radius1); bloom_sum += SampleLocation(pos + float2(0.0, 2.5) * radius1);
bloom_sum += texture(samp9, pos + float2(1.5, 1.5) * radius1); bloom_sum += SampleLocation(pos + float2(1.5, 1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(2.5, 0.0) * radius1); bloom_sum += SampleLocation(pos + float2(2.5, 0.0) * radius1);
bloom_sum += texture(samp9, pos + float2(1.5, -1.5) * radius1); bloom_sum += SampleLocation(pos + float2(1.5, -1.5) * radius1);
bloom_sum += texture(samp9, pos + float2(0.0, -2.5) * radius1); bloom_sum += SampleLocation(pos + float2(0.0, -2.5) * radius1);
float2 radius2 = 4.6 * resolution.zw; float2 radius2 = 4.6 * GetInvResolution();
bloom_sum += texture(samp9, pos + float2(-1.5, -1.5) * radius2); bloom_sum += SampleLocation(pos + float2(-1.5, -1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(-2.5, 0.0) * radius2); bloom_sum += SampleLocation(pos + float2(-2.5, 0.0) * radius2);
bloom_sum += texture(samp9, pos + float2(-1.5, 1.5) * radius2); bloom_sum += SampleLocation(pos + float2(-1.5, 1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(0.0, 2.5) * radius2); bloom_sum += SampleLocation(pos + float2(0.0, 2.5) * radius2);
bloom_sum += texture(samp9, pos + float2(1.5, 1.5) * radius2); bloom_sum += SampleLocation(pos + float2(1.5, 1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(2.5, 0.0) * radius2); bloom_sum += SampleLocation(pos + float2(2.5, 0.0) * radius2);
bloom_sum += texture(samp9, pos + float2(1.5, -1.5) * radius2); bloom_sum += SampleLocation(pos + float2(1.5, -1.5) * radius2);
bloom_sum += texture(samp9, pos + float2(0.0, -2.5) * radius2); bloom_sum += SampleLocation(pos + float2(0.0, -2.5) * radius2);
bloom_sum *= 0.07; bloom_sum *= 0.07;
bloom_sum -= float4(0.3, 0.3, 0.3, 0.3); bloom_sum -= float4(0.3, 0.3, 0.3, 0.3);
bloom_sum = max(bloom_sum, float4(0.0, 0.0, 0.0, 0.0)); bloom_sum = max(bloom_sum, float4(0.0, 0.0, 0.0, 0.0));
float2 vpos = (uv0 - float2(0.5, 0.5)) * 2.0; float2 vpos = (GetCoordinates() - float2(0.5, 0.5)) * 2.0;
float dist = (dot(vpos, vpos)); float dist = (dot(vpos, vpos));
dist = 1.0 - 0.4*dist; dist = 1.0 - 0.4*dist;
ocol0 = (c_center * 0.7 + bloom_sum) * dist; SetOutput((c_center * 0.7 + bloom_sum) * dist);
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = texture(samp9, uv0) * 3.0; SetOutput(Sample()* 3.0);
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
@ -14,5 +9,5 @@ void main()
else else
red = c0.r + 0.4; red = c0.r + 0.4;
ocol0 = vec4(red, green, 0.0, 1.0); SetOutput(float4(red, green, 0.0, 1.0));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
@ -21,5 +16,5 @@ void main()
green = c0.r; green = c0.r;
} }
ocol0 = vec4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }

View File

@ -1,17 +1,10 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float4 c1 = texture(samp9, uv0 - float2(1.0, 0.0) * resolution.zw); float4 c1 = SampleOffset(int2(-1, 0));
float4 c2 = texture(samp9, uv0 - float2(0.0, 1.0) * resolution.zw); float4 c2 = SampleOffset(int2( 0, -1));
float4 c3 = texture(samp9, uv0 + float2(1.0, 0.0) * resolution.zw); float4 c3 = SampleOffset(int2( 1, 0));
float4 c4 = texture(samp9, uv0 + float2(0.0, 1.0) * resolution.zw); float4 c4 = SampleOffset(int2( 0, 1));
float red = c0.r; float red = c0.r;
float blue = c0.b; float blue = c0.b;
@ -36,5 +29,5 @@ void main()
else else
blue = c0.b - c0.b / 2.0; blue = c0.b - c0.b / 2.0;
ocol0 = float4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,14 +1,7 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = Sample();
float4 c1 = texture(samp9, uv0 + float2(5.0,5.0)*resolution.zw).rgba; float4 c1 = SampleOffset(int2(5, 5));
float y = (0.222 * c1.r) + (0.707 * c1.g) + (0.071 * c1.b); 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.0; float y2 = ((0.222 * c0.r) + (0.707 * c0.g) + (0.071 * c0.b)) / 3.0;
float red = c0.r; float red = c0.r;
@ -20,5 +13,5 @@ void main()
green = y2 + (1.0 - y); green = y2 + (1.0 - y);
blue = y2 + (1.0 - y); blue = y2 + (1.0 - y);
ocol0 = float4(red, green, blue, alpha); SetOutput(float4(red, green, blue, alpha));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
@ -30,5 +25,5 @@ void main()
if (((c0.r + c0.g + c0.b) / 3.0) > 0.9) if (((c0.r + c0.g + c0.b) / 3.0) > 0.9)
green = c0.r / 3.0; green = c0.r / 3.0;
ocol0 = vec4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
@ -14,5 +9,5 @@ void main()
red = c0.r + (c0.g / 2.0) + (c0.b / 3.0); red = c0.r + (c0.g / 2.0) + (c0.b / 3.0);
green = c0.r / 3.0; green = c0.r / 3.0;
ocol0 = vec4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }

View File

@ -1,15 +1,8 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float4 c1 = texture(samp9, uv0 + float2(1,1)*resolution.zw); float4 c1 = SampleOffset(int2( 1, 1));
float4 c2 = texture(samp9, uv0 + float2(-1,-1)*resolution.zw); float4 c2 = SampleOffset(int2(-1, -1));
float red = c0.r; float red = c0.r;
float green = c0.g; float green = c0.g;
float blue = c0.b; float blue = c0.b;
@ -18,5 +11,5 @@ void main()
red = c0.r - c1.b; red = c0.r - c1.b;
blue = c0.b - c2.r + (c0.g - c0.r); blue = c0.b - c2.r + (c0.g - c0.r);
ocol0 = float4(red, 0.0, blue, alpha); SetOutput(float4(red, 0.0, blue, alpha));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float avg = (c0.r + c0.g + c0.b) / 3.0; float avg = (c0.r + c0.g + c0.b) / 3.0;
ocol0 = vec4(avg, avg, avg, c0.a); SetOutput(float4(avg, avg, avg, c0.a));
} }

View File

@ -1,12 +1,7 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
// Info: http://www.oreillynet.com/cs/user/view/cs_msg/8691 // 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); float avg = (0.222 * c0.r) + (0.707 * c0.g) + (0.071 * c0.b);
ocol0 = vec4(avg, avg, avg, c0.a); SetOutput(float4(avg, avg, avg, c0.a));
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = vec4(1.0, 1.0, 1.0, 1.0) - texture(samp9, uv0); SetOutput(float4(1.0, 1.0, 1.0, 1.0) - Sample());
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = vec4(0.0, 0.0, 0.7, 1.0) - texture(samp9, uv0); SetOutput(float4(0.0, 0.0, 0.7, 1.0) - Sample());
} }

View File

@ -1,14 +1,7 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float4 c1 = texture(samp9, uv0 + float2(5,5)*resolution.zw); float4 c1 = SampleOffset(int2(5, 5));
ocol0 = c0 - c1; SetOutput(c0 - c1);
} }

View File

@ -1,26 +1,19 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 emboss = (texture(samp9, uv0+resolution.zw) - texture(samp9, uv0-resolution.zw))*2.0; float4 emboss = (SampleLocation(GetCoordinates()+GetInvResolution()) - SampleLocation(GetCoordinates()-GetInvResolution()))*2.0;
emboss -= (texture(samp9, uv0+float2(1,-1)*resolution.zw).rgba - texture(samp9, uv0+float2(-1,1)*resolution.zw).rgba); emboss -= (SampleLocation(GetCoordinates()+float2(1,-1)*GetInvResolution()).rgba - SampleLocation(GetCoordinates()+float2(-1,1)*GetInvResolution()).rgba);
float4 color = texture(samp9, uv0).rgba; float4 color = Sample();
if (color.r > 0.8 && color.b + color.b < 0.2) if (color.r > 0.8 && color.b + color.b < 0.2)
{ {
ocol0 = float4(1,0,0,0); SetOutput(float4(1,0,0,0));
} }
else else
{ {
color += emboss; color += emboss;
if (dot(color.rgb, float3(0.3, 0.5, 0.2)) > 0.5) if (dot(color.rgb, float3(0.3, 0.5, 0.2)) > 0.5)
ocol0 = float4(1,1,1,1); SetOutput(float4(1,1,1,1));
else else
ocol0 = float4(0,0,0,0); SetOutput(float4(0,0,0,0));
} }
} }

View File

@ -1,15 +1,10 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = Sample();
float green = c0.g; float green = c0.g;
if (c0.g < 0.50) if (c0.g < 0.50)
green = c0.r + c0.b; green = c0.r + c0.b;
ocol0 = float4(0.0, green, 0.0, 1.0); SetOutput(float4(0.0, green, 0.0, 1.0));
} }

View File

@ -1,27 +1,20 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
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 = Sample();
//blur //blur
float4 blurtotal = float4(0.0, 0.0, 0.0, 0.0); float4 blurtotal = float4(0.0, 0.0, 0.0, 0.0);
float blursize = 1.5; float blursize = 1.5;
blurtotal += texture(samp9, uv0 + float2(-blursize, -blursize) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2(-blursize, -blursize) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2(-blursize, blursize) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2(-blursize, blursize) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( blursize, -blursize) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( blursize, -blursize) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( blursize, blursize) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( blursize, blursize) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2(-blursize, 0.0) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2(-blursize, 0.0) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( blursize, 0.0) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( blursize, 0.0) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( 0.0, -blursize) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( 0.0, -blursize) * GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( 0.0, blursize) * resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( 0.0, blursize) * GetInvResolution());
blurtotal *= 0.125; blurtotal *= 0.125;
c0 = blurtotal; c0 = blurtotal;
@ -32,8 +25,8 @@ void main()
grey = grey * 0.5 + 0.7; grey = grey * 0.5 + 0.7;
// darken edges // darken edges
float x = uv0.x * resolution.x; float x = GetCoordinates().x * GetResolution().x;
float y = uv0.y * resolution.y; float y = GetCoordinates().y * GetResolution().y;
if (x > internalresolution/2.0) if (x > internalresolution/2.0)
x = internalresolution-x; x = internalresolution-x;
if (y > internalresolution/2.0) if (y > internalresolution/2.0)
@ -65,5 +58,5 @@ void main()
grey -= y / 200.0; grey -= y / 200.0;
// output // output
ocol0 = float4(0.0, grey, 0.0, 1.0); SetOutput(float4(0.0, grey, 0.0, 1.0));
} }

View File

@ -1,27 +1,20 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
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 = Sample();
//blur //blur
float4 blurtotal = float4(0.0, 0.0, 0.0, 0.0); float4 blurtotal = float4(0.0, 0.0, 0.0, 0.0);
float blursize = 1.5; float blursize = 1.5;
blurtotal += texture(samp9, uv0 + float2(-blursize, -blursize)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2(-blursize, -blursize)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2(-blursize, blursize)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2(-blursize, blursize)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( blursize, -blursize)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( blursize, -blursize)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( blursize, blursize)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( blursize, blursize)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2(-blursize, 0.0)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2(-blursize, 0.0)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( blursize, 0.0)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( blursize, 0.0)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( 0.0, -blursize)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( 0.0, -blursize)*GetInvResolution());
blurtotal += texture(samp9, uv0 + float2( 0.0, blursize)*resolution.zw); blurtotal += SampleLocation(GetCoordinates() + float2( 0.0, blursize)*GetInvResolution());
blurtotal *= 0.125; blurtotal *= 0.125;
c0 = blurtotal; c0 = blurtotal;
@ -31,14 +24,14 @@ void main()
// brighten and apply horizontal scanlines // brighten and apply horizontal scanlines
// This would have been much simpler if I could get the stupid modulo (%) to work // This would have been much simpler if I could get the stupid modulo (%) to work
// If anyone who is more well versed in Cg knows how to do this it'd be slightly more efficient // If anyone who is more well versed in Cg knows how to do this it'd be slightly more efficient
// float lineIntensity = ((uv0[1] % 9) - 4) / 40; // float lineIntensity = ((GetCoordinates()[1] % 9) - 4) / 40;
float vPos = uv0.y*resolution.y / 9.0; float vPos = GetCoordinates().y*GetResolution().y / 9.0;
float lineIntensity = (((vPos - floor(vPos)) * 9.0) - 4.0) / 40.0; float lineIntensity = (((vPos - floor(vPos)) * 9.0) - 4.0) / 40.0;
grey = grey * 0.5 + 0.7 + lineIntensity; grey = grey * 0.5 + 0.7 + lineIntensity;
// darken edges // darken edges
float x = uv0.x * resolution.x; float x = GetCoordinates().x * GetResolution().x;
float y = uv0.y * resolution.y; float y = GetCoordinates().y * GetResolution().y;
if (x > internalresolution/2.0) if (x > internalresolution/2.0)
x = internalresolution-x; x = internalresolution-x;
@ -74,5 +67,5 @@ void main()
grey -= y / 200.0; grey -= y / 200.0;
// output // output
ocol0 = float4(0.0, grey, 0.0, 1.0); SetOutput(float4(0.0, grey, 0.0, 1.0));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
@ -19,5 +14,5 @@ void main()
if (c0.b > 0.25) if (c0.b > 0.25)
blue = c0.b; blue = c0.b;
ocol0 = float4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }

View File

@ -1,8 +1,3 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
float bound(float color) float bound(float color)
{ {
if (color < 0.35) if (color < 0.35)
@ -18,6 +13,6 @@ float bound(float color)
void main() void main()
{ {
float4 c0 = texture(samp9, uv0); float4 c0 = Sample();
ocol0 = float4(bound(c0.r), bound(c0.g), bound(c0.b), c0.a); SetOutput(float4(bound(c0.r), bound(c0.g), bound(c0.b), c0.a));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = c0.r; float red = c0.r;
float blue = c0.b; float blue = c0.b;
float green = c0.g; float green = c0.g;
@ -78,5 +73,5 @@ void main()
green = 0.05; green = 0.05;
} }
} }
ocol0 = vec4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
// Same coefficients as grayscale2 at this point // Same coefficients as grayscale2 at this point
float avg = (0.222 * c0.r) + (0.707 * c0.g) + (0.071 * c0.b); float avg = (0.222 * c0.r) + (0.707 * c0.g) + (0.071 * c0.b);
@ -14,5 +9,5 @@ void main()
// Not sure about these coefficients, they just seem to produce the proper yellow // Not sure about these coefficients, they just seem to produce the proper yellow
float green=avg*.75; float green=avg*.75;
float blue=avg*.5; float blue=avg*.5;
ocol0 = vec4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,24 +1,17 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = Sample();
float4 tmp = float4(0.0, 0.0, 0.0, 0.0); float4 tmp = float4(0.0, 0.0, 0.0, 0.0);
tmp += c0 - texture(samp9, uv0 + float2(2.0, 2.0)*resolution.zw).rgba; tmp += c0 - SampleOffset(int2( 2, 2));
tmp += c0 - texture(samp9, uv0 - float2(2.0, 2.0)*resolution.zw).rgba; tmp += c0 - SampleOffset(int2(-2, -2));
tmp += c0 - texture(samp9, uv0 + float2(2.0, -2.0)*resolution.zw).rgba; tmp += c0 - SampleOffset(int2( 2, -2));
tmp += c0 - texture(samp9, uv0 - float2(2.0, -2.0)*resolution.zw).rgba; tmp += c0 - SampleOffset(int2(-2, 2));
float grey = ((0.222 * tmp.r) + (0.707 * tmp.g) + (0.071 * tmp.b)); float grey = ((0.222 * tmp.r) + (0.707 * tmp.g) + (0.071 * tmp.b));
// get rid of the bottom line, as it is incorrect. // get rid of the bottom line, as it is incorrect.
if (uv0.y*resolution.y < 163.0) if (GetCoordinates().y*GetResolution().y < 163.0)
tmp = float4(1.0, 1.0, 1.0, 1.0); tmp = float4(1.0, 1.0, 1.0, 1.0);
c0 = c0 + 1.0 - grey * 7.0; c0 = c0 + 1.0 - grey * 7.0;
ocol0 = float4(c0.r, c0.g, c0.b, 1.0); SetOutput(float4(c0.r, c0.g, c0.b, 1.0));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float blue = 0.0; float blue = 0.0;
@ -19,5 +14,5 @@ void main()
blue = c0.r + c0.b; blue = c0.r + c0.b;
} }
ocol0 = vec4(red, 0.0, blue, 1.0); SetOutput(float4(red, 0.0, blue, 1.0));
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
@ -21,5 +16,5 @@ void main()
green = c0.r + c0.b; green = c0.r + c0.b;
} }
ocol0 = vec4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }

View File

@ -1,31 +1,24 @@
// Omega's 3D Stereoscopic filtering // Omega's 3D Stereoscopic filtering
// TODO: Need depth info! // TODO: Need depth info!
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
// Source Color // Source Color
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = Sample();
float sep = 5.0; const int sep = 5;
float red = c0.r; float red = c0.r;
float green = c0.g; float green = c0.g;
float blue = c0.b; float blue = c0.b;
// Left Eye (Red) // Left Eye (Red)
float4 c1 = texture(samp9, uv0 + float2(sep,0.0)*resolution.zw).rgba; float4 c1 = SampleOffset(int2(sep, 0));
red = max(c0.r, c1.r); red = max(c0.r, c1.r);
// Right Eye (Cyan) // Right Eye (Cyan)
float4 c2 = texture(samp9, uv0 + float2(-sep,0.0)*resolution.zw).rgba; float4 c2 = SampleOffset(int2(-sep, 0));
float cyan = (c2.g + c2.b) / 2.0; float cyan = (c2.g + c2.b) / 2.0;
green = max(c0.g, cyan); green = max(c0.g, cyan);
blue = max(c0.b, cyan); blue = max(c0.b, cyan);
ocol0 = float4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,31 +1,24 @@
// Omega's 3D Stereoscopic filtering (Amber/Blue) // Omega's 3D Stereoscopic filtering (Amber/Blue)
// TODO: Need depth info! // TODO: Need depth info!
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
uniform vec4 resolution;
void main() void main()
{ {
// Source Color // Source Color
float4 c0 = texture(samp9, uv0).rgba; float4 c0 = Sample();
float sep = 5.0; float sep = 5.0;
float red = c0.r; float red = c0.r;
float green = c0.g; float green = c0.g;
float blue = c0.b; float blue = c0.b;
// Left Eye (Amber) // Left Eye (Amber)
float4 c2 = texture(samp9, uv0 + float2(sep,0.0)*resolution.zw).rgba; float4 c2 = SampleLocation(GetCoordinates() + float2(sep,0.0)*GetInvResolution()).rgba;
float amber = (c2.r + c2.g) / 2.0; float amber = (c2.r + c2.g) / 2.0;
red = max(c0.r, amber); red = max(c0.r, amber);
green = max(c0.g, amber); green = max(c0.g, amber);
// Right Eye (Blue) // Right Eye (Blue)
float4 c1 = texture(samp9, uv0 + float2(-sep,0.0)*resolution.zw).rgba; float4 c1 = SampleLocation(GetCoordinates() + float2(-sep,0.0)*GetInvResolution()).rgba;
blue = max(c0.b, c1.b); blue = max(c0.b, c1.b);
ocol0 = float4(red, green, blue, c0.a); SetOutput(float4(red, green, blue, c0.a));
} }

View File

@ -1,10 +1,5 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
ocol0 = vec4(c0.r * 1.5, c0.g, c0.b * 0.5, c0.a); SetOutput(float4(c0.r * 1.5, c0.g, c0.b * 0.5, c0.a));
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = texture(samp9, uv0).bgra; SetOutput(Sample().bgra);
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = texture(samp9, uv0).brga; SetOutput(Sample().brga);
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = texture(samp9, uv0).gbra; SetOutput(Sample());
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = texture(samp9, uv0).grba; SetOutput(Sample());
} }

View File

@ -1,9 +1,4 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
ocol0 = texture(samp9, uv0).rbga; SetOutput(Sample().rbga);
} }

View File

@ -1,11 +1,6 @@
SAMPLER_BINDING(9) uniform sampler2D samp9;
out vec4 ocol0;
in vec2 uv0;
void main() void main()
{ {
vec4 c0 = texture(samp9, uv0); float4 c0 = Sample();
float red = 0.0; float red = 0.0;
float green = 0.0; float green = 0.0;
float blue = 0.0; float blue = 0.0;
@ -21,5 +16,5 @@ void main()
green = c0.r + c0.b; green = c0.r + c0.b;
} }
ocol0 = vec4(red, green, blue, 1.0); SetOutput(float4(red, green, blue, 1.0));
} }