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:
authorJeroen Bakker <j.bakker@atmind.nl>2018-06-01 18:06:25 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-06-01 18:15:35 +0300
commite4a727626e34eef20e2b41cc3e26b41db4f360a0 (patch)
tree25af9312b02b0defae25f2c08c2a9863d2e795e1 /source/blender/draw/engines/workbench/shaders
parent56dc2bf0c528524b9a31c9cd27f9b1a261827bf0 (diff)
X-Ray: Added a slider for the alpha
- will not render when set to 0.0 for speed reasons. so when user sets transparency to hide everything the bigger passes will be skipped.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl6
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl2
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_revealage_frag.glsl4
3 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
index 12d6296655d..f335e1a15bd 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
@@ -21,18 +21,20 @@ void main()
float transparent_revealage = texelFetch(transparentRevealage, texel, 0).r;
#endif
vec4 color;
+ vec4 bg_color;
#ifdef V3D_SHADING_OBJECT_OUTLINE
float outline = calculate_object_outline(objectId, texel, object_id);
#else /* V3D_SHADING_OBJECT_OUTLINE */
float outline = 1.0;
#endif /* V3D_SHADING_OBJECT_OUTLINE */
-
+ bg_color = vec4(background_color(world_data, uv_viewport.y), 0.0);
if (object_id == NO_OBJECT_ID) {
- color = vec4(background_color(world_data, uv_viewport.y), 0.0);
+ color = bg_color;
} else {
#ifdef WORKBENCH_REVEALAGE_ENABLED
color = vec4((transparent_accum.xyz / max(transparent_accum.a, EPSILON)) * (1.0 - transparent_revealage), 1.0);
+ color = mix(bg_color, color, clamp(1.0 - transparent_revealage, 0.0, 1.0));
#else
color = vec4(transparent_accum.xyz / max(transparent_accum.a, EPSILON), 1.0);
#endif
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
index 88b32cb9b20..3f271ec439b 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
@@ -2,6 +2,7 @@
uniform sampler2D image;
#endif
uniform mat3 normalWorldMatrix;
+uniform float alpha = 0.5;
#ifdef NORMAL_VIEWPORT_PASS_ENABLED
in vec3 normal_viewport;
@@ -53,7 +54,6 @@ void main()
#endif /* V3D_LIGHTING_STUDIO */
- float alpha = 0.5 ;
vec4 premultiplied = vec4(shaded_color.rgb * alpha, alpha);
transparentAccum = calculate_transparent_accum(premultiplied);
}
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_revealage_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_revealage_frag.glsl
index da87fe8f542..c591425b950 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_revealage_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_revealage_frag.glsl
@@ -1,7 +1,7 @@
layout(location=0) out float transparentRevealage;
-
+uniform float alpha = 0.5;
void main()
{
- transparentRevealage = 0.5;
+ transparentRevealage = alpha;
}