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.

    gameObject: GameObject

    The owning GameObject; assigned by addComponent before onAttach runs.

    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

    • 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

    • 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

    • 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[]