Immersed in the wilds of computer graphics in particular 3D, and came across the matrix. In general, I came across a long time ago, but questions began to arise only now. The matrix in memory is an NxM object, in modern 3D graphics 4x4 and moreover, 32 bits take up all sorts of floats, that is, their size is 4 * 4 * 32 = 512 bits and why do we need them? Well, okay, even so much is not a pity, because they only speak for one operation and even 40% are filled with zeros. And at this very 3D graphics the weakest point, like the CPU, is the memory and bus bandwidth !!! So why matrices, if for example on the GPU you can send only XYZ shift and say add? Why so much empty space in the matrices?
For example, we have Vec3 Позиция, Поворот, Масштаб - these are vectors that serve to transform vertices, and at the same time I have Move(Vec3 B){ X += BX ...}; Rotate(Vec3 B){ X += cosA ... } и Scale(){...(не помню)}; methods Move(Vec3 B){ X += BX ...}; Rotate(Vec3 B){ X += cosA ... } и Scale(){...(не помню)}; Move(Vec3 B){ X += BX ...}; Rotate(Vec3 B){ X += cosA ... } и Scale(){...(не помню)}; they perform the same operations that would be performed on matrices only take three vectors each and calculations are performed on them, and not on the entire matrix, and the number of operations performed decreases. So why keep the same data in 4x4 arrays? http://www.gamedev.ru/code/articles/faq_matrix_quat at the bottom of the page something like