DirectionalLightShadow class

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.

final light = DirectionalLight(Color.fromHex32(0xffffff), 1 );
light.position.setValues( 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
light.shadow.camera.near = 0.5; // default
light.shadow.camera.far = 500; // default

//Create a sphere that cast shadows (but does not receive them)
final sphereGeometry = SphereGeometry( 5, 32, 32 );
final sphereMaterial = MeshStandardMaterial({MaterialProperty.color: 0xff0000});
final sphere = 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)
final planeGeometry = PlaneGeometry( 20, 20, 32, 32 );
final planeMaterial = MeshStandardMaterial({MaterialProperty.color: 0x00ff00});
final plane = Mesh( planeGeometry, planeMaterial );
plane.receiveShadow = true;
scene.add( plane );

//Create a helper for the shadow camera (optional)
final helper = CameraHelper( light.shadow.camera );
scene.add( helper );
Inheritance

Constructors

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

Properties

autoUpdate bool
getter/setter pairinherited
bias double
getter/setter pairinherited
blurSamples double
getter/setter pairinherited
camera Camera?
getter/setter pairinherited
focus double
getter/setter pairinherited
frameExtents → Vector2
finalinherited
frustum Frustum
finalinherited
hashCode int
The hash code for this object.
no setterinherited
isDirectionalLightShadow bool
getter/setter pair
lightPositionWorld → Vector3
finalinherited
lookTarget → Vector3
finalinherited
map RenderTarget?
getter/setter pairinherited
mapPass RenderTarget?
getter/setter pairinherited
mapSize ↔ Vector2
getter/setter pairinherited
matrix ↔ Matrix4
getter/setter pairinherited
needsUpdate bool
getter/setter pairinherited
normalBias double
getter/setter pairinherited
projScreenMatrix → Matrix4
finalinherited
radius double
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
viewportCount int
getter/setter pairinherited
viewports List<Vector4>
finalinherited

Methods

clone() LightShadow
Creates a new LightShadow with the same properties as this one.
inherited
copy(LightShadow source) LightShadow
Copies value of all the properties from the source to this Light.
inherited
dispose() → void
Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.
inherited
getFrameExtents() → Vector2
Used internally by the renderer to extend the shadow map to contain all viewports
inherited
getFrustum() Frustum
Gets the shadow cameras frustum. Used internally by the renderer to cull objects.
inherited
getViewport(int viewportIndex) → Vector4
inherited
getViewportCount() int
Used internally by the renderer to get the number of viewports that need to be rendered for this shadow.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
Serialize this LightShadow.
inherited
toString() String
A string representation of this object.
inherited
updateMatrices(Light light, {int viewportIndex = 0}) → void
Update the matrices for the camera and shadow, used internally by the renderer.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited