glm combina rotação e tradução
Eu tenho um objeto que primeiro quero girar (sobre o próprio centro) e depois traduzi-lo para algum ponto. Eu tenho um glm :: quat que mantém a rotação e um glm :: vec3 que mantém o ponto para o qual precisa ser traduzido.
glm::vec3 position;
glm::quat orientation;
glm::mat4 modelmatrix; <-- want to combine them both in here
modelmatrix = glm::translate(glm::toMat4(orientation),position);
Então na minha função de renderização eu faço ..
pvm = projectionMatrix*viewMatrix*modelmatrix;
glUniformMatrix4fv(pvmMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(pvm));
.. e renderiza ...
nfelizmente, o objeto orbita a origem quando aplico uma rotação (quanto mais distante a "posição" da origem, maior a órbita
Quando aplico apenas a posição que traduz bem. Quando aplico apenas a rotação, ela permanece na origem e gira em torno do centro (como esperado). Então, por que fica estranho quando eu aplico os dois? Estou perdendo algo básico?