Provided by: liballegro-doc_4.2.2-3_all bug

NAME

       get_camera_matrix  -  Constructs  a camera matrix for perspective projection. Allegro game
       programming library.

SYNOPSIS

       #include <allegro.h>

       void get_camera_matrix(MATRIX *m, fixed x, y, z, xfront, yfront, zfront, fixed  xup,  yup,
       zup, fov, aspect);

DESCRIPTION

       Constructs  a  camera  matrix  for  translating world-space objects into a normalised view
       space, ready for the perspective projection. The x, y, and z parameters specify the camera
       position,  xfront,  yfront,  and zfront are the 'in front' vector specifying which way the
       camera is facing (this can be any length: normalisation is not required),  and  xup,  yup,
       and zup are the 'up' direction vector.

       The  fov  parameter specifies the field of view (ie. width of the camera focus) in binary,
       256 degrees to the circle format. For typical projections, a field of view in  the  region
       32-48  will  work  well.  64 (90\(de) applies no extra scaling - so something which is one
       unit away from the viewer will be directly scaled to the viewport. A bigger FOV moves  you
       closer  to  the  viewing  plane, so more objects will appear. A smaller FOV moves you away
       from the viewing plane, which means you see a smaller part of the world.

       Finally, the aspect ratio is used to scale the Y dimensions of the image relative to the X
       axis,  so you can use it to adjust the proportions of the output image (set it to 1 for no
       scaling - but keep in mind that the projection also  performs  scaling  according  to  the
       viewport  size).   Typically,  you  will  pass  (float)w/(float)h,  where  w and h are the
       parameters you passed to set_projection_viewport.

       Note that versions prior to 4.1.0 multiplied this aspect ratio by 4/3.

SEE ALSO

       apply_matrix(3alleg),      get_align_matrix(3alleg),      set_projection_viewport(3alleg),
       persp_project(3alleg)