Векторные преобразования в OpenGL ES - PullRequest
0 голосов
/ 04 декабря 2010

Почему векторные преобразования выполняются в обратном порядке в OpenGL ES? Это потому, что векторы хранятся в виде столбца-матрицы? Кажется, они сделали вещи излишне трудными.

1 Ответ

1 голос
/ 04 декабря 2010

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

Простой мысленный эксперимент доказывает суть:

  1. Для единичного вектора (1, 0, 0) поворот на +90 градусов вокруг оси z, а затем поворот на +90 градусов вокруг оси x приводит к вектору (0, 0, 1).
  2. Если вы начнете с поворота на 90 градусов вокруг оси x, за которым следует поворот на 90 градусов вокруг оси z, у вас будет вектор (0, 1, 0).
...