Предполагая, что у меня есть класс, который содержит 3 вектора (один для позиции, один для масштаба и один для вращения), я могу использовать их для создания матрицы преобразования, которая символизирует положение объекта, поворот и размер в трехмерном пространстве. Затем я добавляю родительский/child между объектами, и я умножаю локальную матрицу преобразования ребенка на глобальную родительскую, я получаю глобальную дочернюю систему, и это тот, который я использую для рендеринга объектов, поэтому, когда родитель вращается, ребенок вращается вокруг него подобно орбите . Теперь мне нужно иметь возможность получить локальное преобразование ребенка (не всю матрицу, а только отдельные компоненты). Я знаю глобальное преобразование ребенка, и я знаю глобальное преобразование родителя.Обновление локальной позиции/поворота/шкалы из глобальной позиции/вращения/шкалы?
я могу получить ребенка локального преобразования путем умножения ребенка глобального преобразования путем преобразования inversed.However родителя мне действительно нужно, чтобы быть в состоянии сделать это конкретно:
1.To быть в состоянии получить местное положение ребенка , просто зная, что это глобальная позиция и глобальная позиция родителя БЕЗ, генерирующая любые матрицы;
2.Чтобы получить локальное вращение ребенка, просто зная, что это глобальное вращение и глобальное вращение родителя БЕЗ генерирует любые матрицы;
3.Чтобы получить локальный масштаб ребенка, просто зная его глобальный масштаб и глобальный масштаб родителя БЕЗ, генерирующий любые матрицы;
Ну, что вы пробовали? Что конкретно представляет собой проблема с пунктом 1, например? – Hulk
Ну, мне нужно, чтобы она была умной, как система в Unity3D.In Unity3D каждый раз, когда вы меняете вращение объекта, позиции его детей автоматически меняются, поэтому они вращаются вместе с ним. В любом случае, мне нужно, чтобы он обновлял все каждый раз, но единственный способ сделать это - создать матрицы. Я не знаю, есть ли более быстрый способ. –
Не могли бы вы объяснить, почему вы не хотите создавать какие-либо матрицы? Возможно, если бы вы могли сказать конечную цель, мы могли бы попытаться достичь ее, вместо того, чтобы сосредоточиться на промежуточной цели избегать генерации матриц преобразования. – Michael