Я пытаюсь сделать матрицу WorldToView, и для этого мне нужно вычислить правые (r), up (u) и просмотреть векторы (v).
Я знаю, что глазной вектор eye(0,0,0)
и в векторе at(0,0,-1)
; затем:
v= normalise(at-eye);
вектор представления v будет (0,0, -1)
Как я могу получить R и U векторов?
Я знаю это:
r=normalise(v X u);
u=normalise(r X v);
Спасибо
В данный момент у вас недостаточно информации — вы не знаете, в какую сторону ориентирован ваш зритель, это может быть что угодно. Вы, вероятно, хотите указать вектор вверх, например, (0,1,0)
, а затем рассчитать r
используя уравнение.
Обратите внимание, для чего это стоит, что gluLookAt
функция GLU, которая делает эквивалент того, что вы пытаетесь сделать, принимает три параметра, а не два, а именно вектор глаз, вектор at и вектор вверх. Вам не хватает восходящего вектора, поэтому вы сталкиваетесь с трудностями.
Других решений пока нет …