Как неквадратные матрицы используются в компьютерной графике?

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

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

GLSL поддерживает как квадратные, так и неквадратные матрицы. Почему?


person RétroX    schedule 08.07.2011    source источник


Ответы (1)


Вы можете использовать матрицы 4x3, например, для трансформации костей скелета при снятии скинов. Эти преобразования аффинны и не включают проекцию, поэтому последний столбец вам не нужен.

Результатом умножения вектора 1x4 на матрицу 4x3 является вектор 1x3, и в данном конкретном случае его не нужно умножать на матрицу.

Передача матриц 4x3 на GPU вместо 4x4 сэкономит вам четверть полосы пропускания.

person kvark    schedule 08.07.2011