Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-10-02 19:20:55 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-10-03 16:44:12 +0300
commit34a627f345218c8a6688eb6e72e1892a4e765508 (patch)
treedbd8806d86c71fefbb3e6de84fd1550577ee7195 /source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl
parent36d457e8872ca9c6a779d671b65999e1706797ed (diff)
Fix T56992: OpenGL Render Engine ignores Transparent Background
Correct the outline blending for alpha 0 background.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl
index bf856fbb212..a5e81526216 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl
@@ -44,7 +44,11 @@ void main()
fragColor = vec4(background, world_data.background_alpha);
}
else {
- fragColor = vec4(mix(world_data.object_outline_color.rgb, background, object_outline), clamp(world_data.background_alpha, 1.0, object_outline));
+ /* Do correct alpha blending. */
+ vec4 background_color = vec4(background, 1.0);
+ vec4 outline_color = vec4(world_data.object_outline_color.rgb, 1.0) * world_data.background_alpha;
+ fragColor = mix(outline_color, background_color, object_outline);
+ fragColor = vec4(fragColor.rgb / max(1e-8, fragColor.a), fragColor.a);
}
return;
}