From 48e9973a486a02e33320453ce6126d391ac7b099 Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Sun, 15 Jan 2023 04:25:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=B8=D0=B0=D0=BF=D0=B0=D0=B7=D0=BE=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shaders/ssao.frag | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shaders/ssao.frag b/shaders/ssao.frag index 2df64fd..548aab6 100644 --- a/shaders/ssao.frag +++ b/shaders/ssao.frag @@ -38,6 +38,7 @@ void main() float sampleDepth; // Значение глубины образца выборки vec3 samplePos; // Выборка, ориентированная в пространстве вида камеры vec4 sampleCoord; // Выборка, преобразованная к текстурным координатам + float rangeCheck; // Проверка диапазона // Проинициализируем значение счетчика и запустим цикл по выборкам occlusion = 0; @@ -53,7 +54,8 @@ void main() // Получаем значение глубины по образцу выборки sampleDepth = (camera.view * vec4(texture(gPosition, sampleCoord.xy).rgb, 1)).z; - occlusion += (sampleDepth >= samplePos.z + ssao.bias ? 1.0 : 0.0); + rangeCheck = smoothstep(0.0, 1.0, ssao.radius / abs(fragPos.z - sampleDepth)); + occlusion += (sampleDepth >= samplePos.z + ssao.bias ? 1.0 : 0.0) * rangeCheck; } occlusion = 1 - (occlusion / ssao.size);