Какой способ установки положения матрицы-модели оптимальный?
Допустим, есть матрица модели model
, назовём её «игроком».
model = glm::mat4(1.0);
На игрока, возможно, были наложены эффекты масштабирования, поворота и перемещения.
model = glm::scale(...);
model = glm::rotate(...);
model = glm::translate(...);
Теперь мне нужно установить новое положение этому игроку относительно не самого игрока (что делает метод translate), а относительно «мира», то есть относительно начала мировых координат <0, 0, 0>.
Решение, которое сразу приходит на ум, следующее:
model = glm::translate(glm::mat4(1), glm::vec3(x, y, z));
Проблема в том, что из за того, что матрица модели model
заменяется матрицей glm::mat4(1)
, все раннее наложенные эффекты масштабирования и поворота исчезают.