diff --git a/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js b/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js index 1dc9bf56744ad7..0c1e1301561c9f 100644 --- a/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +++ b/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js @@ -53,11 +53,5 @@ transformedNormal = normalMatrix * transformedNormal; transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - - transformedTangent = - transformedTangent; - - #endif - #endif `; diff --git a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js index 6d661270f036ae..fbe698922ba8fc 100644 --- a/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js @@ -39,7 +39,7 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + #ifdef DOUBLE_SIDED tbn[0] *= faceDirection; tbn[1] *= faceDirection; @@ -60,7 +60,7 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + #ifdef DOUBLE_SIDED tbn2[0] *= faceDirection; tbn2[1] *= faceDirection; diff --git a/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js b/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js index 4b93b94eedb9dc..34bafed06db3d8 100644 --- a/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +++ b/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js @@ -8,6 +8,12 @@ export default /* glsl */` vTangent = normalize( transformedTangent ); vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #ifdef FLIP_SIDED + + vBitangent = - vBitangent; + + #endif + #endif #endif