From a9652327f1c5f3b2734ccc2e43c8ae72596e09bf Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 3 Jul 2025 20:12:11 +0300 Subject: [PATCH] improve ssao --- res/shaders/effects/deferred_lighting.glsl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/res/shaders/effects/deferred_lighting.glsl b/res/shaders/effects/deferred_lighting.glsl index ea9c32bb..79c01435 100644 --- a/res/shaders/effects/deferred_lighting.glsl +++ b/res/shaders/effects/deferred_lighting.glsl @@ -1,11 +1,15 @@ vec4 effect() { float ssao = 0.0; - for (int y = -1; y <= 1; y++) { - for (int x = -1; x <= 1; x++) { + float z = texture(u_position, v_uv).z; + for (int y = -2; y <= 2; y++) { + for (int x = -2; x <= 2; x++) { vec2 offset = vec2(x, y) / u_screenSize; - ssao += texture(u_ssao, v_uv + offset * 2.0).r; + if (abs(z - texture(u_position, v_uv + offset * 2.0).z) > 0.05) + ssao += 1.0; + else + ssao += texture(u_ssao, v_uv + offset * 2.0).r; } } - ssao /= 9.0; + ssao /= 24.0; return vec4(texture(u_screen, v_uv).rgb * mix(1.0, ssao, 1.0), 1.0); }