Browse Source

WebGLShadowMap: Fixed getDepthMaterial code.

Mr.doob 10 years ago
parent
commit
e168fdabb6
1 changed files with 13 additions and 14 deletions
  1. 13 14
      src/renderers/webgl/WebGLShadowMap.js

+ 13 - 14
src/renderers/webgl/WebGLShadowMap.js

@@ -218,7 +218,7 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) {
 
 						if ( material.visible ) {
 
-							_renderer.renderBufferDirect( shadowCamera, _lights, null, geometry, getDepthMaterial( material ), object );
+							_renderer.renderBufferDirect( shadowCamera, _lights, null, geometry, getDepthMaterial( object, material ), object );
 
 						}
 
@@ -226,7 +226,7 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) {
 
 				} else {
 
-					_renderer.renderBufferDirect( shadowCamera, _lights, null, geometry, getDepthMaterial( material ), object );
+					_renderer.renderBufferDirect( shadowCamera, _lights, null, geometry, getDepthMaterial( object, material ), object );
 
 				}
 
@@ -254,37 +254,36 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) {
 
 	};
 
-	function getDepthMaterial( object ) {
+	function getDepthMaterial( object, material ) {
 
-		var material;
+		var geometry = object.geometry;
 
-		var objectGeometry = object.geometry;
-		var objectMaterial = object.material;
+		var useMorphing = geometry.morphTargets !== undefined && geometry.morphTargets.length > 0 && material.morphTargets;
+		var useSkinning = object instanceof THREE.SkinnedMesh && material.skinning;
 
-		var useMorphing = objectGeometry.morphTargets !== undefined && objectGeometry.morphTargets.length > 0 && objectMaterial.morphTargets;
-		var useSkinning = object instanceof THREE.SkinnedMesh && objectMaterial.skinning;
+		var depthMaterial;
 
 		if ( object.customDepthMaterial ) {
 
-			material = object.customDepthMaterial;
+			depthMaterial = object.customDepthMaterial;
 
 		} else if ( useSkinning ) {
 
-			material = useMorphing ? _depthMaterialMorphSkin : _depthMaterialSkin;
+			depthMaterial = useMorphing ? _depthMaterialMorphSkin : _depthMaterialSkin;
 
 		} else if ( useMorphing ) {
 
-			material = _depthMaterialMorph;
+			depthMaterial = _depthMaterialMorph;
 
 		} else {
 
-			material = _depthMaterial;
+			depthMaterial = _depthMaterial;
 
 		}
 
-		material.wireframe = objectMaterial.wireframe;
+		depthMaterial.wireframe = material.wireframe;
 
-		return material;
+		return depthMaterial;
 
 	}