Я реализует столбцы матрицы преобразования, которая выглядит примерно так:Transform масштабирования не похож на работу
|----------| |------------| |------------|
| 0 3 6 9 | | RS R R X | | RS R R X |
| 1 4 7 10 | | R RS R Y | | R RS R Y |
| 2 5 8 11 | | R R RS Z | | R R RS Z |
|----------| |------------| | 0 0 0 1 |
|------------|
Я понимаю, что масштабирование должно быть применено к позиции 0, 4 и 8 , но он, похоже, не работает. Я установил ориентацию из кватерниона, задал позицию по мере необходимости и затем попытался умножить свое масштабирование на позиции 0, 4 и 8. Когда это преобразование подается в OpenGL, мои фигуры растягиваются и сквошут и не масштабируются соответствующим образом. Я что-то пропустил здесь, я думал, что масштабирование - это простое умножение по диагонали? Мое приложение ориентации относительно простое, но добавление операции масштабирования к нему приводит к странным эффектам извилистости и раздавливания. Что я делаю не так?
Есть ли причина, по которой вы работаете с матрицей 4x3 вместо матрицы 4x4? – TheBuzzSaw
Да, уменьшает необходимое хранилище, поскольку нижняя строка автоматически считается 0, 0, 0, 1 из-за однородных координат. Нижняя строка подразумевается в расчетах. – Grimless
Я предполагаю, что следующим вопросом будет следующее: как именно вы кормите свои матрицы в OpenGL? Вы используете шейдеры? – TheBuzzSaw