LightShadow

PointLightShadow

This is used internally by PointLights for calculating shadows.

Point light shadows require up to 6 times more draw calls compared to directional or spot light shadows. They also consume more GPU memory. So you better use them only if it's absolutely necessary.

Code Example

// create a WebGLRenderer and turn on shadows in the renderer const renderer = new v3d.WebGLRenderer(); renderer.shadowMap.enabled = true; renderer.shadowMap.type = v3d.PCFShadowMap; // default // create a PointLight and turn on shadows for the light const light = new v3d.PointLight(0xffffff, 1, 100); light.position.set(0, 10, 4); light.castShadow = true; // default false app.scene.add(light); // set up shadow properties for the light light.shadow.mapSize.width = 512; // default light.shadow.mapSize.height = 512; // default light.shadow.camera.near = 0.5; // default light.shadow.camera.far = 500; // default // create a sphere that cast shadows (but does not receive them) const sphereGeometry = new v3d.SphereGeometry(5, 32, 32); const sphereMaterial = new v3d.MeshStandardMaterial({ color: 0xff0000 }); const sphere = new v3d.Mesh(sphereGeometry, sphereMaterial); sphere.castShadow = true; //default is false sphere.receiveShadow = false; //default app.scene.add(sphere); // create a plane that receives shadows (but does not cast them) const planeGeometry = new v3d.PlaneGeometry(20, 20, 32, 32); const planeMaterial = new v3d.MeshStandardMaterial({ color: 0x00ff00 }) const plane = new v3d.Mesh(planeGeometry, planeMaterial); plane.receiveShadow = true; app.scene.add(plane); // create a helper for the shadow camera (optional) const helper = new v3d.CameraHelper(light.shadow.camera); app.scene.add(helper);

Constructor

PointLightShadow()

Creates a new PointLightShadow. This is not intended to be called directly — it is called internally by PointLight.

Properties

See the base LightShadow class for common properties.

.isPointLightShadow : Boolean

Read-only flag to check if a given object is of type PointLightShadow.

Methods

See the base LightShadow class for common methods.

.updateMatrices(light : Light, viewportIndex : Integer)

Update the matrices for the camera and shadow, used internally by the renderer.

light
The light for which the shadow is being rendered.
viewportIndex
Calculates the matrix for this viewport.

Puzzles

The set shadow param puzzle allows to enable/disable casting or receiving shadows in a visual manner.

Source

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