[Bf-blender-cvs] [2445d5abc26] master: Fix T63393 Eevee: Specular Shader's Clear Coat does not function
Clément Foucault
noreply at git.blender.org
Tue Apr 30 14:07:25 CEST 2019
Commit: 2445d5abc269123cb0789cc16a5710c6577e9d20
Author: Clément Foucault
Date: Tue Apr 30 14:07:16 2019 +0200
Branches: master
https://developer.blender.org/rB2445d5abc269123cb0789cc16a5710c6577e9d20
Fix T63393 Eevee: Specular Shader's Clear Coat does not function
===================================================================
M source/blender/draw/engines/eevee/eevee_materials.c
M source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
M source/blender/gpu/shaders/gpu_shader_material.glsl
===================================================================
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index ecfb601d00a..ae145546856 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -591,6 +591,7 @@ void EEVEE_materials_init(EEVEE_ViewLayerData *sldata,
datatoc_lit_surface_frag_glsl,
datatoc_lit_surface_frag_glsl,
datatoc_lit_surface_frag_glsl,
+ datatoc_lit_surface_frag_glsl,
datatoc_volumetric_lib_glsl);
e_data.volume_shader_lib = BLI_string_joinN(datatoc_common_view_lib_glsl,
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 7dba3738c12..c8b57c5dec2 100644
--- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
@@ -44,6 +44,14 @@ uniform int hairThicknessRes = 1;
#define CLOSURE_GLOSSY
#endif /* SURFACE_DEFAULT */
+#if !defined(SURFACE_DEFAULT_CLEARCOAT) && !defined(CLOSURE_NAME)
+#define SURFACE_DEFAULT_CLEARCOAT
+#define CLOSURE_NAME eevee_closure_default_clearcoat
+#define CLOSURE_DIFFUSE
+#define CLOSURE_GLOSSY
+#define CLOSURE_CLEARCOAT
+#endif /* SURFACE_DEFAULT_CLEARCOAT */
+
#if !defined(SURFACE_PRINCIPLED) && !defined(CLOSURE_NAME)
#define SURFACE_PRINCIPLED
#define CLOSURE_NAME eevee_closure_principled
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 36c4138cefd..c64623eeaf7 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -3428,15 +3428,18 @@ void node_eevee_specular(vec4 diffuse,
out Closure result)
{
vec3 out_diff, out_spec, ssr_spec;
- eevee_closure_default(normal,
- diffuse.rgb,
- specular.rgb,
- int(ssr_id),
- roughness,
- occlusion,
- out_diff,
- out_spec,
- ssr_spec);
+ eevee_closure_default_clearcoat(normal,
+ diffuse.rgb,
+ specular.rgb,
+ int(ssr_id),
+ roughness,
+ clearcoat_normal,
+ clearcoat * 0.25,
+ clearcoat_roughness,
+ occlusion,
+ out_diff,
+ out_spec,
+ ssr_spec);
vec3 vN = normalize(mat3(ViewMatrix) * normal);
result = CLOSURE_DEFAULT;
More information about the Bf-blender-cvs
mailing list