This is used internally by DirectionalLights for calculating shadows.

Unlike the other shadow classes, this uses an OrthographicCamera to calculate the shadows, rather than a PerspectiveCamera. This is because light rays from a DirectionalLight are parallel.


//Create a WebGLRenderer and turn on shadows in the renderer var renderer = new v3d.WebGLRenderer(); renderer.shadowMap.enabled = true; renderer.shadowMap.type = v3d.PCFSoftShadowMap; // default v3d.PCFShadowMap //Create a DirectionalLight and turn on shadows for the light var light = new v3d.DirectionalLight(0xffffff, 1, 100); light.position.set(0, 1, 0); //default; light shining from top light.castShadow = true; // default false scene.add(light); //Set up shadow properties for the light light.shadow.mapSize.width = 512; // default light.shadow.mapSize.height = 512; // default = 0.5; // default = 500; // default //Create a sphere that cast shadows (but does not receive them) var sphereGeometry = new v3d.SphereBufferGeometry(5, 32, 32); var sphereMaterial = new v3d.MeshStandardMaterial({ color: 0xff0000 }); var sphere = new v3d.Mesh(sphereGeometry, sphereMaterial); sphere.castShadow = true; //default is false sphere.receiveShadow = false; //default scene.add(sphere); //Create a plane that receives shadows (but does not cast them) var planeGeometry = new v3d.PlaneBufferGeometry(20, 20, 32, 32); var planeMaterial = new v3d.MeshStandardMaterial({ color: 0x00ff00 }) var plane = new v3d.Mesh(planeGeometry, planeMaterial); plane.receiveShadow = true; scene.add(plane); //Create a helper for the shadow camera (optional) var helper = new v3d.CameraHelper(; scene.add(helper);



Creates a new DirectionalLightShadow. This is not intended to be called directly - it is called internally by DirectionalLight.


See the base LightShadow class for common properties.

.camera : Camera

The light's view of the world. This is used to generate a depth map of the scene; objects behind other objects from the light's perspective will be in shadow.

The default is an OrthographicCamera with left and bottom set to -5, right and top set to 5, the near clipping plane at 0.5 and the far clipping plane at 500.


See the base LightShadow class for common methods.


For more info on how to obtain the source code of this module see this page.