In CG the common matrix convention is to use Homogeneous Matrix to perform various transformations, which are 4x4 matrices.
This is a really basic common sense in CG. But have you ever considered WHY?
For 3D computation, a 3x3 matrix is intuitive. But mathematically 3x3 matrices act in ‘Vector Space’ – a basic property of vectors is that they don’t have the concept of ‘positions’. It means, moving a vector around will not produce a new vector. So in this condition you can make rotation and scale transforms, but you cannot do translations.
Actually 3D geometry computation is under the “Affine Space”, in which the positions of a point matters. By introducing this concept, we are able to do translation transforms. Mathematically, an affine tranformation consists of a linear transformation and a translation.
Pretty simple huh? But it is hard to find such an explanation in most linear algebra books.
Please refer to ‘Real-Time Rendering 2nd’ A.4. It is a short chapter but very very important.