[Bf-blender-cvs] [798b977d95b] master: Overlay Engine: Outlines: Fix occluded alpha being too low

Clément Foucault noreply at git.blender.org
Thu Dec 5 11:29:13 CET 2019


Commit: 798b977d95be54c8cbbe09d4b7861cdbfc25ea2d
Author: Clément Foucault
Date:   Thu Dec 5 11:59:52 2019 +0100
Branches: master
https://developer.blender.org/rB798b977d95be54c8cbbe09d4b7861cdbfc25ea2d

Overlay Engine: Outlines: Fix occluded alpha being too low

===================================================================

M	source/blender/draw/engines/overlay/overlay_outline.c
M	source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl

===================================================================

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;



More information about the Bf-blender-cvs mailing list