glm combina rotación y traslación
Tengo un objeto que primero quiero rotar (sobre su propio centro) y luego traducirlo a algún punto. Tengo un glm :: quat que contiene la rotación y un glm :: vec3 que contiene el punto al que debe traducirse.
glm::vec3 position;
glm::quat orientation;
glm::mat4 modelmatrix; <-- want to combine them both in here
modelmatrix = glm::translate(glm::toMat4(orientation),position);
Entonces en mi función de renderizado hago ..
pvm = projectionMatrix*viewMatrix*modelmatrix;
glUniformMatrix4fv(pvmMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(pvm));
.. y renderizar ...
esafortunadamente, el objeto solo orbita alrededor del origen cuando aplico una rotación (cuanto más lejos esté la "posición" del origen, mayor será la órbita).
Cuando aplico solo la posición, se traduce bien. Cuando aplico solo la rotación, permanece en el origen y gira alrededor de su centro (como se esperaba). Entonces, ¿por qué se vuelve extraño cuando los aplico a ambos? ¿Me estoy perdiendo algo básico?