Taos API Reference
    Preparing search index...

    Class SpotLight

    Cone-restricted spot light component.

    Supplies the deferred lighting pass with a directional cone (range, inner/outer angles, optional projected texture) and, when shadowing is enabled, a single perspective view-projection consumed by the spot-light shadow pass.

    Placed and aimed by its GameObject's transform; see worldPosition / worldDirection. Construct with no arguments and set fields, or pass SpotLightOptions.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    id: string = ...

    Stable identity for this component, unique within a session. Auto-generated for runtime-created components; the editor overwrites it with a persistent id when projecting a saved document so references survive save / load / undo.

    gameObject: GameObject

    The owning GameObject; assigned by addComponent before onAttach runs.

    color: Vec3 = ...

    Linear RGB color multiplier.

    intensity: number = 1.0

    Luminous intensity in candela (cd) along the cone axis under the physical-units convention. Author in lumens via lumens.

    range: number = 20.0

    Maximum range in world units.

    innerAngle: number = 15

    Half-angle of the full-bright cone, in degrees.

    outerAngle: number = 30

    Half-angle of the fade-to-zero cone, in degrees.

    castShadow: boolean = false

    Whether this light renders a shadow map.

    projectionTexture: GPUTexture | null = null

    Optional cookie/projector texture sampled with the light's view-proj.

    iesProfileIndex: number = -1

    Index into the lighting pass's IES profile LUT (set via PointSpotLightPass.setIesProfiles); -1 = no photometric profile. The profile reshapes the cone falloff by the angle off the light's aim.

    Accessors

    • get time(): Time

      The simulation clock of the scene this component belongs to. Read inside update (or any time after the GameObject is added to a scene) for absolute time, frame count, FPS, and timeScale-aware delta — e.g. this.time.elapsed, this.time.delta, this.time.frameCount.

      this.time.delta equals the dt argument passed to update, so components can ignore that argument entirely and pull everything from here.

      Returns Time

      if the owning GameObject is not currently part of a scene.

    Methods

    • Called once when the component is added to a GameObject. Override to acquire references to siblings/children or initialize resources.

      Returns void

    • Called once when the component is removed from its GameObject. Override to release resources or unsubscribe from events.

      Returns void

    • Called every frame by the GameObject's update traversal.

      Parameters

      • _dt: number

        Frame delta time in seconds.

      Returns void

    • Called every frame by the GameObject's render traversal, after update and any input/controller mutations to the transform. Override to refresh per-frame state that render passes consume (e.g. Camera recomputes its cached view/projection matrices here).

      Parameters

      • _ctx: RenderContext

        Active render context (provides canvas width/height etc.).

      Returns void

    • Builds the perspective view-projection used by the spot shadow pass and projection texture sampling.

      Parameters

      • near: number = 0.1

        Near plane for the perspective frustum.

      Returns Mat4