Как рассчитать правильный вектор направления из дельта-ролла?

Учитывая переменную _roll и текущий правый вектор направления, как рассчитать новый правый вектор при вращении объекта (в данном случае камеры)?

// Calculate right.  Rotate right vector by yaw.
glm::vec3 right = glm::vec3(glm::eulerAngleY(_yaw) * glm::vec4(1.0f, 0.0f, 
0.0f, 1.0f));

// Rotate right vector by roll
right = glm::vec3(glm::eulerAngleZ(_roll) * glm::vec4(right, 1.0f));

// Normalize right
right = glm::normalize(right);

Выше мое нынешнее мышление, рыскание работает нормально, однако бросок, кажется, дает особые результаты. Я что-то пропустил?

Изменить: После некоторых экспериментов я также обнаружил, что:

  • Роллинг работает только при взгляде прямо вверх или вниз по оси Z.
  • Пока я переворачиваюсь, используя существующий метод высоты тона, я делаю тональность, а не саму камеру.

0 ответов

Другие вопросы по тегам