summaryrefslogtreecommitdiff
path: root/drivers/gles3/shaders
diff options
context:
space:
mode:
authorclayjohn <claynjohn@gmail.com>2022-06-29 23:36:18 -0700
committerclayjohn <claynjohn@gmail.com>2022-06-29 23:36:18 -0700
commit93c82ab4b91b2f5f5033d4fab32897d64411fa2c (patch)
tree875d54edb3b10099dcc8dfefad9f759c0e00d2df /drivers/gles3/shaders
parentce6c4ab86a8b8b2f381f91dd8f91f36e37f4f799 (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.glsl1
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;