Function
Set or retrieve a perspective view.
Syntax
#include <dx/dx.h>
Camera DXSetPerspective(Camera c, double fov, double aspect)
Camera DXGetPerspective(Camera c, float *fov, float *aspect)
Functional Details
A camera defines the position and orientation of the viewer, the volume of interest of the Object being viewed, and the size of the image to contain the resulting view.
DXSetPerspective defines the volume of interest of a perspective camera c. This is a pyramid with an apex at the from position, and a base centered on to point, perpendicular to the to-from vector. The width of the base is defined by the angle formed by the sides of the pyramid at the apex and the distance between the to and from points. This angle is also known as the "field of view" and is specified by the fov parameter.
The fov is defined as twice the tangent of half the angle (e.g, for a 90-degree sweep, the fov setting should be 2 * tan(45-degrees), or 2.0). The fov can also be thought of as the ratio of the width of the base to the distance from the viewer (e.g., for a view of a 20-meter wide area from a distance of 10 meters, the fov setting should be 20/10, or 2.0). The height is defined by width of the base times the aspect. With a perspective camera, objects appear smaller with increasing distance.
DXGetPerspective returns the fov and aspect parameters of a perspective camera c. If fov is not NULL, returns the camera fov in *fov. If aspect is not NULL, returns the camera aspect ratio in *aspect.
Return Value
DXSetPerspective returns the camera or returns NULL and sets an error code.
DXGetPerspective returns as follows:
See Also
DXGetCameraMatrix, DXGetCameraRotation, DXGetCameraMatrixWithFuzz, DXNewCamera, DXRender, DXSetOrthographic, DXGetOrthographic, DXSetResolution, DXGetCameraResolution, DXSetView, DXGetView