Size: a a a

pro.graphon (and gamedev)

2021 April 06

AP

Alexander Potapov in pro.graphon (and gamedev)
        this->rotation += angles;
       this->rotation.x = std::fmod(this->rotation.x + 360.0f, 360.0f);
       this->rotation.y = std::fmod(this->rotation.y + 360.0f, 360.0f);
       this->rotation.z = std::fmod(this->rotation.z + 360.0f, 360.0f);
       this->needTransformUpdate = true;
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
потом делаешь
glm::yawPitchRoll(angles.y, angles.x, angles.z);
*переведя в радианы
источник

ED

Elias Daler in pro.graphon (and gamedev)
Как ты получаешь angles из матрицы трансформации? Или ты хранишь этот вектор где-то?
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
храню вектор
источник

ED

Elias Daler in pro.graphon (and gamedev)
Хмм, т.е. и при сериализации сцены надо поидее их записывать в файл сцены, да?
А то я вот думал, как поворот хранить в уровнях :D
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
ну де. У меня матрица в трансформе это скорее как кеш
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
то есть я всегда записываю отдельно T R S
источник

ED

Elias Daler in pro.graphon (and gamedev)
Ну я вот вчера так сделал. И было бы круто, если бы из R можно было получать этот "angles" вектор, а не хранить его отдельно
Ведь иначе есть зависимость... Типа если у тебя кто-то извне будет вертеть объект, то у него будет меняться R, но не будет меняться angles
источник

ED

Elias Daler in pro.graphon (and gamedev)
Извне, в смысле какой-нибудь игровой скрипт
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Я неправильно выразился, у меня vec3 translate vec3 rotate vec3 scale
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Вообще извне вертеть давать ничего не надо. Делай геттеры сеттеры лучше
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
источник

ED

Elias Daler in pro.graphon (and gamedev)
Не, ну это понятно. Просто я например вращаю кватернионами, потом получаю матрицу поворота из этого...
А если повернуть кватернионом и после этого всего хранить только yaw/roll/pitch (и конвертить обратно в матрицу поворота из них), то ошибки не будут аккумулироваться?
источник

ED

Elias Daler in pro.graphon (and gamedev)
Это как "your/your're" или "would of" в английском. Но в туторах редко вижу такое 😂
источник

k

koren in pro.graphon (and gamedev)
Мне кажется, что не стоит ограничивать вращение
источник

k

koren in pro.graphon (and gamedev)
А то при интерполяции позиций может быть такая замечатьная ситуация, что на кадре 0 угол был 354, а на кадре 2 - 12. А у кадра 1 что будет?
источник

ED

Elias Daler in pro.graphon (and gamedev)
Ну, это же только в редакторе. Внутри можно хранить всё вообще иначе
Вот я и пытаюсь понять, как показывать нормальные числа, а хранить матрицу поворота :D
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Оно не ограничивается, а берется по модулю
источник

k

koren in pro.graphon (and gamedev)
Ну это да.. Но при интерполяции модуль не поможет
источник

ED

Elias Daler in pro.graphon (and gamedev)
Ага, мне кажется, что задавать поворот через yaw/pitch/roll может быть плохо при всяких интерполяциях
Поэтому пока что я храню матрицу поворота, но кажется, что некоторые хранят прям кватернион? (И потом когда нужна матрица поворота получают из него её)
источник