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

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

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

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

1 Ответ

4 голосов
/ 09 июля 2011

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

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

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

...