Pārlūkot izejas kodu

NodeMaterial: Fix perturbNormal2Arb bug.

Don McCurdy 7 gadi atpakaļ
vecāks
revīzija
961108bb5e
1 mainītis faili ar 4 papildinājumiem un 2 dzēšanām
  1. 4 2
      examples/js/nodes/NodeLib.js

+ 4 - 2
examples/js/nodes/NodeLib.js

@@ -141,8 +141,10 @@ THREE.NodeLib.add( new THREE.FunctionNode( [
 	"	vec3 q1 = dFdy( eye_pos );",
 	"	vec2 st0 = dFdx( mUv.st );",
 	"	vec2 st1 = dFdy( mUv.st );",
-	"	vec3 S = normalize( q0 * st1.t - q1 * st0.t );",
-	"	vec3 T = normalize( -q0 * st1.s + q1 * st0.s );",
+	"	float factor = sign( st1.t * st0.s - st0.t * st1.s );",
+	"	factor *= float( gl_FrontFacing ) * 2.0 - 1.0;",
+	"	vec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * factor );",
+	"	vec3 T = normalize( ( -q0 * st1.s + q1 * st0.s ) * factor );",
 	"	vec3 N = normalize( surf_norm );",
 	"	vec3 mapN = map * 2.0 - 1.0;",
 	"	mapN.xy = scale * mapN.xy;",