From ed5a7acbf41370755106656b08ee3da5bac30e2d Mon Sep 17 00:00:00 2001 From: XProger Date: Mon, 8 Jul 2019 01:59:17 +0300 Subject: [PATCH] fix fresnel effect --- src/shaders/water.glsl | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/shaders/water.glsl b/src/shaders/water.glsl index 2855221..9e83f1b 100644 --- a/src/shaders/water.glsl +++ b/src/shaders/water.glsl @@ -104,9 +104,8 @@ vec3 calcNormal(vec2 tc, float base) { #define PI 3.141592653589793 - float calcFresnel(float VoH, float f0) { - float f = pow(1.0 - VoH, 5.0); - return f + f0 * (1.0 - f); + float calcFresnel(float NdotV, float f0) { + return f0 + (1.0 - f0) * pow(1.0 - NdotV, 5.0); } #ifdef WATER_DROP @@ -234,7 +233,7 @@ vec3 calcNormal(vec2 tc, float base) { vec4 refr = vec4(mix(refrA.xyz, refrB.xyz, refrA.w), 1.0); vec4 refl = texture2D(sReflect, vec2(tc.x, 1.0 - tc.y) + dudv * uParam.w); - float fresnel = calcFresnel(max(0.0, dot(normal, viewVec)), 0.12); + float fresnel = calcFresnel(abs(dot(normal, viewVec)), 0.12); vec4 color = mix(refr, refl, fresnel); color.xyz += spec * 1.5;