2016-08-29 11:10:22 +00:00
|
|
|
#ifndef __GL_AMBIENTSHADER_H
|
|
|
|
#define __GL_AMBIENTSHADER_H
|
|
|
|
|
|
|
|
#include "gl_shaderprogram.h"
|
|
|
|
|
|
|
|
class FLinearDepthShader
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
void Bind();
|
|
|
|
|
|
|
|
FBufferedUniformSampler DepthTexture;
|
|
|
|
FBufferedUniform1f LinearizeDepthA;
|
|
|
|
FBufferedUniform1f LinearizeDepthB;
|
|
|
|
FBufferedUniform1f InverseDepthRangeA;
|
|
|
|
FBufferedUniform1f InverseDepthRangeB;
|
|
|
|
|
|
|
|
private:
|
|
|
|
FShaderProgram mShader;
|
|
|
|
};
|
|
|
|
|
|
|
|
class FSSAOShader
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
void Bind();
|
|
|
|
|
|
|
|
FBufferedUniformSampler DepthTexture;
|
2016-08-29 23:09:21 +00:00
|
|
|
FBufferedUniformSampler RandomTexture;
|
2016-08-29 11:10:22 +00:00
|
|
|
FBufferedUniform2f UVToViewA;
|
|
|
|
FBufferedUniform2f UVToViewB;
|
|
|
|
FBufferedUniform2f InvFullResolution;
|
|
|
|
FBufferedUniform1f NDotVBias;
|
|
|
|
FBufferedUniform1f NegInvR2;
|
|
|
|
FBufferedUniform1f RadiusToScreen;
|
|
|
|
FBufferedUniform1f AOMultiplier;
|
2016-08-29 23:09:21 +00:00
|
|
|
FBufferedUniform1f AOStrength;
|
2016-08-29 11:10:22 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
FShaderProgram mShader;
|
|
|
|
};
|
|
|
|
|
2016-09-02 03:45:00 +00:00
|
|
|
class FDepthBlurShader
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
void Bind(bool vertical);
|
|
|
|
|
|
|
|
FBufferedUniformSampler AODepthTexture[2];
|
|
|
|
FBufferedUniform1f BlurSharpness[2];
|
|
|
|
FBufferedUniform2f InvFullResolution[2];
|
|
|
|
FBufferedUniform1f PowExponent[2];
|
|
|
|
|
|
|
|
private:
|
|
|
|
FShaderProgram mShader[2];
|
|
|
|
};
|
|
|
|
|
|
|
|
class FSSAOCombineShader
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
void Bind();
|
|
|
|
|
|
|
|
FBufferedUniformSampler AODepthTexture;
|
|
|
|
|
|
|
|
private:
|
|
|
|
FShaderProgram mShader;
|
|
|
|
};
|
|
|
|
|
2016-08-29 11:10:22 +00:00
|
|
|
#endif
|