Merge pull request #51416 from clayjohn/GLES-horizon-occlusion
[3.x] Add horizon specular occlusion
This commit is contained in:
commit
dad5d09d1b
2 changed files with 4 additions and 0 deletions
|
@ -1693,6 +1693,8 @@ FRAGMENT_SHADER_CODE
|
||||||
ref_vec.z *= -1.0;
|
ref_vec.z *= -1.0;
|
||||||
|
|
||||||
specular_light = textureCubeLod(radiance_map, ref_vec, roughness * RADIANCE_MAX_LOD).xyz * bg_energy;
|
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
|
#ifndef USE_LIGHTMAP
|
||||||
{
|
{
|
||||||
vec3 ambient_dir = normalize((radiance_inverse_xform * vec4(normal, 0.0)).xyz);
|
vec3 ambient_dir = normalize((radiance_inverse_xform * vec4(normal, 0.0)).xyz);
|
||||||
|
|
|
@ -1887,6 +1887,8 @@ FRAGMENT_SHADER_CODE
|
||||||
ref_vec = normalize((radiance_inverse_xform * vec4(ref_vec, 0.0)).xyz);
|
ref_vec = normalize((radiance_inverse_xform * vec4(ref_vec, 0.0)).xyz);
|
||||||
vec3 radiance = textureDualParaboloid(radiance_map, ref_vec, roughness) * bg_energy;
|
vec3 radiance = textureDualParaboloid(radiance_map, ref_vec, roughness) * bg_energy;
|
||||||
env_reflection_light = radiance;
|
env_reflection_light = radiance;
|
||||||
|
float horizon = min(1.0 + dot(ref_vec, normal), 1.0);
|
||||||
|
env_reflection_light *= horizon * horizon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef USE_LIGHTMAP
|
#ifndef USE_LIGHTMAP
|
||||||
|
|
Loading…
Reference in a new issue