From fd359bf062d734c7003cc4b317ec98254cd52e9b Mon Sep 17 00:00:00 2001 From: WestLangley Date: Wed, 28 Mar 2018 13:40:49 -0400 Subject: [PATCH] Fix perturbNormal2Arb() bug --- .../shaders/ShaderChunk/normalmap_pars_fragment.glsl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl b/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl index 5778eb3d8458e2..217f9bd0f74920 100644 --- a/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl +++ b/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl @@ -15,8 +15,9 @@ vec2 st0 = dFdx( vUv.st ); vec2 st1 = dFdy( vUv.st ); - vec3 S = normalize( q0 * st1.t - q1 * st0.t ); - vec3 T = normalize( -q0 * st1.s + q1 * st0.s ); + float scale = sign( st1.t * st0.s - st0.t * st1.s ); // we do not care about the magnitude + vec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale ); + vec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale ); vec3 N = normalize( surf_norm ); vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;