SpotLight class Lighting and environment

A light that radiates from a world-space point within a cone, combining a PointLight's distance falloff with an angular falloff between an inner and outer cone.

Attach one by adding a SpotLightComponent to a node; the light's world position is the node's world translation and its aim is the node's world-space rotation applied to direction. The analytic contribution is layered on top of the image-based-lighting ambient term.

When castsShadow is true and the scene's spot-shadow budget has room, the renderer renders the spot's cone into a perspective shadow map and the light is occluded by geometry between it and the surface.

Constructors

SpotLight({Vector3? color, double intensity = 1.0, double range = 0.0, double falloffExponent = 2.0, Vector3? direction, double innerConeAngle = 0.0, double outerConeAngle = math.pi / 4.0, bool castsShadow = false, int shadowMapResolution = 1024, double shadowNear = 0.1, double shadowDepthBias = 0.0, double shadowNormalBias = 0.1, double shadowSoftness = 1.0, ShadowCasterFaces shadowCasterFaces = ShadowCasterFaces.front})
Creates a SpotLight.

Properties

castsShadow bool
Whether this spot casts a shadow. When true, the renderer renders the cone into a perspective shadow map if the scene's spot-shadow budget has room (shadow-casting spots are limited; the rest shade unshadowed).
getter/setter pair
color ↔ Vector3
Linear RGB color of the light.
getter/setter pair
direction ↔ Vector3
The cone's aim, in the owning node's local space. Need not be unit length. Rotated to world by the node's transform.
getter/setter pair
falloffExponent double
The distance-falloff exponent (see PointLight.falloffExponent).
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
innerConeAngle double
Half-angle of the inner cone, in radians. Within this angle of the axis the light is at full brightness.
getter/setter pair
intensity double
Scalar multiplier applied to color; the radiance at unit distance.
getter/setter pair
outerConeAngle double
Half-angle of the outer cone, in radians. Between innerConeAngle and this the light falls off to zero; past it the light contributes nothing.
getter/setter pair
range double
World-space distance at which the light's influence smoothly reaches zero. 0 means infinite range (pure inverse-square falloff).
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
shadowCasterFaces ShadowCasterFaces
Which faces are rendered into the shadow map. ShadowCasterFaces.back (second-depth) removes the shadow detaching from a solid caster's base (peter-panning) by recording the far side; ShadowCasterFaces.front is the general default.
getter/setter pair
shadowDepthBias double
Clip-space depth bias subtracted from the receiver before the shadow test. Defaults to 0: a constant clip-space bias is badly behaved in a perspective shadow (tiny near the light, large far away, which detaches the shadow from a caster's base), so the normal-offset bias below does the work instead. Raise it only to fight grazing-angle self-shadow acne.
getter/setter pair
shadowMapResolution int
Pixel resolution of this spot's (square) shadow map tile.
getter/setter pair
shadowNear double
Near clip distance of the shadow frustum. Geometry closer to the light than this does not occlude.
getter/setter pair
shadowNormalBias double
World-space offset along the surface normal applied to the receiver before the shadow lookup ("normal-offset shadows"). This is the main acne/peter-panning control for a spot; being world-space it scales with the scene, so very small scenes may want a smaller value.
getter/setter pair
shadowSoftness double
Radius, in shadow-map texels, of the soft-shadow PCF kernel. 0 gives a hard edge.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
shadowViewProjection(Vector3 worldPosition, Vector3 worldDirection) → Matrix4
The world -> clip matrix that renders and samples this spot's perspective shadow map, for a light at worldPosition aimed along worldDirection (both from the owning node's transform). The frustum is the cone, a vertical field of view of twice outerConeAngle (with a small margin) and a square aspect, out to range (or a default when the range is infinite).
toString() String
A string representation of this object.
inherited

Operators

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