Man Linux: Main Page and Category List

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)