Обычно квадратные матрицы используются для преобразования различных точек. У вас есть вектор 4D, который преобразуется в матрицу 1x4 или 4x1, которая умножается на матрицу 4x4, в зависимости от того, какая сторона работает для создания матрицы 4x1 или 1x4. Это ваша трансформированная точка.
Но для чего используются неквадратные матрицы? Если вы умножите матрицу 3x4 на векторную матрицу 4x1, вы получите матрицу 3x1; это на одно измерение меньше, чем то, с чего вы начали. Не говоря уже о том, что матрица 3x4 не обладает хорошими свойствами матрицы 4x4, такими как способность умножаться на другие матрицы 4x4 и при этом сохранять те же размеры.
GLSL поддерживает как квадратные, так и неквадратные матрицы. Почему?