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>2019-01-29 05:46:57 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-01-29 17:07:53 +0300
commit8134f3f0a6bb0ca7bb6c002a7ce0b4c91342a6d1 (patch)
tree102aea79c5df30823086ab8375f364a574f1fe14 /source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
parentbc99f4903c5f55d35b5fec32d6e18400f25089fb (diff)
Workbench: Add "Shadow" factor to Xray
This just maintain more parity accross the 2 visuals. Note that this is not "real shadowing" just the facing factor shadowing.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl11
1 files changed, 11 insertions, 0 deletions
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 93da32dd765..b3642b7beb3 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
@@ -14,6 +14,11 @@ uniform vec3 materialDiffuseColor;
uniform vec3 materialSpecularColor;
uniform float materialRoughness;
+uniform float shadowMultiplier = 0.5;
+uniform float lightMultiplier = 1.0;
+uniform float shadowShift = 0.1;
+uniform float shadowFocus = 1.0;
+
#ifdef NORMAL_VIEWPORT_PASS_ENABLED
in vec3 normal_viewport;
#endif /* NORMAL_VIEWPORT_PASS_ENABLED */
@@ -67,6 +72,12 @@ void main()
nor, I_vs);
#endif
+#ifdef V3D_SHADING_SHADOW
+ float light_factor = -dot(nor, world_data.shadow_direction_vs.xyz);
+ float shadow_mix = smoothstep(shadowFocus, shadowShift, light_factor);
+ shaded_color *= mix(lightMultiplier, shadowMultiplier, shadow_mix);
+#endif
+
/* Based on :
* McGuire and Bavoil, Weighted Blended Order-Independent Transparency, Journal of
* Computer Graphics Techniques (JCGT), vol. 2, no. 2, 122–141, 2013