More Shaders :), Fire2, Stereoscopic, toxic, christmas, and more...

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3438 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
omegadox 2009-06-14 08:56:13 +00:00
parent a517d054e3
commit 8721dae6e1
12 changed files with 171 additions and 22 deletions

View File

@ -4,16 +4,13 @@ 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;
green = c0.g;
if (c0.r > 0.25 && c0.b > 0.25)
{
blue = c0.b;
red = c0.r;
}
ocol0 = float4(red, green, blue, 1.0);
ocol0 = float4(red, c0.g, blue, 1.0);
}

View File

@ -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);
}

View File

@ -3,13 +3,5 @@ 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.g;
green = c0.b;
blue = c0.r;
ocol0 = float4(red, green, blue, 1.0);
ocol0 = float4(c0.g, c0.b,c0.r, 1.0);
}

View File

@ -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);
}

View File

@ -9,6 +9,7 @@ void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0)
red = c0.r;
if (c0.r > 0.0)
{
if (c0.g > c0.r)
@ -17,5 +18,22 @@ void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0)
}
}
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);
}

View File

@ -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);
}

View File

@ -3,16 +3,12 @@ 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;
green = c0.g;
float green = c0.g;
if (c0.g < 0.50)
{
green = c0.r + c0.b;
}
ocol0 = float4(red, green, blue, 1.0);
ocol0 = float4(0.0, green, 0.0, 1.0);
}

View File

@ -3,9 +3,9 @@ uniform samplerRECT samp0 : register(s0);
void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0)
{
float4 c0 = texRECT(samp0, uv0).rgba;
float red;
float green;
float blue;
float red = 0.0;
float green = 0.0;
float blue = 0.0;
if (c0.r > 0.25)
{

View File

@ -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);
}

View File

@ -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);
}

View File

@ -0,0 +1,26 @@
// Omega's 3D Stereoscopic filtering
// TODO: Need depth info!
uniform samplerRECT samp0 : register(s0);
void main(out float4 ocol0 : COLOR0, in float2 uv0 : TEXCOORD0)
{
float sep = 5;
float4 c0 = texRECT(samp0, uv0).rgba; // Source Color
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.r + c2.g + c2.b) / 3;
green = max(c0.g, cyan);
blue = max(c0.b, cyan);
ocol0 = float4(red, green, blue, c0.a);
}

View File

@ -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);
}