From db448390ae22122732f3b385d9002089e39e9f93 Mon Sep 17 00:00:00 2001 From: Nigel Date: Sun, 16 Oct 2022 18:58:21 +0200 Subject: [PATCH] Small issue fix, Added post-processing fx --- Framebuffers.fs | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ src/main.cpp | 13 +++++++--- 2 files changed, 74 insertions(+), 4 deletions(-) diff --git a/Framebuffers.fs b/Framebuffers.fs index ec8960c..e0fe2c8 100644 --- a/Framebuffers.fs +++ b/Framebuffers.fs @@ -4,7 +4,72 @@ 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); +*/ + + } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 01186c2..34ab34d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -265,16 +265,21 @@ while(!glfwWindowShouldClose(window)) framebuffer.Bind(); drawScene_pass(shader, backpack); - outline_pass(outlineShader, backpack); + //outline_pass(outlineShader, backpack); - // Reset stencil + + + + DrawToScreen(ScreenVAO, ColourBuffer->id, framebufferShader); + + // Reset stencil glStencilMask(0xFF); glStencilFunc(GL_ALWAYS, 1, 0xFF); glEnable(GL_DEPTH_TEST); - DrawToScreen(ScreenVAO, ColourBuffer->id, framebufferShader); - + + glfwSwapBuffers(window); glfwPollEvents(); }