# Projective Geometry

Eric Bainville - Oct 2007In these pages, I present an introduction to projective geometry, from the point of view of the 3D graphics programmer. 3D projective geometry is the underlying model of many 3D graphics libraries, such as OpenGL or DirectX, because it provides an unified way of handling all Euclidean, affine, and projective transformations, including the perspective projection. It also handles well the case of objects at infinity.

The *projective space* can be defined in various ways. The
book of J.G. Semple and G. T. Kneebone (__Algebraic Projective Geometry__,
Oxford Classic Texts) provides a definition based on *coordinates*. The
book of H. S. M. Coxeter (__Projective Geometry__, Springer) provides an
*axiomatic* definition, and makes the link to coordinates only at the
end of the book. These two approaches define the same projective space. I
recommend taking the time to read these books.

For the 3D programmer, the coordinates based approach is obviously the one
to use, and it will be presented in the following chapters. The reader is supposed
to have a basic knowledge of linear algebra. I won't give formal proofs of the
various properties exposed here. What I describe here is the *real projective
space of dimension 3*.

POV-Ray Buttons/Logos | Top of Page | Projective Geometry : Points and Planes |