From 6ed0ae55b2aeda0dc7dc5df296d169cc844cdc74 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sat, 1 Oct 2022 15:34:54 -0700 Subject: [PATCH] fix black artifacts - on specular highlights with transparent background --- CHANGELOG.md | 1 + src/mol-canvas3d/passes/smaa.ts | 1 + src/mol-gl/shader/chunks/apply-light-color.glsl.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2f0adadd..6f5d92fee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Note that since we don't clearly distinguish between a public and private interf - Optimize BinaryCIF integer packing encoder - Fix Dual depth peeling when post-processing is off or when rendering direct-volumes - Add `cameraClipping.minNear` parameter +- Fix black artifacts on specular highlights with transparent background ## [v3.18.0] - 2022-09-17 diff --git a/src/mol-canvas3d/passes/smaa.ts b/src/mol-canvas3d/passes/smaa.ts index 4ac7296fa..4b1de5e41 100644 --- a/src/mol-canvas3d/passes/smaa.ts +++ b/src/mol-canvas3d/passes/smaa.ts @@ -74,6 +74,7 @@ export class SmaaPass { state.viewport(x, y, width, height); state.scissor(x, y, width, height); + state.colorMask(true, true, true, true); state.clearColor(0, 0, 0, 1); gl.clear(gl.COLOR_BUFFER_BIT); diff --git a/src/mol-gl/shader/chunks/apply-light-color.glsl.ts b/src/mol-gl/shader/chunks/apply-light-color.glsl.ts index c0cd9b64b..07374df93 100644 --- a/src/mol-gl/shader/chunks/apply-light-color.glsl.ts +++ b/src/mol-gl/shader/chunks/apply-light-color.glsl.ts @@ -57,6 +57,7 @@ export const apply_light_color = ` RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight); vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular; + outgoingLight = clamp(outgoingLight, 0.0, 1.0); // prevents black artifacts on specular highlight with transparent background gl_FragColor = vec4(outgoingLight, color.a); #endif -- GitLab