Browse Source

WebGLProgram: Only use MorphNormals when shading is SmoothShading.

Mr.doob 10 years ago
parent
commit
6c786c7545
2 changed files with 2 additions and 2 deletions
  1. 1 1
      examples/webgl_morphnormals.html
  2. 1 1
      src/renderers/webgl/WebGLProgram.js

+ 1 - 1
examples/webgl_morphnormals.html

@@ -93,7 +93,7 @@
 					morphColorsToFaceColors( geometry );
 					geometry.computeMorphNormals();
 
-					var material = new THREE.MeshLambertMaterial( { color: 0xffffff, morphTargets: true, morphNormals: true, vertexColors: THREE.FaceColors, shading: THREE.FlatShading } );
+					var material = new THREE.MeshPhongMaterial( { color: 0xffffff, morphTargets: true, morphNormals: true, vertexColors: THREE.FaceColors, shading: THREE.FlatShading } );
 					var meshAnim = new THREE.MorphAnimMesh( geometry, material );
 
 					meshAnim.duration = 5000;

+ 1 - 1
src/renderers/webgl/WebGLProgram.js

@@ -211,7 +211,7 @@ THREE.WebGLProgram = ( function () {
 				parameters.useVertexTexture ? '#define BONE_TEXTURE' : '',
 
 				parameters.morphTargets ? '#define USE_MORPHTARGETS' : '',
-				parameters.morphNormals ? '#define USE_MORPHNORMALS' : '',
+				parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',
 				parameters.doubleSided ? '#define DOUBLE_SIDED' : '',
 				parameters.flipSided ? '#define FLIP_SIDED' : '',