# `CauldronGPU.Light`
[🔗](https://github.com/jaman/cauldron/blob/v0.3.3/cauldron_gpu/lib/cauldron_gpu/light.ex#L1)

A light in the scene. `:directional` lights shine along `direction` from everywhere;
`:point` lights shine from `position` out to `range`; `:spot` lights also narrow to a
cone around `direction`, full inside `inner_cone` radians and none past `outer_cone`.
`intensity` scales `color`. The first directional light with `shadows: true` casts
shadows.

# `t`

```elixir
@type t() :: %CauldronGPU.Light{
  color: vec3(),
  direction: vec3(),
  inner_cone: number(),
  intensity: number(),
  kind: :directional | :point | :spot,
  outer_cone: number(),
  position: vec3(),
  range: number(),
  shadows: boolean()
}
```

# `vec3`

```elixir
@type vec3() :: {number(), number(), number()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
