diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-10-07 00:43:36 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-10-07 00:44:22 +0300 |
commit | dfcdec914ce918adf6c47d3c1e278b5a5c22fb4d (patch) | |
tree | e134600202707818d4aa1f7e6887a0fcd1fe836d /source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl | |
parent | 9ab18d14f6f1cfe510a2b06ee477498502d1c887 (diff) |
Eevee: Shadows: Add Contact Shadows
This add the possibility to add screen space raytraced shadows to fix light leaking cause by shadows maps.
Theses inherit of the same artifacts as other screenspace methods.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl index 5f4a4c9f89f..f63a9665810 100644 --- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl @@ -66,7 +66,7 @@ vec3 eevee_surface_lit(vec3 N, vec3 albedo, vec3 f0, float roughness, float ao, l_vector.xyz = ld.l_position - worldPosition; l_vector.w = length(l_vector.xyz); - vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, l_vector); + vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, viewPosition, viewNormal, l_vector); #ifdef HAIR_SHADER vec3 norm_lamp, view_vec; @@ -224,7 +224,7 @@ vec3 eevee_surface_clearcoat_lit( l_vector.xyz = ld.l_position - worldPosition; l_vector.w = length(l_vector.xyz); - vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, l_vector); + vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, viewPosition, viewNormal, l_vector); #ifdef HAIR_SHADER vec3 norm_lamp, view_vec; @@ -388,7 +388,7 @@ vec3 eevee_surface_diffuse_lit(vec3 N, vec3 albedo, float ao) l_vector.xyz = ld.l_position - worldPosition; l_vector.w = length(l_vector.xyz); - vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, l_vector); + vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, viewPosition, viewNormal, l_vector); #ifdef HAIR_SHADER vec3 norm_lamp, view_vec; @@ -480,7 +480,7 @@ vec3 eevee_surface_glossy_lit(vec3 N, vec3 f0, float roughness, float ao, int ss l_vector.xyz = ld.l_position - worldPosition; l_vector.w = length(l_vector.xyz); - vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, l_vector); + vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, viewPosition, viewNormal, l_vector); #ifdef HAIR_SHADER vec3 norm_lamp, view_vec; @@ -681,7 +681,7 @@ vec3 eevee_surface_glass(vec3 N, vec3 transmission_col, float roughness, float i l_vector.xyz = ld.l_position - worldPosition; l_vector.w = length(l_vector.xyz); - vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, l_vector); + vec3 l_color_vis = ld.l_color * light_visibility(ld, worldPosition, viewPosition, viewNormal, l_vector); #ifdef HAIR_SHADER vec3 norm_lamp, view_vec; |