Чтобы расширить ответ Эмпиреана, в трехмерных мирах обычно есть как минимум четыре системы координат, каждая из которых имеет свое локальное происхождение:
- Пространство объектов
- Пространство мира
- Пространство камеры
- Просмотр пространства (2D!)
с тремя преобразованиями:
- Объект в мир
- Мир в камеру
- Камера для просмотра
Вы можете создавать новые системы координат, например, «Пространство модели», с преобразованием «Модель в объект».Используя это, вы получаете ряд шагов:
Модель -> Масштаб -> Объект -> Повернуть -> Перевести -> Мир -> Повернуть -> Перевести -> Камера Камера -> Перспектива -> Вид
В OpenGL вы должны перемещать матрицы в обратном порядке, указанном выше, поэтому преобразование Model-> Object является последним, и OpenGL должен правильно визуализировать объект.Я бы предположил, что XNA / DirectX имеет аналогичную систему.
Сложнее, у Model Space может быть иерархия перемещений, масштабов и поворотов в дереве для создания скелетной системы, которую затем можно использовать для деформации модели.сетка.Обычно это называется Skinning.
Итак, чтобы ответить на вопрос, например, в зависимости от того, к какому преобразованию вы примените преобразование вращения, вы получите разные результаты.В преобразовании Модель-> Объект модель будет вращаться вокруг источника объекта.В трансформации Объект-> Мир объект будет вращаться вокруг источника мира.