## 6.4 Camera

The camera definition describes the position, projection type and properties of the camera viewing the scene. Its syntax is:

    CAMERA:
        camera{ [CAMERA_ITEMS...] }
    CAMERA_ITEM:
        CAMERA_TYPE | CAMERA_VECTOR | CAMERA_MODIFIER |
        CAMERA_IDENTIFIER
    CAMERA_TYPE:
        perspective | orthographic | fisheye | ultra_wide_angle |
        omnimax | panoramic | cylinder CylinderType | spherical
    CAMERA_VECTOR:
        location <Location> | right <Right> | up <Up> |
        direction <Direction> | sky <Sky>
    CAMERA_MODIFIER:
        angle HORIZONTAL [VERTICAL] | look_at <Look_At> |
        blur_samples Num_of_Samples | aperture Size |
        focal_point <Point> | confidence Blur_Confidence |
        variance Blur_Variance | NORMAL | TRANSFORMATION

Camera default values:

    DEFAULT CAMERA:
      camera {
        perspective
        location <0,0,0>
        direction <0,0,1>
        right 1.33*x
        up y
        sky <0,1,0>
      }

    CAMERA TYPE: perspective
    angle      : ~67.380 ( direction_length=0.5*
                           right_length/tan(angle/2) )
    confidence : 0.9 (90%)
    direction  : <0,0,1>
    focal_point: <0,0,0>
    location   : <0,0,0>
    look_at    : z
    right      : 1.33*x
    sky        : <0,1,0>
    up         : y
    variance   : 1/128

Depending on the projection type zero or more of the parameters are required:

- If no camera is specified the default camera is used.
- If no projection type is given the perspective camera will be used (pinhole camera).
- The CAMERA_TYPE has to be the first item in the camera statement.
- Other CAMERA_ITEMs may legally appear in any order.
- For other than the perspective camera, the minimum that has to be specified is the CAMERA_TYPE, the cylindrical camera also requires the CAMERA_TYPE to be followed by a float.
- The Orthographic camera has two 'modes'. For the pure orthographic projection up or right have to be specified. For an orthographic camera, with the same area of view as a perspective camera at the plane which goes through the look_at point, the angle keyword has to be use. A value for the angle is optional.
- All other CAMERA_ITEMs are taken from the default camera, unless they are specified differently.

In 'Camera' ...
6.4.1 | Placing the Camera
6.4.2 | Types of Projection
6.4.3 | Focal Blur
6.4.4 | Camera Ray Perturbation
6.4.5 | Camera Identifiers