GLM вращаться и перевод - PullRequest
       8

GLM вращаться и перевод

0 голосов
/ 03 сентября 2018

У меня есть mat4 под названием model. Я хочу, чтобы мой куб вращался вокруг позиции. Я могу нормально вызвать glm::rotate(mat4, angle, vec3) и заставить его вращаться в своем начале.

void Object::Update(unsigned int dt)
{
  angle += dt * M_PI/1000;
  model = glm::rotate(glm::mat4(1.0f), (angle), glm::vec3(0.0, 1.0, 0.0));
  model = glm::translate(glm::mat4(1.0f), glm::vec3(0.5f, -0.5f, 0.0f));
}

К сожалению, мой куб застыл на месте, когда я добавляю вызов glm::translate после поворота. Я что-то упускаю из виду?

1 Ответ

0 голосов
/ 03 сентября 2018

Вы должны передать ему результат вращения в качестве исходной матрицы: model = glm::translate(model, glm::vec3(0.5f, -0.5f, 0.0f));. В противном случае вы переустанавливаете и переводите матрицу идентичности, которая полностью перезапишет ваше вращение.

...