У меня есть родительский узел сцены в моем движке и дочерний. преобразование дочернего элемента (положение, поворот и масштаб) относительно родительского.
Теперь я хочу узнать абсолютное преобразование дочернего элемента. Я имею в виду относительное преобразование дочерних элементов в основные координаты.
Есть идеи?
Редактировать: Проблема в том, что я не храню матрицы в узле сцены. У меня всего 3 вектора. Положение, поворот и масштаб.
3D Game Engine, получите абсолютное преобразование
comment
Умножить все ваши матрицы преобразования? (родители, ..., суб-родители, дети)
- person Andrey Agibalov   schedule 08.12.2011
comment
Функция, которая преобразует pos / rot / scale в матрицу, необходима в любом игровом движке. Хранение / кеширование указанной матрицы часто является хорошей идеей по соображениям производительности.
- person Macke   schedule 08.12.2011
comment
@Macke: Тогда как мне преобразовать вектор в матрицу или преобразовать матрицу в вектор?
- person Kia.celever   schedule 08.12.2011
comment
@ Kia.celever: см. en.wikipedia.org/wiki/Transformation_matrix (или просто f- в гугле каждый когда-либо созданный движок 3D-графики имеет такой же код)
- person Macke   schedule 08.12.2011
comment
Многие движки даже не предоставляют свой собственный код, потому что каждая графическая математическая библиотека имеет функции создания матриц. Например, D3DX имеет полный семейство функций для построения различных матриц.
- person ssube   schedule 09.12.2011
Ответы (1)
Вам нужно спуститься по дереву и умножить каждую матрицу по пути, от корня сцены до конечного объекта. Результирующая матрица будет абсолютным преобразованием.
person
ssube
schedule
08.12.2011