Скажем, ваш объект движется в направлении D, тогда все, что вам нужно сделать, это найти вектор, перпендикулярный этому направлению. Если ваше движение происходит только в одной плоскости, вы можете найти этот вектор E, взяв перекрестное произведение D с плоскостью, нормальной N.
E = D × N
Это дает вам 3 вектора D, E и N. После нормализации они образуют основу повернутой системы координат. Вы можете поместить их в столбцы матрицы 3 × 3
D_x E_x N_x
D_y E_y N_y
D_z E_z N_z
расширить эту матрицу до 4 × 4 однородной
D_x E_x N_x 0
D_y E_y N_y 0
D_z E_z N_z 0
0 0 0 1
и вы можете передать его в OpenGL с помощью glMultMatrix, чтобы применить его к стеку матриц.