From 926d6cbd46e055a6f1f7e42b644ac6a70f40bd7f Mon Sep 17 00:00:00 2001
From: Alexander Rose <alexander.rose@weirdbyte.de>
Date: Sat, 25 Feb 2023 13:35:45 -0800
Subject: [PATCH] reduce over-blurring occlusion at larger view distances

---
 CHANGELOG.md                        | 1 +
 src/mol-gl/shader/ssao-blur.frag.ts | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6326f8a9c..949d70536 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ Note that since we don't clearly distinguish between a public and private interf
 
 - Add occlusion color parameter
 - Fix issue with outlines and orthographic camera
+- Reduce over-blurring occlusion at larger view distances
 
 ## [v3.31.4] - 2023-02-24
 
diff --git a/src/mol-gl/shader/ssao-blur.frag.ts b/src/mol-gl/shader/ssao-blur.frag.ts
index 114294767..eb18948f3 100644
--- a/src/mol-gl/shader/ssao-blur.frag.ts
+++ b/src/mol-gl/shader/ssao-blur.frag.ts
@@ -74,6 +74,8 @@ void main(void) {
     float kernelSum = 0.0;
     // only if kernelSize is odd
     for (int i = -dOcclusionKernelSize / 2; i <= dOcclusionKernelSize / 2; i++) {
+        if (abs(i) > 1 && abs(float(i)) * pixelSize > 0.5) continue;
+
         vec2 sampleCoords = coords + float(i) * offset;
         if (outsideBounds(sampleCoords)) {
             continue;
-- 
GitLab