сделать изометрическую проекцию в openGL. Нагуглил такой способ.
Нужно матрицу view сделать glLookAt( eye, lookat, up);
И в примере показывают такие цифры.
eye = (1,1,1)
lookat = (0,0,0)
up = (0,1,0).
Но насколько я понимаю, как раньше в этом ресурсе объясняли, up — это вектор который показывает вверх грубо говоря. Но если мы стоим в точке 1,1,1 и смотрим в точку 0,0,0. У нас же получается камера должна быть наклоена немного и 0,1,0 уже не может быть вектором который показывает вверх.
Или я в чём-то неправ в своих размышлениях?
glOrtho + glRotate + glTranslate, больше ничего не нужно
закопай обратно
шта?
ну наверн он хочет прокидывать матрицы вручную в шейдоры
не очень вас понял. Орто это просто паралельные проекции без учёта глубины ( перспективы) А то что я хочу сделать изометрию, означает что мне надо орто проекция, но и угол правильный еще
Не, ну это то правильно, да. Но намного лучше было бы вывести сами эти матрицы и показать
Да не, всё правильно. Просто это получается нужно камеру сверху повестить над картой и смотреть под нужным углом и всё. Ну и тип камеры выбрать перспективная или ортографическая
да, но если я стою в точке 1,1,1, и смотрю в точку 0,0,0 то камера получается наклонена и 0,1,0, уже не вектор который определяет что такое у меня верх, правильно. Какой тогда смысл у этого вектора. Или может я где-то ошибаюсь
Ошибаешься, вектор как был направлен вверх, так и остаётся
но мы же наклонили камеру. Разве up наклоняется не вместе с ней?
Обсуждают сегодня