[name]

This is used internally by [page:PointLight PointLights] for calculating shadows, and also serves as a base class for the other shadow classes.

Example

//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 PointLight and turn on shadows for the light var light = new v3d.PointLight(0xffffff, 1, 100); light.position.set(0, 10, 0); 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 light.shadow.camera.near = 0.5; // default light.shadow.camera.far = 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(light.shadow.camera); scene.add(helper);

Constructor

[name]([param:Camera camera])

[page:Camera camera] - the light's view of the world.

Create a new [name]. This is not intended to be called directly - it is called internally by [page:PointLight] or used as a base class by other light shadows.

Properties

[property: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.

[property:Float bias]

Shadow map bias, how much to add or subtract from the normalized depth when deciding whether a surface is in shadow.
The default is 0. Very tiny adjustments here (in the order of 0.0001) may help reduce artefacts in shadows

[property:Float expBias]

Exponential bias for [page:Renderer ESMShadowMap] to reduce light leaking which can happen near an occluder.
The default is 1. Increasing it reduces light leaking but make shadows less soft and make self-shadowing artifacts a bit more noticeable.

[property:Boolean isLightShadow]

Used to check whether this or derived classes are light shadows. Default is *true*.

You should not change this, as it used internally for optimization.

[property:WebGLRenderTarget map]

The depth map generated using the internal camera; a location beyond a pixel's depth is in shadow. Computed internally during rendering.

[property:Vector2 mapSize]

A [Page:Vector2] defining the width and height of the shadow map.

Higher values give better quality shadows at the cost of computation time. Values must be powers of 2, up to the [page:WebGLRenderer.capabilities].maxTextureSize for a given device, although the width and height don't have to be the same (so, for example, (512, 1024) is valid). The default is *(512, 512)*.

[property:Matrix4 matrix]

Model to shadow camera space, to compute location and depth in shadow map. Stored in a [page:Matrix4 Matrix4]. This is computed internally during rendering.

[property:Float radius]

Setting this to values greater than 1 will blur the edges of the shadow.
High values will cause unwanted banding effects in the shadows - a greater [page:.mapSize mapSize] will allow for a higher value to be used here before these effects become visible.

Note that this has no effect if the [page:WebGLRenderer.shadowMap.type] is set to [page:Renderer BasicShadowMap].

[property:Number slopeScaledBias]

An adaptive bias which depends on the polygon's slope relative to the light's camera. Default is 0.

Used mainly for shadow mapping.

Methods

[method:LightShadow copy]([param:LightShadow source])

Copies value of all the properties from the [page:LightShadow source] to this SpotLight.

[method:LightShadow clone]()

Creates a new LightShadow with the same properties as this one.

[method:null dispose]()

Disposes shadow map render targets from memory.
You need to call this when you want shadow map resources removed while the application is running.

[method:Object toJSON]()

Serialize this LightShadow.

[sourceHint]