瀏覽代碼

Merge pull request #10845 from takahirox/FixSkinningShadow

Fix shadow
Mr.doob 8 年之前
父節點
當前提交
686e241d1d
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      src/renderers/webgl/WebGLShadowMap.js

+ 6 - 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,6 +67,7 @@ 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;
@@ -305,9 +307,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 ];