diff --git a/CHANGELOG.md b/CHANGELOG.md index 6326f8a9c87f3fa2932c1fbbc07a38a9ce53346b..949d705362d4bcb4128d6783a2aaa7467ab75edd 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 11429476796ef2f0064b498c72e92c02475049eb..eb18948f3e9db2b1f917e4cab87cadd6066f96a4 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;