MTXLightFrustum

Syntax

#include <revolution/mtx.h>

void MTXLightFrustum(
    Mtx m,
    f32 t,
    f32 b,
    f32 l,
    f32 r,
    f32 n,
    f32 scaleS,
    f32 scaleT,
    f32 transS,
    f32 transT );

Arguments

m   New 3x4 projection matrix. The type of m may be either Mtx or MtxPtr.
t Top edge of view volume at the near clipping plane.
b   Bottom edge of view volume at the near clipping plane.
l Left edge of view volume at the near clipping plane.
r Right edge of view volume at the near clipping plane.
n Positive distance to near clipping plane.
scaleS Scale in the S direction for projected coordinates (usually 0.5)
scaleT Scale in the T direction for projected coordinates (usually 0.5)
transS Translation in the S direction for projected coordinates (usually 0.5)
transT Translation in the T direction for projected coordinates (usually 0.5)

Return Values

None.

Description

Sets a 3x4 perspective projection matrix based on the size of the view frustum, two scale values, and two parallel translation values. This matrix is used to project points into texture space and yield texture coordinates.

For normal perspective projections, the -z axis is the axis of projection, so t is positive, b is -t, r is positive, and l is -r. n must specify a positive distance.

Standard projection yields values ranging from -1.0 to 1.0 in both dimensions of the front clipping plane. Since texture coordinates should usually be within the range of 0.0 to 1.0, we have added a scale and translation value for both S and T. The most common way to use these values is to set all of them to 0.5 (so that points in the range of -1.0 to 1.0 are first scaled by 0.5) to be in the range of -0.5 to 0.5. Then they are translated by 0.5 to be in the range of 0.0 to 1.0. Other values can be used for translation and scale to yield different effects.

See Also

Mtx, MtxPtr, MTXLightOrtho, MtxLightPerspective

Revision History

2006/03/01 Initial version.


CONFIDENTIAL