瀏覽代碼

Fixed bug in Phong shader when using normal maps with derivative tangents

WestLangley 12 年之前
父節點
當前提交
c83f08f618
共有 2 個文件被更改,包括 12 次插入2 次删除
  1. 11 1
      examples/webgl_materials_normalmap.html
  2. 1 1
      src/renderers/WebGLShaders.js

+ 11 - 1
examples/webgl_materials_normalmap.html

@@ -190,7 +190,17 @@
 				var parameters = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: uniforms, lights: true, fog: false };
 				var material1 = new THREE.ShaderMaterial( parameters );
 
-				var material2 = new THREE.MeshPhongMaterial( { color: diffuse, specular: specular, ambient: ambient, shininess: shininess, envMap: reflectionCube, combine: THREE.MixOperation, reflectivity: 0.1 } );
+				var material2 = new THREE.MeshPhongMaterial( {
+					color: diffuse,
+					specular: specular,
+					ambient: ambient,
+					shininess: shininess,
+					normalMap: uniforms[ "tNormal" ].value,
+					normalScale: uniforms[ "uNormalScale" ].value,
+					envMap: reflectionCube,
+					combine: THREE.MixOperation,
+					reflectivity: 0.1
+				} );
 
 				//
 

+ 1 - 1
src/renderers/WebGLShaders.js

@@ -863,7 +863,7 @@ THREE.ShaderChunk = {
 
 		"#ifdef USE_NORMALMAP",
 
-			"normal = perturbNormal2Arb( -viewPosition, normal );",
+			"normal = perturbNormal2Arb( -vViewPosition, normal );",
 
 		"#elif defined( USE_BUMPMAP )",