Taos API Reference
    Preparing search index...

    Class Camera

    Camera component. Drives view/projection matrices used by every render pass that needs the main view (geometry, shadows, post).

    The camera's world transform comes from its owning GameObject; this component only stores intrinsics (FOV, near/far, aspect) and exposes derived matrices.

    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.

    projectionType: CameraProjection = CameraProjection.Perspective

    Projection type of the camera.

    fov: number = ...

    Vertical field of view in radians.

    orthoSize: number = 10

    Orthographic size (height) for orthographic projection.

    near: number

    Near clip plane distance.

    far: number

    Far clip plane distance.

    aspect: number

    Width / height aspect ratio.

    clearFlags: CameraClearFlags = CameraClearFlags.All

    Clear flags for the camera.

    clearColor: Vec4 = ...

    Clear color for the camera.

    clearDepth: number = 1

    Clear depth value for the camera.

    clearStencil: number = 0

    Clear stencil value for the camera.

    viewport: { x: number; y: number; width: number; height: number } = ...

    Viewport rectangle in normalized [0-1] coordinates.

    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

    • Parameters

      • fovDeg: number = 60
      • near: number = 0.1
      • far: number = 1000
      • aspect: number = ...

      Returns Camera

    • Parameters

      • orthoSize: number = 10
      • near: number = 0.1
      • far: number = 1000
      • aspect: number = ...

      Returns Camera

    • Overrides the cached matrices with an externally-supplied view and projection — used by the WebXR path, where the headset runtime, not this component's GameObject transform, dictates each eye's pose and projection. Called once per eye per frame (before features read the camera). Unlike updateRender it does not touch the previous-frame VP snapshot (temporal effects are disabled in XR), and it derives position from the inverse view matrix so lighting / specular use the true eye origin.

      Parameters

      • view: Mat4

        world→eye matrix (already in WebGPU clip conventions).

      • proj: Mat4

        eye projection (already converted to WebGPU [0,1] depth).

      Returns void

    • Records a sub-pixel jittered view-projection for this frame. Typically called from TAAPass.update(); geometry-fill passes then read the result via jitteredViewProjectionMatrix.

      Parameters

      • jx: number

        NDC x offset (typically ±1/width).

      • jy: number

        NDC y offset (typically ±1/height).

      Returns void

    • Tells the camera that the world's floating origin shifted this frame by shift (the world-space translation applied to all content, i.e. the camera's pre-shift world position when the origin is re-anchored under the camera). The shift is folded into the previous-frame VP on the next updateRender so temporal reprojection (TAA, motion blur) doesn't read the origin jump as camera motion. Call it right after re-anchoring, before the frame renders. No-op for renderers that never shift origin.

      Parameters

      Returns void

    • Cached projection matrix, populated by updateRender. Falls back to fresh computation when called before any updateRender (e.g. from unit tests with no render context). Render-pass-heavy callers should always call updateRender first to avoid the cold-path work.

      Returns Mat4

    • Returns the 8 corners of the view frustum in world space.

      Computed fresh each call (does not read the cached viewProj) because cascade fitting temporarily mutates near/far and expects the result to reflect those mutations, not the per-frame cached values.

      Returns Vec3[]