- specify fragment output locations in the shader source.

OpenGL has been supporting this since version 3.3 and Vulkan requires it so it's the way to go.
This commit is contained in:
Christoph Oelckers 2018-06-12 23:52:33 +02:00
parent 832e7818c8
commit ad7aaa8f2a
38 changed files with 28 additions and 65 deletions

1
.gitignore vendored
View File

@ -55,3 +55,4 @@
/src/gl/unused /src/gl/unused
/mapfiles_release/*.map /mapfiles_release/*.map
.DS_Store .DS_Store
/build_vc2017-32

View File

@ -39,7 +39,6 @@ void FLinearDepthShader::Bind()
mShader.reset(new FShaderProgram()); mShader.reset(new FShaderProgram());
mShader->Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader->Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader->Compile(FShaderProgram::Fragment, "shaders/glsl/lineardepth.fp", prolog, 330); mShader->Compile(FShaderProgram::Fragment, "shaders/glsl/lineardepth.fp", prolog, 330);
mShader->SetFragDataLocation(0, "FragColor");
mShader->Link("shaders/glsl/lineardepth"); mShader->Link("shaders/glsl/lineardepth");
mShader->SetAttribLocation(0, "PositionInProjection"); mShader->SetAttribLocation(0, "PositionInProjection");
mShader->SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader->SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");
@ -65,7 +64,6 @@ void FSSAOShader::Bind()
mShader.reset(new FShaderProgram()); mShader.reset(new FShaderProgram());
mShader->Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader->Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader->Compile(FShaderProgram::Fragment, "shaders/glsl/ssao.fp", prolog, 330); mShader->Compile(FShaderProgram::Fragment, "shaders/glsl/ssao.fp", prolog, 330);
mShader->SetFragDataLocation(0, "FragColor");
mShader->Link("shaders/glsl/ssao"); mShader->Link("shaders/glsl/ssao");
mShader->SetAttribLocation(0, "PositionInProjection"); mShader->SetAttribLocation(0, "PositionInProjection");
mShader->SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader->SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");
@ -116,7 +114,6 @@ void FDepthBlurShader::Bind(bool vertical)
shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
shader.Compile(FShaderProgram::Fragment, "shaders/glsl/depthblur.fp", prolog, 330); shader.Compile(FShaderProgram::Fragment, "shaders/glsl/depthblur.fp", prolog, 330);
shader.SetFragDataLocation(0, "FragColor");
shader.Link("shaders/glsl/depthblur"); shader.Link("shaders/glsl/depthblur");
shader.SetAttribLocation(0, "PositionInProjection"); shader.SetAttribLocation(0, "PositionInProjection");
shader.SetUniformBufferLocation(Uniforms[vertical].BindingPoint(), "Uniforms"); shader.SetUniformBufferLocation(Uniforms[vertical].BindingPoint(), "Uniforms");
@ -141,7 +138,6 @@ void FSSAOCombineShader::Bind()
mShader.reset(new FShaderProgram()); mShader.reset(new FShaderProgram());
mShader->Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader->Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader->Compile(FShaderProgram::Fragment, "shaders/glsl/ssaocombine.fp", prolog, 330); mShader->Compile(FShaderProgram::Fragment, "shaders/glsl/ssaocombine.fp", prolog, 330);
mShader->SetFragDataLocation(0, "FragColor");
mShader->Link("shaders/glsl/ssaocombine"); mShader->Link("shaders/glsl/ssaocombine");
mShader->SetAttribLocation(0, "PositionInProjection"); mShader->SetAttribLocation(0, "PositionInProjection");
mShader->SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader->SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");

View File

@ -37,7 +37,6 @@ void FBloomExtractShader::Bind()
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/bloomextract.fp", prolog, 330); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/bloomextract.fp", prolog, 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/bloomextract"); mShader.Link("shaders/glsl/bloomextract");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");
@ -54,7 +53,6 @@ void FBloomCombineShader::Bind()
{ {
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/bloomcombine.fp", "", 330); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/bloomcombine.fp", "", 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/bloomcombine"); mShader.Link("shaders/glsl/bloomcombine");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
BloomTexture.Init(mShader, "Bloom"); BloomTexture.Init(mShader, "Bloom");

View File

@ -44,7 +44,6 @@ void FBlurShader::Bind(bool vertical)
mShader[vertical].Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader[vertical].Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader[vertical].Compile(FShaderProgram::Fragment, "shaders/glsl/blur.fp", prolog, 330); mShader[vertical].Compile(FShaderProgram::Fragment, "shaders/glsl/blur.fp", prolog, 330);
mShader[vertical].SetFragDataLocation(0, "FragColor");
mShader[vertical].Link("shaders/glsl/blur"); mShader[vertical].Link("shaders/glsl/blur");
mShader[vertical].SetAttribLocation(0, "PositionInProjection"); mShader[vertical].SetAttribLocation(0, "PositionInProjection");
mShader[vertical].SetUniformBufferLocation(POSTPROCESS_BINDINGPOINT, "Uniforms"); mShader[vertical].SetUniformBufferLocation(POSTPROCESS_BINDINGPOINT, "Uniforms");

View File

@ -38,7 +38,6 @@ void FColormapShader::Bind()
shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
shader.Compile(FShaderProgram::Fragment, "shaders/glsl/colormap.fp", prolog, 330); shader.Compile(FShaderProgram::Fragment, "shaders/glsl/colormap.fp", prolog, 330);
shader.SetFragDataLocation(0, "FragColor");
shader.Link("shaders/glsl/colormap"); shader.Link("shaders/glsl/colormap");
shader.SetAttribLocation(0, "PositionInProjection"); shader.SetAttribLocation(0, "PositionInProjection");
shader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); shader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");

View File

@ -35,7 +35,6 @@ void FFXAALumaShader::Bind()
{ {
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/fxaa.fp", "#define FXAA_LUMA_PASS\n", 330); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/fxaa.fp", "#define FXAA_LUMA_PASS\n", 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/fxaa"); mShader.Link("shaders/glsl/fxaa");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
InputTexture.Init(mShader, "InputTexture"); InputTexture.Init(mShader, "InputTexture");
@ -88,7 +87,6 @@ void FFXAAShader::Bind()
shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
shader.Compile(FShaderProgram::Fragment, "shaders/glsl/fxaa.fp", prolog, maxVersion); shader.Compile(FShaderProgram::Fragment, "shaders/glsl/fxaa.fp", prolog, maxVersion);
shader.SetFragDataLocation(0, "FragColor");
shader.Link("shaders/glsl/fxaa"); shader.Link("shaders/glsl/fxaa");
shader.SetAttribLocation(0, "PositionInProjection"); shader.SetAttribLocation(0, "PositionInProjection");
shader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); shader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");

View File

@ -37,7 +37,6 @@ void FLensShader::Bind()
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/lensdistortion.fp", prolog, 330); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/lensdistortion.fp", prolog, 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/lensdistortion"); mShader.Link("shaders/glsl/lensdistortion");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");

View File

@ -168,7 +168,6 @@ void PostProcessShaderInstance::CompileShader()
mProgram.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", Desc->ShaderVersion); mProgram.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", Desc->ShaderVersion);
mProgram.Compile(FShaderProgram::Fragment, lumpName, code, prolog.GetChars(), Desc->ShaderVersion); mProgram.Compile(FShaderProgram::Fragment, lumpName, code, prolog.GetChars(), Desc->ShaderVersion);
mProgram.SetFragDataLocation(0, "FragColor");
mProgram.Link(Desc->ShaderLumpName.GetChars()); mProgram.Link(Desc->ShaderLumpName.GetChars());
mProgram.SetAttribLocation(0, "PositionInProjection"); mProgram.SetAttribLocation(0, "PositionInProjection");
mInputTexture.Init(mProgram, "InputTexture"); mInputTexture.Init(mProgram, "InputTexture");

View File

@ -35,7 +35,6 @@ void FPresentShaderBase::Init(const char * vtx_shader_name, const char * program
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquadscale.vp", prolog, 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquadscale.vp", prolog, 330);
mShader.Compile(FShaderProgram::Fragment, vtx_shader_name, prolog, 330); mShader.Compile(FShaderProgram::Fragment, vtx_shader_name, prolog, 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link(program_name); mShader.Link(program_name);
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
mShader.SetAttribLocation(1, "UV"); mShader.SetAttribLocation(1, "UV");

View File

@ -263,13 +263,9 @@ bool FShader::Load(const char * name, const char * vert_prog_lump, const char *
{ {
vp_comb.Format("#version 300 es\n#define NUM_UBO_LIGHTS %d\n", lightbuffersize); vp_comb.Format("#version 300 es\n#define NUM_UBO_LIGHTS %d\n", lightbuffersize);
} }
else if (gl.glslversion < 1.4f) // This differentiation is for some Intel drivers which fail on #extension, so use of #version 140 is necessary
{
vp_comb.Format("#version 130\n#extension GL_ARB_uniform_buffer_object : require\n#define NUM_UBO_LIGHTS %d\n", lightbuffersize);
}
else else
{ {
vp_comb.Format("#version 140\n#define NUM_UBO_LIGHTS %d\n", lightbuffersize); vp_comb.Format("#version 330 core\n#define NUM_UBO_LIGHTS %d\n", lightbuffersize);
} }
} }
else else
@ -380,10 +376,6 @@ bool FShader::Load(const char * name, const char * vert_prog_lump, const char *
glBindAttribLocation(hShader, VATTR_VERTEX2, "aVertex2"); glBindAttribLocation(hShader, VATTR_VERTEX2, "aVertex2");
glBindAttribLocation(hShader, VATTR_NORMAL, "aNormal"); glBindAttribLocation(hShader, VATTR_NORMAL, "aNormal");
glBindFragDataLocation(hShader, 0, "FragColor");
glBindFragDataLocation(hShader, 1, "FragFog");
glBindFragDataLocation(hShader, 2, "FragNormal");
glLinkProgram(hShader); glLinkProgram(hShader);
glGetShaderInfoLog(hVertProg, 10000, NULL, buffer); glGetShaderInfoLog(hVertProg, 10000, NULL, buffer);

View File

@ -118,17 +118,6 @@ void FShaderProgram::Compile(ShaderType type, const char *name, const FString &c
} }
} }
//==========================================================================
//
// Binds a fragment output variable to a frame buffer render target
//
//==========================================================================
void FShaderProgram::SetFragDataLocation(int index, const char *name)
{
glBindFragDataLocation(mProgram, index, name);
}
//========================================================================== //==========================================================================
// //
// Links a program with the compiled shaders // Links a program with the compiled shaders

View File

@ -20,7 +20,6 @@ public:
void Compile(ShaderType type, const char *lumpName, const char *defines, int maxGlslVersion); void Compile(ShaderType type, const char *lumpName, const char *defines, int maxGlslVersion);
void Compile(ShaderType type, const char *name, const FString &code, const char *defines, int maxGlslVersion); void Compile(ShaderType type, const char *name, const FString &code, const char *defines, int maxGlslVersion);
void SetFragDataLocation(int index, const char *name);
void Link(const char *name); void Link(const char *name);
void SetAttribLocation(int index, const char *name); void SetAttribLocation(int index, const char *name);
void SetUniformBufferLocation(int index, const char *name); void SetUniformBufferLocation(int index, const char *name);

View File

@ -32,7 +32,6 @@ void FShadowMapShader::Bind()
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 430); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 430);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/shadowmap.fp", prolog, 430); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/shadowmap.fp", prolog, 430);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/shadowmap"); mShader.Link("shaders/glsl/shadowmap");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");

View File

@ -37,7 +37,6 @@ void FTonemapShader::Bind()
{ {
shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); shader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
shader.Compile(FShaderProgram::Fragment, "shaders/glsl/tonemap.fp", GetDefines(gl_tonemap), 330); shader.Compile(FShaderProgram::Fragment, "shaders/glsl/tonemap.fp", GetDefines(gl_tonemap), 330);
shader.SetFragDataLocation(0, "FragColor");
shader.Link("shaders/glsl/tonemap"); shader.Link("shaders/glsl/tonemap");
shader.SetAttribLocation(0, "PositionInProjection"); shader.SetAttribLocation(0, "PositionInProjection");
SceneTexture.Init(shader, "InputTexture"); SceneTexture.Init(shader, "InputTexture");
@ -73,7 +72,6 @@ void FExposureExtractShader::Bind()
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/exposureextract.fp", prolog, 330); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/exposureextract.fp", prolog, 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/exposureextract"); mShader.Link("shaders/glsl/exposureextract");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");
@ -89,7 +87,6 @@ void FExposureAverageShader::Bind()
{ {
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 400); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 400);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/exposureaverage.fp", "", 400); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/exposureaverage.fp", "", 400);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/exposureaverage"); mShader.Link("shaders/glsl/exposureaverage");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
ExposureTexture.Init(mShader, "ExposureTexture"); ExposureTexture.Init(mShader, "ExposureTexture");
@ -105,7 +102,6 @@ void FExposureCombineShader::Bind()
mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330); mShader.Compile(FShaderProgram::Vertex, "shaders/glsl/screenquad.vp", "", 330);
mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/exposurecombine.fp", prolog, 330); mShader.Compile(FShaderProgram::Fragment, "shaders/glsl/exposurecombine.fp", prolog, 330);
mShader.SetFragDataLocation(0, "FragColor");
mShader.Link("shaders/glsl/exposurecombine"); mShader.Link("shaders/glsl/exposurecombine");
mShader.SetAttribLocation(0, "PositionInProjection"); mShader.SetAttribLocation(0, "PositionInProjection");
mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms"); mShader.SetUniformBufferLocation(Uniforms.BindingPoint(), "Uniforms");

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D Bloom; uniform sampler2D Bloom;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D SceneTexture; uniform sampler2D SceneTexture;
uniform sampler2D ExposureTexture; uniform sampler2D ExposureTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D SourceTexture; uniform sampler2D SourceTexture;

View File

@ -1,7 +1,7 @@
in vec4 vTexCoord; in vec4 vTexCoord;
in vec4 vColor; in vec4 vColor;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
void main() void main()
{ {

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D tex; uniform sampler2D tex;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D AODepthTexture; uniform sampler2D AODepthTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D ExposureTexture; uniform sampler2D ExposureTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D ExposureTexture; uniform sampler2D ExposureTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D SceneTexture; uniform sampler2D SceneTexture;

View File

@ -1,5 +1,5 @@
in vec4 pixelpos; in vec4 pixelpos;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
//=========================================================================== //===========================================================================
// //

View File

@ -33,7 +33,7 @@
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D InputTexture; uniform sampler2D InputTexture;

View File

@ -30,7 +30,7 @@
*/ */
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D InputTexture; uniform sampler2D InputTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
#if defined(MULTISAMPLE) #if defined(MULTISAMPLE)
uniform sampler2DMS DepthTexture; uniform sampler2DMS DepthTexture;

View File

@ -6,10 +6,10 @@ in vec4 vEyeNormal;
in vec4 vTexCoord; in vec4 vTexCoord;
in vec4 vColor; in vec4 vColor;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
#ifdef GBUFFER_PASS #ifdef GBUFFER_PASS
out vec4 FragFog; layout(location=1) out vec4 FragFog;
out vec4 FragNormal; layout(location=2) out vec4 FragNormal;
#endif #endif
vec4 Process(vec4 color); vec4 Process(vec4 color);

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D InputTexture; uniform sampler2D InputTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D LeftEyeTexture; uniform sampler2D LeftEyeTexture;
uniform sampler2D RightEyeTexture; uniform sampler2D RightEyeTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D LeftEyeTexture; uniform sampler2D LeftEyeTexture;
uniform sampler2D RightEyeTexture; uniform sampler2D RightEyeTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D LeftEyeTexture; uniform sampler2D LeftEyeTexture;
uniform sampler2D RightEyeTexture; uniform sampler2D RightEyeTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
struct GPUNode struct GPUNode
{ {

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D DepthTexture; uniform sampler2D DepthTexture;

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D AODepthTexture; uniform sampler2D AODepthTexture;

View File

@ -1,5 +1,5 @@
in vec4 pixelpos; in vec4 pixelpos;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
void main() void main()
{ {

View File

@ -1,5 +1,5 @@
in vec4 vTexCoord; in vec4 vTexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
vec4 TextureLookup(vec2 tex_coord) vec4 TextureLookup(vec2 tex_coord)
{ {

View File

@ -1,6 +1,6 @@
in vec2 TexCoord; in vec2 TexCoord;
out vec4 FragColor; layout(location=0) out vec4 FragColor;
uniform sampler2D InputTexture; uniform sampler2D InputTexture;
uniform sampler2D ExposureTexture; uniform sampler2D ExposureTexture;