diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl index 9d7a9aa16b..68566a0b61 100644 --- a/drivers/gles2/shaders/scene.glsl +++ b/drivers/gles2/shaders/scene.glsl @@ -1688,12 +1688,12 @@ FRAGMENT_SHADER_CODE #ifdef USE_RADIANCE_MAP vec3 ref_vec = reflect(-eye_position, N); + float horizon = min(1.0 + dot(ref_vec, normal), 1.0); ref_vec = normalize((radiance_inverse_xform * vec4(ref_vec, 0.0)).xyz); ref_vec.z *= -1.0; specular_light = textureCubeLod(radiance_map, ref_vec, roughness * RADIANCE_MAX_LOD).xyz * bg_energy; - float horizon = min(1.0 + dot(ref_vec, normal), 1.0); specular_light *= horizon * horizon; #ifndef USE_LIGHTMAP { diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index 373f1dabc7..607a31b185 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -1884,10 +1884,10 @@ FRAGMENT_SHADER_CODE { //read radiance from dual paraboloid vec3 ref_vec = reflect(-eye_vec, normal); + float horizon = min(1.0 + dot(ref_vec, normal), 1.0); ref_vec = normalize((radiance_inverse_xform * vec4(ref_vec, 0.0)).xyz); vec3 radiance = textureDualParaboloid(radiance_map, ref_vec, roughness) * bg_energy; env_reflection_light = radiance; - float horizon = min(1.0 + dot(ref_vec, normal), 1.0); env_reflection_light *= horizon * horizon; } }