diff --git a/src/renderers/webgl/WebGLShadowMap.js b/src/renderers/webgl/WebGLShadowMap.js index 15e256168df213334b937d181f910d847753c918..07d508273700449d314675b5ca00ac08798210f3 100644 --- a/src/renderers/webgl/WebGLShadowMap.js +++ b/src/renderers/webgl/WebGLShadowMap.js @@ -312,15 +312,19 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) { if ( ! customMaterial ) { - var useMorphing, morphTargets; + var useMorphing = false; if ( material.morphTargets ) { - if ( geometry instanceof THREE.Geometry ) morphTargets = geometry.morphTargets; + if ( geometry instanceof THREE.BufferGeometry ) { - if ( geometry instanceof THREE.BufferGeometry && geometry.morphAttributes !== undefined ) morphTargets = geometry.morphAttributes.position; + useMorphing = geometry.morphAttributes && geometry.morphAttributes.position && geometry.morphAttributes.position.length > 0; - if ( morphTargets !== undefined && morphTargets.length > 0 ) useMorphing = true; + } else if ( geometry instanceof THREE.Geometry ) { + + useMorphing = geometry.morphTargets && geometry.morphTargets.length > 0; + + } }