diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-01-29 05:46:57 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-01-29 17:07:53 +0300 |
commit | 8134f3f0a6bb0ca7bb6c002a7ce0b4c91342a6d1 (patch) | |
tree | 102aea79c5df30823086ab8375f364a574f1fe14 /source/blender/draw/engines/workbench/shaders | |
parent | bc99f4903c5f55d35b5fec32d6e18400f25089fb (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')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl | 11 |
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 |