LearnOpenGL/Shaders/Framebuffers.fs
Nigel 4355a12b9a Architecture redesign
PART 1:
- Added a Renderer class
- Added a Application interface
- Added a RenderPass interface
- Added multiple RenderPass classes
- Added a Window class
- Moved Shaders into a Shader folder

The idea behind this redesign is to make more abstractions.
These abstraction are then supposedly going to make it easier
to focus on the next couple tutorials main elements
2022-10-18 22:57:50 +02:00

75 lines
1.7 KiB
GLSL

#version 460 core
out vec4 FragColor;
in vec2 TexCoords;
uniform sampler2D screenTexure;
const float offset = 1.0/ 300.0;
void main(){
FragColor = texture(screenTexure, TexCoords);
// Inversion filter
//FragColor = vec4( vec3 (1.0 - texture(screenTexure, TexCoords) ), 1.0) ;
//grayscale
/*
FragColor = texture(screenTexure, TexCoords);
float average = (FragColor.r + FragColor.g + FragColor.b) / 3.0;
FragColor = vec4(average, average, average, 1.0);
*/
// physically accurate grayscale
/* FragColor = texture(screenTexure, TexCoords);
float average = 0.2126 * FragColor.r + 0.7152 * FragColor.g + 0.0722 * FragColor.b;
FragColor = vec4(average,average,average, 1.0);*/
vec2 offset[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
);
// sharpen
/*float kernel[9] = float[](
-1, -1, -1,
-1, 9, -1,
-1, -1, -1
);*/
// blur
/* float kernel[9] = float[](
1.0 /16, 2.0 /16, 1.0 /16,
2.0 /16, 4.0 /16, 2.0 /16,
1.0 /16, 2.0 /16, 1.0 /16
);*/
// Edge-detection
/* float kernel[9] = float[] (
1, 1, 1,
1, -8, 1,
1, 1, 1
);
vec3 sampleTex[9];
for (int i= 0; i < 9; i++) {
sampleTex[i] = vec3(texture(screenTexure, TexCoords.st + offset[i]));
}
vec3 col = vec3(0.0);
for (int i = 0; i < 9; i++) {
col += sampleTex[i] * kernel[i];
}
FragColor = vec4(col, 1.0);
*/
}