logo back up home forward   further reading more topics »

Maths - Frustum Projection

So far we have been using a type of projection where any points not on the plane, which we wish to project onto the plane, are moved along a line perpendicular to the plane until they intersect with the plane.

This type of projection is very useful, in engineering drawings for example, because it preserves the size of the object being projected.

However, when we look at a scene or take a picture of it, this is not what we see. Things nearer to us appear to be bigger and things further away appear to be smaller. Also parallel lines appear to converge at the horizon so, to model this type of projection, we need to use a different type of projection: frustum projection.

frustum projection

This type of projection can be modeled by projective geometry.

Frustum Projection Matrix

This projection is represented by the following matrix.

FD/aspect 0 0 0
0 FD 0 0
0 0 (zFar + zNear)/(zFar - zNear) -1
0 0 (2 * zFar * zNear)/(zFar - zNear) 0

This assumes that we are projecting along z-axis, that is we are looking along the z axis, so the x and y axes are not altered by the transform apart from a fixed scaling factor. The z axis is modified by both the z and w components. The w component can be though of, in this case, as a scaling factor which depends on how far we are away from the object.


metadata block
see also:
Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

 

cover Applied Geometry for Computer Graphics...

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to the software project, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

 

Can you help?

Please send me any improvements to here. I would appreciate ideas to make the pages more useful including error correction, ideas for new pages, improvements to wording. It helps if you quote the full URL of the page.

 

progam

I am working on a project which uses these principles, if you would like to help me with this you are welcome to join in, here:

http://sourceforge.net/projects/mjbworld/

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2008 Martin John Baker - All rights reserved - privacy policy.