From ae78413bb1a8375ddd376ad450ed2517c4077789 Mon Sep 17 00:00:00 2001 From: Ferenc Arn Date: Tue, 26 Sep 2017 22:15:38 -0400 Subject: [PATCH] Avoid pow in Burley diffuse. --- drivers/gles3/shaders/scene.glsl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index 25115bc18a1..7692a0932a3 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -941,12 +941,12 @@ LIGHT_SHADER_CODE vec3 H = normalize(V + L); float NoL = max(0.0,dot(N, L)); - float VoH = max(0.0,dot(L, H)); + float LoH = max(0.0,dot(L, H)); float NoV = max(0.0,dot(N, V)); - float FD90 = 0.5 + 2.0 * VoH * VoH * roughness; - float FdV = 1.0 + (FD90 - 1.0) * pow( 1.0 - NoV, 5.0 ); - float FdL = 1.0 + (FD90 - 1.0) * pow( 1.0 - NoL, 5.0 ); + float FD90 = 0.5 + 2.0 * LoH * LoH * roughness; + float FdV = 1.0 + (FD90 - 1.0) * SchlickFresnel(NoV); + float FdL = 1.0 + (FD90 - 1.0) * SchlickFresnel(NoL); light_amount = ( (1.0 / M_PI) * FdV * FdL ); /* float energyBias = mix(roughness, 0.0, 0.5);