3D Game Engine, получите абсолютное преобразование

У меня есть родительский узел сцены в моем движке и дочерний. преобразование дочернего элемента (положение, поворот и масштаб) относительно родительского.
Теперь я хочу узнать абсолютное преобразование дочернего элемента. Я имею в виду относительное преобразование дочерних элементов в основные координаты.
Есть идеи?
Редактировать: Проблема в том, что я не храню матрицы в узле сцены. У меня всего 3 вектора. Положение, поворот и масштаб.


person Kia.celever    schedule 08.12.2011    source источник
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