Merge pull request #1439 from Armada651/ogl-stereo-3d

OGL: Stereoscopic 3D Support
This commit is contained in:
Ryan Houdek
2014-11-28 11:45:38 -06:00
48 changed files with 774 additions and 267 deletions

View File

@ -32,3 +32,5 @@ $99 of some treasures
040AE530 3F000063
$End Boss Has No HP
[Video_Stereoscopy]
StereoMonoEFBDepth = True

View File

@ -1,24 +0,0 @@
// Omega's 3D Stereoscopic filtering
// TODO: Need depth info!
void main()
{
// Source Color
float4 c0 = Sample();
const int sep = 5;
float red = c0.r;
float green = c0.g;
float blue = c0.b;
// Left Eye (Red)
float4 c1 = SampleOffset(int2(sep, 0));
red = max(c0.r, c1.r);
// Right Eye (Cyan)
float4 c2 = SampleOffset(int2(-sep, 0));
float cyan = (c2.g + c2.b) / 2.0;
green = max(c0.g, cyan);
blue = max(c0.b, cyan);
SetOutput(float4(red, green, blue, c0.a));
}

View File

@ -1,24 +0,0 @@
// Omega's 3D Stereoscopic filtering (Amber/Blue)
// TODO: Need depth info!
void main()
{
// Source Color
float4 c0 = Sample();
float sep = 5.0;
float red = c0.r;
float green = c0.g;
float blue = c0.b;
// Left Eye (Amber)
float4 c2 = SampleLocation(GetCoordinates() + float2(sep,0.0)*GetInvResolution()).rgba;
float amber = (c2.r + c2.g) / 2.0;
red = max(c0.r, amber);
green = max(c0.g, amber);
// Right Eye (Blue)
float4 c1 = SampleLocation(GetCoordinates() + float2(-sep,0.0)*GetInvResolution()).rgba;
blue = max(c0.b, c1.b);
SetOutput(float4(red, green, blue, c0.a));
}