I have a scatter of 500 cubes and 3 spot lights pointing at the YZ, ZX and XY planes. The shadows seem fine for the other planes but are getting cut on one side of the frustrum for the XZ plane.
this.lightZX = new THREE.SpotLight(0xFFFFFF, 100);
this.lightZX.position.set(100, 2000, 100);
this.lightZX.target.position.set(100, 0, 100);
this.scene.add(this.lightZX);
this.scene.add(this.lightZX.target);
this.lightZX.castShadow = true;
this.lightZX.angle = Math.PI / 45;
this.lightZX.penumbra = 1;
this.lightZX.shadow.mapSize.width = this.shadowMapSize;
this.lightZX.shadow.mapSize.height = this.shadowMapSize;
this.lightZX.decay = 0.5;
this.lightZX.shadow.camera.near = 1800;
this.lightZX.shadow.camera.far = 2000;
Some of the camera helper line segments are visible.
I have similar code for lightXY and lightYZ with position and target changed
I had the same issue with a directional light with position (100,200,100) and -100, 100 for the top/botton. Changing the position to (0,200,0) with -200, 0 for the top bottom fixed the issue. All the meshes started projecting shadows.