Как получить новый вектор направления камеры при перемещении произвольного относительного угла
Вопрос
Я реализую класс камеры и застрял с некоторыми вещами
Давайте предположим, что камера находится в точке (0,0,0), глядя на определенное направление со своими соответствующими и правыми векторами.
У меня есть управление джойстиком, которое позволяет вам идти вперед назад или изменить ориентацию путем перемещения (левого правого) или (вверх-вниз), согласно вышеупомянутым векторами.
Как я могу узнать, учитывая 3 вектора, что является результирующим направлением вектора, если например, я хочу переместить N градусов прямо ??
Решение
Если вы говорите о вращении вашей камеры, вот как это сделано: каждое вращение представляет собой матрицу, которая преобразует координаты, поэтому все, что вам нужно сделать, это рассчитать матрицу вашего вращения, а затем применить его к Dir, вверхи правые векторы вашей камеры, чтобы получить новые после ротации.
Вот немного читает о матрицах вращения (прочитайте раздел 3D вращений): http://mathworld.wolfram.com/rotationmatrix.html