From 798b977d95be54c8cbbe09d4b7861cdbfc25ea2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Thu, 5 Dec 2019 11:59:52 +0100 Subject: Overlay Engine: Outlines: Fix occluded alpha being too low --- source/blender/draw/engines/overlay/overlay_outline.c | 2 +- source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/draw/engines/overlay/overlay_outline.c b/source/blender/draw/engines/overlay/overlay_outline.c index 0d89471c90c..63738b3c214 100644 --- a/source/blender/draw/engines/overlay/overlay_outline.c +++ b/source/blender/draw/engines/overlay/overlay_outline.c @@ -95,7 +95,7 @@ void OVERLAY_outline_cache_init(OVERLAY_Data *vedata) grp = DRW_shgroup_create(sh, psl->outlines_detect_ps); /* Don't occlude the "outline" detection pass if in xray mode (too much flickering). */ - DRW_shgroup_uniform_float_copy(grp, "alphaOcclu", (pd->xray_enabled) ? 1.0f : 0.125f); + DRW_shgroup_uniform_float_copy(grp, "alphaOcclu", (pd->xray_enabled) ? 1.0f : 0.35f); DRW_shgroup_uniform_bool_copy(grp, "doThickOutlines", do_expand); DRW_shgroup_uniform_bool_copy(grp, "doAntiAliasing", pd->antialiasing.enabled); DRW_shgroup_uniform_bool_copy(grp, "isXrayWires", pd->xray_enabled_and_not_wire); diff --git a/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl b/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl index dea053a7c8a..f5a3aa2c332 100644 --- a/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl +++ b/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl @@ -233,7 +233,7 @@ void main() bool occluded = (ref_depth > scene_depth + epsilon); /* NOTE: We never set alpha to 1.0 to avoid Antialiasing destroying the line. */ - fragColor *= (occluded) ? alphaOcclu : (254.0 / 255.0); + fragColor *= (occluded ? alphaOcclu : 1.0) * (254.0 / 255.0); int edge_case = 0; edge_case += int(has_edge_pos_x) * XPOS; -- cgit v1.2.3