1
0
Files
BreakOut/postprocessing.fs
2022-10-20 15:40:28 +02:00

45 lines
919 B
GLSL

#version 330 core
in vec2 TexCoords;
out vec4 color;
uniform sampler2D scene;
uniform vec2 offsets[9];
uniform int edge_kernel[9];
uniform float blur_kernel[9];
uniform bool chaos;
uniform bool confuse;
uniform bool shake;
void main ()
{
color = vec4(0.0, 0.0,0.0,1.0);
vec3 sample[9];
if(chaos || shake)
for (int i = 0; i < 9; i++)
sample[i] = vec3(texture(scene,TexCoords.st + offsets[i]));
// process effects
if (chaos)
{
for(int i = 0; i < 9; i ++)
color += vec4(sample[i] * edge_kernel[i], 0.0);
color.a = 1.0;
}
else if (confuse)
{
color = vec4(1.0 - texture(scene, TexCoords).rgb, 1.0);
}
else if (shake)
{
for (int i = 0; i < 9; i++)
color += vec4(sample[i] * blur_kernel[i], 0.0);
color.a = 1.0;
}
else
{
color = texture(scene, TexCoords);
}
}