GLM объединить вращение и перевод

У меня есть объект, который я сначала хочу повернуть (относительно его собственного центра), а затем перевести его в какую-то точку. У меня есть glm :: quat, который содержит поворот и glm :: vec3, который содержит точку, в которую он должен быть переведен.

glm::vec3 position;
glm::quat orientation;
glm::mat4 modelmatrix; <-- want to combine them both in here

modelmatrix = glm::translate(glm::toMat4(orientation),position);

Тогда в моей функции рендеринга я делаю ..

pvm = projectionMatrix*viewMatrix*modelmatrix;
glUniformMatrix4fv(pvmMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(pvm));

..и рендеринг ...

К сожалению, объект просто вращается вокруг начала координат, когда я применяю вращение (чем дальше «позиция» от начала координат, тем больше орбита).

Когда я применяю только позицию, это переводится нормально. Когда я применяю только вращение, оно остается в начале координат и вращается вокруг его центра (как и ожидалось). Так почему же это странно, когда я применяю их обоих? Я что-то упустил?

Ответы на вопрос(1)

Ваш ответ на вопрос