Eevee: Fix tangent being renormalized after interpolation
authorClément Foucault <foucault.clem@gmail.com>
Fri, 15 Mar 2019 21:24:46 +0000 (22:24 +0100)
committerClément Foucault <foucault.clem@gmail.com>
Fri, 15 Mar 2019 21:33:02 +0000 (22:33 +0100)
source/blender/gpu/shaders/gpu_shader_material.glsl

index b4f88b3..377795b 100644 (file)
@@ -2971,9 +2971,8 @@ void node_normal_map(vec4 tangent, vec3 normal, vec3 texnormal, out vec3 outnorm
                outnormal = normal;
                return;
        }
-       float fsign = (gl_FrontFacing ? 1.0 : -1.0);
-       tangent.xyz = normalize(tangent.xyz) * fsign;
-       vec3 B = tangent.w * cross(normal, tangent.xyz) * fsign;
+       tangent *= (gl_FrontFacing ? 1.0 : -1.0);
+       vec3 B = tangent.w * cross(normal, tangent.xyz);
 
        outnormal = texnormal.x * tangent.xyz + texnormal.y * B + texnormal.z * normal;
        outnormal = normalize(outnormal);