/* A basic perspective camera. */

shader camera(float focal_length = 90.0 [[ float min = 0.0,
                                           string unit = "mm",
                                           float sensitivity = 0.2 ]],
              output point position = 0.0,
              output vector direction = 0.0,
              output color throughput = 1.0)
{
  vector sensor_size;
  getattribute("cam:sensor_size", sensor_size);

  point Pcam = camera_shader_raster_position() - point(0.5);
  Pcam *= sensor_size / focal_length;
  direction = normalize(vector(Pcam.x, Pcam.y, 1.0));
}
