Вектор ориентации камеры OpenGL из матрицы модель / вид
Я делаю небольшую игру, в которой я хочу бросить объект в направлении, с которым я сталкиваюсь. Проблема в том, что моя (камера) ориентация определяется матрицей модель / вид. И эта матрица снабжена системой (на устройстве Android).
Как я могу вычислить вектор, который будет служить вектором скорости для моего брошенного объекта?
Я пытался умножить некоторые векторы на матрицу, но результаты не дают мне понятия, как этого добиться.
Матрица содержит только вращательную часть (без масштабирования, перекоса или перевода).
Я работаю с OpenGL ES 1.1, но это, вероятно, не имеет значения.
После этого ответа я смог получить углы поворота вокруг каждой оси, но я до сих пор не знаю, как построить из нее свой вектор скорости.
РЕДАКТИРОВАТЬ: То, что я пытаюсь сделать, это повернуть матрицу модель / представление любым способом, и бросить объект, как я смотрю. Мне нужен объект, чтобы в итоге разогнаться до земли. У меня нет проблем с вычислением этой траектории, если я знаю точный вектор, с которым я (камера) сталкиваюсь.
Спасибо за любую помощь.
1 ответ
Первые 3 столбца матрицы вида модели являются основой системы координат вида. Так что все, что вам нужно, это 3-й столбец (или строка, в зависимости от того, переходите ли вы от камеры к миру или от мира к камере).