yupplemayham/Resources/shaders/GL_postprocess.frag

67 lines
No EOL
1.8 KiB
GLSL

#version 330 core
layout (std140) uniform uPostProcess {
int curTime;
int dt;
vec3 colorMod;
float blurIntensity;
float shakeIntensity;
float shakeTime;
int effects;
vec3 colorMod_hud;
float blurIntensity_hud;
float shakeIntensity_hud;
float shakeTime_hud;
int effects_hud;
};
out vec4 FragColor;
in vec2 texCoord;
uniform int edge_kernel[9];
uniform float blur_kernel[9];
const float offset = 1.0 / 300.0;
uniform sampler2D screenTexture;
uniform bool worldOrHud;
void main()
{
if (worldOrHud == false)
{
/*
vec2 offsets[9] = vec2[](
vec2(-offset, offset), // top-left
vec2( 0.0f, offset), // top-center
vec2( offset, offset), // top-right
vec2(-offset, 0.0f), // center-left
vec2( 0.0f, 0.0f), // center-center
vec2( offset, 0.0f), // center-right
vec2(-offset, -offset), // bottom-left
vec2( 0.0f, -offset), // bottom-center
vec2( offset, -offset) // bottom-right
);
vec2 tex_offset = 1.0 / vec2(800.0, 600.0); // gets size of single texel
vec4 result = vec4(0.0);
vec4 sampleTex[9];
for (int i = 0; i < 9; i++)
{
sampleTex[i] = vec4(texture(screenTexture, texCoord.st + offsets[i]));
}
for (int i = 0; i < 9; i++)
result += sampleTex[i] * edge_kernel[i];
*/
//FragColor = mix(vec4(result), vec4(0.4, 0.0, 0.7, 1.0), 0.2);
if ((effects & (1 << 1)) != 0)
{
//FragColor = mix(texture(screenTexture, texCoord), vec4(1.0, 0.8, 0.0, 1.0), 0.3 - (1.0 / shakeTime) * shakeIntensity);
FragColor = texture(screenTexture, texCoord);
}
else
{
FragColor = texture(screenTexture, texCoord);
}
}
}