while its a similar value to its neighbour - Z translation (and I wont say if thats above or to the left for fear of sparking a religious war!) and it only seems to change when the Z translation value changes, however the value is not quite the same

Normally I just see either this value ignored or just a 1 in all the tutorials I've seen

Can someone explain exactly what this last element does ?

  • \$\begingroup\$ the question I asked wasn't answered by the "duplicate" as far as I can see - can you explain why you consider it a duplicate ? \$\endgroup\$ Commented Jan 2, 2015 at 20:00

1 Answer 1


The value is for Homogeneous Coordinates. Using homogeneous coordinates makes it possible to use things like quaternions and projection matrices. The last entire row is actually for dealing with homogeneous coordinates.

Essentially, the coordinates transformed by a 4x4 matrix will be a 4x1 vector, with (X,Y,Z,W) components. The final values of (X,Y,Z) are determined by taking the homogeneous coordinates and dividing them by W.

E.g. 1

[4,2,1,2] is transformed to [2,1,0.5,1]

Wherein the final XYZ coordinates are then (2,1,0.5). Again, this is useful for dealing with quaternions and creating projection matrices.

E.g 2

Projection of point p onto the plane
 orthoganal to the Z axis and distance d
 from the 'camera'.

     d   |               <- given

     d   |.p'
c--------|       <- desired projection

p' = (d / p.z) * p

x' = dx / z
z' = d

d 0 0 0 * x = dx -> dx / z
0 d 0 0   y   dy    dy / z
0 0 d 0   z   dz       d
0 0 1 0   1    z       1

In the case of a projection matrix, homogeneous coordinates allow the projection of scene geometry onto a plane (the screen).

  • \$\begingroup\$ thanks that gives me a clue in what direction to take my further research \$\endgroup\$ Commented Jan 2, 2015 at 20:01

Not the answer you're looking for? Browse other questions tagged .