- #1

- 128

- 0

## Main Question or Discussion Point

Hello,

I am looking at some code which creates a projection matrix and I can verify that it is indeed correct as P^2 = P.

The way they do is as follows:

There is a 4x4 matrix which is an affine map between two coordinate systems (takes one from image space to world space). It is a transformation in 3D and the last row is [0 0 0 1] to accommodate for translation.

The procedure is as follows:

They take the 3x3 part of the matrix (so removing the translation bit) and also an appropriate transformation matrix is created. So for example if we only want to have the projection along the "z" plane, it would be:

I = [0 0 0; 0 0 0; 0 0 1]

The final projection matrix is gicen by:

A * I * inverse(A) where A is the 3x3 part.

I can verify that the resulting matrix indeed fulfills the properties of a projection matrix but am unable to get an intuitive feel of why this is so...

I would be very grateful if someone here can shed some light on this...

Thanks,

Luca

I am looking at some code which creates a projection matrix and I can verify that it is indeed correct as P^2 = P.

The way they do is as follows:

There is a 4x4 matrix which is an affine map between two coordinate systems (takes one from image space to world space). It is a transformation in 3D and the last row is [0 0 0 1] to accommodate for translation.

The procedure is as follows:

They take the 3x3 part of the matrix (so removing the translation bit) and also an appropriate transformation matrix is created. So for example if we only want to have the projection along the "z" plane, it would be:

I = [0 0 0; 0 0 0; 0 0 1]

The final projection matrix is gicen by:

A * I * inverse(A) where A is the 3x3 part.

I can verify that the resulting matrix indeed fulfills the properties of a projection matrix but am unable to get an intuitive feel of why this is so...

I would be very grateful if someone here can shed some light on this...

Thanks,

Luca