diff options
author | clayjohn <claynjohn@gmail.com> | 2022-06-29 23:36:18 -0700 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2022-06-29 23:36:18 -0700 |
commit | 93c82ab4b91b2f5f5033d4fab32897d64411fa2c (patch) | |
tree | 875d54edb3b10099dcc8dfefad9f759c0e00d2df /drivers/gles3/shaders | |
parent | ce6c4ab86a8b8b2f381f91dd8f91f36e37f4f799 (diff) |
Evaluate specular reflections using specular dominant direction instead of assuming mirror reflections
Diffstat (limited to 'drivers/gles3/shaders')
-rw-r--r-- | drivers/gles3/shaders/scene.glsl | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index 4f2be8bf60..b3e883b566 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -1049,6 +1049,7 @@ void main() { #else vec3 ref_vec = reflect(-view, normal); #endif + ref_vec = mix(ref_vec, normal, roughness * roughness); float horizon = min(1.0 + dot(ref_vec, normal), 1.0); ref_vec = scene_data.radiance_inverse_xform * ref_vec; specular_light = textureLod(radiance_map, ref_vec, roughness * RADIANCE_MAX_LOD).rgb; |