[Bf-blender-cvs] [81531d452c5] master: Fix T58694 Eevee: Wrong result when using normal map and face is flipped

Clément Foucault noreply at git.blender.org
Thu Mar 14 16:53:08 CET 2019


Commit: 81531d452c54b8dd87c8d45cd5b431372f908274
Author: Clément Foucault
Date:   Wed Mar 13 23:42:38 2019 +0100
Branches: master
https://developer.blender.org/rB81531d452c54b8dd87c8d45cd5b431372f908274

Fix T58694 Eevee: Wrong result when using normal map and face is flipped

===================================================================

M	source/blender/gpu/shaders/gpu_shader_material.glsl

===================================================================

diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 5625cbb69c7..b4f88b3a7bc 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -2971,9 +2971,9 @@ void node_normal_map(vec4 tangent, vec3 normal, vec3 texnormal, out vec3 outnorm
 		outnormal = normal;
 		return;
 	}
-
-	tangent.xyz = normalize(tangent.xyz);
-	vec3 B = tangent.w * cross(normal, tangent.xyz);
+	float fsign = (gl_FrontFacing ? 1.0 : -1.0);
+	tangent.xyz = normalize(tangent.xyz) * fsign;
+	vec3 B = tangent.w * cross(normal, tangent.xyz) * fsign;
 
 	outnormal = texnormal.x * tangent.xyz + texnormal.y * B + texnormal.z * normal;
 	outnormal = normalize(outnormal);



More information about the Bf-blender-cvs mailing list