Răsfoiți Sursa

Simplified bumpmap shader for deferred normal pass.

alteredq 12 ani în urmă
părinte
comite
3be2c266f3

+ 1 - 36
examples/js/ShaderDeferred.js

@@ -110,42 +110,7 @@ THREE.ShaderDeferred = {
 			"varying vec2 vUv;",
 			"varying vec3 vViewPosition;",
 
-			"uniform sampler2D bumpMap;",
-			"uniform float bumpScale;",
-
-			// Derivative maps - bump mapping unparametrized surfaces by Morten Mikkelsen
-			//	http://mmikkelsen3d.blogspot.sk/2011/07/derivative-maps.html
-
-			// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)
-
-			"vec2 dHdxy_fwd() {",
-
-				"vec2 dSTdx = dFdx( vUv );",
-				"vec2 dSTdy = dFdy( vUv );",
-
-				"float Hll = bumpScale * texture2D( bumpMap, vUv ).x;",
-				"float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;",
-				"float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;",
-
-				"return vec2( dBx, dBy );",
-
-			"}",
-
-			"vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {",
-
-				"vec3 vSigmaX = dFdx( surf_pos );",
-				"vec3 vSigmaY = dFdy( surf_pos );",
-				"vec3 vN = surf_norm;",		// normalized
-
-				"vec3 R1 = cross( vSigmaY, vN );",
-				"vec3 R2 = cross( vN, vSigmaX );",
-
-				"float fDet = dot( vSigmaX, R1 );",
-
-				"vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );",
-				"return normalize( abs( fDet ) * surf_norm - vGrad );",
-
-			"}",
+			THREE.ShaderChunk[ "bumpmap_pars_fragment" ],
 
 			"void main() {",
 

+ 2 - 1
examples/webgl_lights_deferred_morphs.html

@@ -388,7 +388,8 @@
 
 								uniforms: 		uniforms,
 								vertexShader: 	bumpShader.vertexShader,
-								fragmentShader: bumpShader.fragmentShader
+								fragmentShader: bumpShader.fragmentShader,
+								defines:		{ "USE_BUMPMAP": true }
 
 							} );
 

+ 2 - 1
examples/webgl_lights_deferred_pointlights.html

@@ -378,7 +378,8 @@
 
 								uniforms: 		uniforms,
 								vertexShader: 	bumpShader.vertexShader,
-								fragmentShader: bumpShader.fragmentShader
+								fragmentShader: bumpShader.fragmentShader,
+								defines:		{ "USE_BUMPMAP": true }
 
 							} );
 							uniforms.bumpMap.value = node.material.bumpMap;