소스 검색

Fix perturbNormal2Arb() bug

WestLangley 7 년 전
부모
커밋
fd359bf062
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl

+ 3 - 2
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;