Browse Source

Revert "WebGLShadowMap: Removed skinning reference. See #10754."

This reverts commit c3264669ed973166346a58a0aff6ee543cd4e220.
Takahiro 8 years ago
parent
commit
0d670cb500
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/renderers/webgl/WebGLShadowMap.js

+ 8 - 1
src/renderers/webgl/WebGLShadowMap.js

@@ -31,8 +31,9 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 	_lightPositionWorld = new Vector3(),
 
 	_MorphingFlag = 1,
+	_SkinningFlag = 2,
 
-	_NumberOfMaterialVariants = ( _MorphingFlag ) + 1,
+	_NumberOfMaterialVariants = ( _MorphingFlag | _SkinningFlag ) + 1,
 
 	_depthMaterials = new Array( _NumberOfMaterialVariants ),
 	_distanceMaterials = new Array( _NumberOfMaterialVariants ),
@@ -66,9 +67,11 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 	for ( var i = 0; i !== _NumberOfMaterialVariants; ++ i ) {
 
 		var useMorphing = ( i & _MorphingFlag ) !== 0;
+		var useSkinning = ( i & _SkinningFlag ) !== 0;
 
 		var depthMaterial = depthMaterialTemplate.clone();
 		depthMaterial.morphTargets = useMorphing;
+		depthMaterial.skinning = useSkinning;
 
 		_depthMaterials[ i ] = depthMaterial;
 
@@ -80,6 +83,7 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 			vertexShader: distanceShader.vertexShader,
 			fragmentShader: distanceShader.fragmentShader,
 			morphTargets: useMorphing,
+			skinning: useSkinning,
 			clipping: true
 		} );
 
@@ -305,9 +309,12 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
 
 			}
 
+			var useSkinning = object.isSkinnedMesh;
+
 			var variantIndex = 0;
 
 			if ( useMorphing ) variantIndex |= _MorphingFlag;
+			if ( useSkinning ) variantIndex |= _SkinningFlag;
 
 			result = materialVariants[ variantIndex ];