Сначала я попытаюсь ответить на ваш последний вопрос, надеюсь, это прояснит ситуацию.
Всякий раз, когда художник-график создает здание, монстра или ландшафт, ему необходимо определить систему координат . Он состоит из источника (где 0,0) и некоторых осей (где направления x и y?). Выбор совершенно произвольный и не имеет реального значения, но ради простоты (и, в некоторых случаях, для уменьшения ошибок из-за отсутствия точности) источник обычно находится либо близко к центру объекта, либо в контрольной точке. (например, корень дерева).
Теперь, если художник соберет монстра и здание в ландшафте, координаты, скорее всего, не будут совпадать. Она могла бы создать здание вместе с ландшафтом, хотя это не всегда выполнимо, не говоря уже о удобстве, но для монстра бегать за каким-то жалким MMO-игроком это просто невозможно.
Поэтому нам нужен способ узнать, где руки, ноги, зубы, щупальца и все, что вы предпочитаете не видеть, окажутся в мире, пока монстр бежит. Их положение очень хорошо известно относительно монстра. Это то, что мы можем назвать, скажем, координатой монстра. В более общем смысле, мы бы назвали локальные координаты , что означает локальность для монстра.
Так, каковы мировые координаты ? Обычно они ссылаются на то, что имеет больше всего смысла, как на ссылку, элемент, который не движется вокруг чего-то другого. Здесь пейзаж.
Это где матрицы приходят в игру. Что такое матрица? Матрица - это оператор , который позволяет выражать координаты в другой системе координат. Это проекция системы координат из системы в другую : от монстра к сцене, от сцены к камере, от камеры к экрану ...
Матрица может выражать любое преобразование из одной системы в другую: перемещение, вращение, масштабирование, сдвиг, выравнивание ... Или все это одновременно. единичная матрица - это матрица, которая ничего не меняет. Матрицы также можно комбинировать: умножая матрицу перевода и матрицу вращения, мы получаем полученную матрицу преобразования как преобразования, так и вращения. Сделайте это пару раз, и вы получите положение кончика шарнирного рычага робота на автомобильном заводе, просто комбинируя матрицы каждого соединения.
Затем мы сталкиваемся с тем, в чем может заключаться ваша проблема: перевод, затем вращение - это не то же самое, что вращение, а затем перевод . Если вы не уверены в этом, попробуйте сами: идите, поворачивайте или поворачивайте, затем идите, и вы увидите, как вы не заканчиваете в том же месте. Таким образом, в конце концов это означает, что матрицы должны применяться в определенном порядке, который зависит только от того, что вы хотите сделать.
Из объяснений, которые вы даете, я подозреваю, что именно здесь у вас что-то не так, потому что перевод даст другой результат, если вы сначала масштабируете.