From d94b5cd398daa243e07a600dfe916986975b304d Mon Sep 17 00:00:00 2001 From: Natalia Nowakowska Date: Wed, 7 Feb 2024 20:16:03 +0100 Subject: [PATCH] merge bloom --- grk/cw 6/shaders/shader_bloom_final.frag | 2 +- grk/cw 6/shaders/shader_pbr.frag | 4 ++-- grk/cw 6/shaders/shader_skybox.frag | 16 ++++++++++++++-- grk/cw 6/shaders/shader_sun.frag | 14 ++++++++++++-- grk/cw 6/shaders/shader_tex.frag | 13 ++++++++++++- 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/grk/cw 6/shaders/shader_bloom_final.frag b/grk/cw 6/shaders/shader_bloom_final.frag index f216d5f..42e4521 100644 --- a/grk/cw 6/shaders/shader_bloom_final.frag +++ b/grk/cw 6/shaders/shader_bloom_final.frag @@ -10,7 +10,7 @@ uniform float exposure; void main() { - const float gamma = 2.6; + const float gamma = 1.5; vec3 hdrColor = texture(scene, TexCoords).rgb; vec3 bloomColor = texture(bloomBlur, TexCoords).rgb; if(bloom) diff --git a/grk/cw 6/shaders/shader_pbr.frag b/grk/cw 6/shaders/shader_pbr.frag index 79bd21e..2fa4fcb 100644 --- a/grk/cw 6/shaders/shader_pbr.frag +++ b/grk/cw 6/shaders/shader_pbr.frag @@ -218,10 +218,10 @@ void main() float brightness = dot(finalColor, vec3(0.2126, 0.7152, 0.0722)); - if(brightness > 1.5) + if(brightness > 0.2) BrightColor = vec4(finalColor, 1.0); else - BrightColor = vec4(0.5, 0.5, 0.5, 1.0); + BrightColor = vec4(0.0, 0.0, 0.0, 1.0); outColor = vec4(finalColor, 1.0); } diff --git a/grk/cw 6/shaders/shader_skybox.frag b/grk/cw 6/shaders/shader_skybox.frag index 9dc902e..566150e 100644 --- a/grk/cw 6/shaders/shader_skybox.frag +++ b/grk/cw 6/shaders/shader_skybox.frag @@ -1,14 +1,26 @@ #version 430 core +layout (location = 0) out vec4 outColor; +layout (location = 1) out vec4 BrightColor; uniform samplerCube skybox; uniform vec3 lightColor; in vec3 texCoord; -out vec4 out_color; +//out vec4 out_color; void main() { vec4 textureColor = texture(skybox, texCoord); - out_color = vec4(vec3(textureColor) * lightColor * 0.35f, 1.0f); + + vec3 finalColor = vec3(textureColor) * lightColor * 0.35f; + + float brightness = dot(finalColor, vec3(0.2126, 0.7152, 0.0722)); + + if(brightness > 0.2) + BrightColor = vec4(finalColor, 1.0); + else + BrightColor = vec4(0.0, 0.0, 0.0, 1.0); + + outColor = vec4(finalColor, 1.0); } \ No newline at end of file diff --git a/grk/cw 6/shaders/shader_sun.frag b/grk/cw 6/shaders/shader_sun.frag index eb72528..db14d6f 100644 --- a/grk/cw 6/shaders/shader_sun.frag +++ b/grk/cw 6/shaders/shader_sun.frag @@ -1,4 +1,6 @@ #version 430 core +layout (location = 0) out vec4 outColor; +layout (location = 1) out vec4 BrightColor; uniform vec3 lightPos; uniform vec3 lightColor; @@ -11,7 +13,7 @@ in vec3 vecNormal; in vec3 worldPos; in vec2 vtc; -out vec4 outColor; +//out vec4 outColor; uniform sampler2D colorTexture; @@ -40,6 +42,14 @@ void main() vec3 toneMappedColor = toneMapping(textureColor * distance); //gamma correction toneMappedColor = pow(toneMappedColor, vec3(1.0/2.2)); + vec3 finalColor = toneMappedColor * lightColor * 0.2f; + + float brightness = dot(finalColor, vec3(0.2126, 0.7152, 0.0722)); + + if(brightness > 0.2) + BrightColor = vec4(finalColor, 1.0); + else + BrightColor = vec4(0.0, 0.0, 0.0, 1.0); - outColor = vec4(toneMappedColor * lightColor * 0.2f, 1.0); + outColor = vec4(finalColor, 1.0); } \ No newline at end of file diff --git a/grk/cw 6/shaders/shader_tex.frag b/grk/cw 6/shaders/shader_tex.frag index daac93c..9697fe5 100644 --- a/grk/cw 6/shaders/shader_tex.frag +++ b/grk/cw 6/shaders/shader_tex.frag @@ -1,5 +1,8 @@ #version 430 core +layout (location = 0) out vec4 outColor; +layout (location = 1) out vec4 BrightColor; + float AMBIENT = 0.05; float PI = 3.14159; @@ -23,7 +26,7 @@ in vec3 vecNormal; in vec3 worldPos; in vec2 vtc; -out vec4 outColor; +//out vec4 outColor; vec3 toneMapping(vec3 color) { @@ -123,6 +126,14 @@ void main() vec3 noiseColor = noiseColor() * min(1, 20.0 * max(0.02, dot(normal, lightDir))) * lightColor * cloudBrightness; finalColor = mix(toneMappedColor, noiseColor, noiseColor.r); } + + float brightness = dot(finalColor, vec3(0.2126, 0.7152, 0.0722)); + + if(brightness > 0.2) + BrightColor = vec4(finalColor, 1.0); + else + BrightColor = vec4(0.0, 0.0, 0.0, 1.0); + outColor = vec4(finalColor, 1.0); } \ No newline at end of file