CauldronGPU.Camera (CauldronGPU v0.3.3)

Copy Markdown View Source

The eye: a position and a rotation (looking down its -Z with +Y up), a vertical field of view in radians, and near and far distances. snap: true places it without interpolating from where it was on the previous tick.

viewport is the part of the frame the view is drawn into, {x, y, width, height} as fractions of the frame from its top left; the rest of the frame is black under the overlay. aspect is how wide the viewport shows on screen against its height, for frames whose pixels are not square; nil takes it from the viewport's pixels. resolution, {columns, rows}, shows the view as that many blocks across and down its viewport, each the colour at its centre; nil shows every pixel.

Summary

Types

t()

@type t() :: %CauldronGPU.Camera{
  aspect: number() | nil,
  far: number(),
  fov_y: number(),
  near: number(),
  position: {number(), number(), number()},
  resolution: {pos_integer(), pos_integer()} | nil,
  rotation: CauldronGPU.Quat.t(),
  snap: boolean(),
  viewport: {number(), number(), number(), number()}
}