Taos API Reference
    Preparing search index...

    Class Sky

    Scene authoring handle for the procedural atmosphere. Carries a friendly, curated subset of the atmosphere LUT parameters; the editor (or any host) reads these and pushes them into the registered atmosphere render features via engine.getFeature(AtmosphereFeature) / AtmosphereLutsFeature.

    The sun direction is not owned here — it comes from the scene's DirectionalLight, matching how the atmosphere pass already sources it.

    Defaults mirror the engine's Earth preset so adding a Sky changes nothing until the user edits a value.

    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.

    enabled: boolean = true

    Whether this component participates in simulation and rendering. When false, the GameObject skips its update/updateRender and the scene's render collectors (mesh renderers, camera, lights, …) ignore it — the component stays attached and keeps its state, like Unity's Behaviour.enabled / Renderer.enabled. Defaults to true.

    gameObject: GameObject

    The owning GameObject; assigned by addComponent before onAttach runs.

    _sceneAttached: boolean = false

    True between onAttach and onDetach — i.e. while this component sits on a GameObject that is part of a live Scene. Managed by GameObject. Internal — do not set directly.

    mode: SkyMode

    How the sky background is produced:

    • 'atmosphere' — procedural physically-based sky (the scattering knobs below). Stars can be layered on top via enableStars for day/night.
    • 'color' — flat skyColor clear.
    • 'texture' — equirectangular HDR panorama at skyTexture.
    • 'stars' — a dark (skyColor) sky with the starfield always on.
    skyColor: [number, number, number]

    Flat sky color (linear RGB) for 'color' / 'stars' modes.

    skyTexture: string | null

    Equirectangular panorama path for 'texture' mode (host resolves it).

    sunIntensity: number

    Sun radiance at the top of the atmosphere (HDR units).

    rayleigh: number

    Multiplier on Rayleigh (molecular) scattering — higher = bluer, hazier.

    mie: number

    Multiplier on Mie (aerosol) scattering — higher = whiter haze/glow.

    ozone: number

    Multiplier on ozone absorption — shapes twilight colors.

    groundAlbedo: [number, number, number]

    Ground albedo (linear RGB) feeding the atmosphere's bounce term.

    enableStars: boolean

    Render a procedural starfield on sky pixels (fades in as the sun sets). Always on in 'stars' mode; opt-in for 'atmosphere' (day/night).

    starsExtinction: number

    Attenuate stars by the sky luminance behind them (0 = full strength).

    starsBrightness: number

    Linear brightness multiplier for catalog stars.

    starsCatalog: boolean

    Render the real Yale Bright Star Catalog instead of the procedural field.

    starsLowerHemisphere: number

    0 clamps stars to the upper hemisphere (ground); 1 wraps the full sphere.

    starsLatitude: number

    Observer latitude (degrees, +N) for catalog star orientation.

    starsSiderealDeg: number

    Sidereal rotation of the catalog sky (degrees about the celestial pole).

    planetMode: boolean

    Switch the atmosphere into spherical "planet" mode — a curved horizon and scattering scaled to a planet of planetRadius. Off = the default Earth-scale flat-world sky.

    planetRadius: number

    Planet surface radius in world units (planet mode only).

    atmosphereHeight: number

    Atmosphere shell thickness above the surface, world units (planet mode only).

    horizonless: boolean

    Wrap the sky across the full sphere with no hard planet limb (planet mode only). Useful for space / fully-airborne scenes.

    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

    • Connect to a Signal with automatic disconnect when this component is removed from its GameObject — the safe default for cross-object listening, so a destroyed component never leaks into (or gets called by) a signal it once observed. Typically called from onAttach:

      onAttach(): void {
      const health = this.gameObject.getComponent(Health)!;
      this.listen(health.died, () => this.playDeathEffect());
      }

      Type Parameters

      • A extends unknown[]

      Parameters

      Returns () => void

      The unsubscribe function, for listeners that also want to disconnect early; calling it is optional and idempotent.

    • Called when the component joins a live scene — from addComponent when the GameObject is already in a scene, otherwise when the GameObject is added to one. this.gameObject.scene (and scene.engine) is always set here. Override to acquire references to siblings/children or initialize resources.

      Returns void

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

      Parameters

      • _dt: number

        Frame delta time in seconds.

      Returns void

    • Called when this component's GameObject begins touching another body, with the GameObject it collided with. Dispatched by the physics system after each world step (only while playing), so handlers may freely mutate the scene. Requires a physics body (RigidBody / CharacterBody) on the object.

      Parameters

      • _other: GameObject

        The other GameObject involved in the contact.

      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