1get_camera_matrix(3) Allegro manual get_camera_matrix(3)
2
3
4
6 get_camera_matrix - Constructs a camera matrix for perspective projec‐
7 tion. Allegro game programming library.
8
10 #include <allegro.h>
11
12
13 void get_camera_matrix(MATRIX *m, fixed x, y, z, xfront, yfront,
14 zfront, fixed xup, yup, zup, fov, aspect);
15
17 Constructs a camera matrix for translating world-space objects into a
18 normalised view space, ready for the perspective projection. The x, y,
19 and z parameters specify the camera position, xfront, yfront, and
20 zfront are the 'in front' vector specifying which way the camera is
21 facing (this can be any length: normalisation is not required), and
22 xup, yup, and zup are the 'up' direction vector.
23
24 The fov parameter specifies the field of view (ie. width of the camera
25 focus) in binary, 256 degrees to the circle format. For typical projec‐
26 tions, a field of view in the region 32-48 will work well. 64 (90°)
27 applies no extra scaling - so something which is one unit away from the
28 viewer will be directly scaled to the viewport. A bigger FOV moves you
29 closer to the viewing plane, so more objects will appear. A smaller FOV
30 moves you away from the viewing plane, which means you see a smaller
31 part of the world.
32
33 Finally, the aspect ratio is used to scale the Y dimensions of the
34 image relative to the X axis, so you can use it to adjust the propor‐
35 tions of the output image (set it to 1 for no scaling - but keep in
36 mind that the projection also performs scaling according to the view‐
37 port size). Typically, you will pass (float)w/(float)h, where w and h
38 are the parameters you passed to set_projection_viewport.
39
40 Note that versions prior to 4.1.0 multiplied this aspect ratio by 4/3.
41
42
44 apply_matrix(3), get_align_matrix(3), set_projection_viewport(3),
45 persp_project(3)
46
47
48
49Allegro version 4.2.2 get_camera_matrix(3)