diff options
Diffstat (limited to 'source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl')
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl index 5ea22f3e0b4..36675cf720d 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl @@ -1,10 +1,18 @@ #ifndef VOLUMETRICS -void node_bsdf_glossy(vec4 color, float roughness, vec3 N, float ssr_id, out Closure result) +void node_bsdf_glossy( + vec4 color, float roughness, vec3 N, float use_multiscatter, float ssr_id, out Closure result) { N = normalize(N); vec3 out_spec, ssr_spec; - eevee_closure_glossy( - N, vec3(1.0), vec3(1.0), int(ssr_id), roughness, 1.0, true, out_spec, ssr_spec); + eevee_closure_glossy(N, + vec3(1.0), + use_multiscatter != 0.0 ? vec3(1.0) : vec3(-1.0), /* HACK */ + int(ssr_id), + roughness, + 1.0, + true, + out_spec, + ssr_spec); vec3 vN = mat3(ViewMatrix) * N; result = CLOSURE_DEFAULT; result.radiance = render_pass_glossy_mask(vec3(1.0), out_spec) * color.rgb; @@ -12,5 +20,5 @@ void node_bsdf_glossy(vec4 color, float roughness, vec3 N, float ssr_id, out Clo } #else /* Stub glossy because it is not compatible with volumetrics. */ -# define node_bsdf_glossy(a, b, c, d, e) (e = CLOSURE_DEFAULT) +# define node_bsdf_glossy(a, b, c, d, e, result) (result = CLOSURE_DEFAULT) #endif |