Я пытаюсь понять создание пробелов в OpenGL:
-
Объектное пространство
-
Мировое пространство
-
Камера
-
Проецируемое пространство
Правильно ли я понимаю эти этапы?
-
"Куб" создается в центре декартовой системы координат, непосредственно внутри программы, набирая координаты вершин.
-
Координаты преобразуются в координаты внутри "мира", что означает перемещение в любое место на экране.
Хорошо, на самом деле я хотел бы, чтобы вы проверили мое понимание этих двух терминов.
Теперь я создаю треугольник на черном экране. Как код openGL подходит для этих пространств?
Он по умолчанию работает на флажке GL_MODELVIEW
, но на втором этапе - мировом пространстве. Означает ли это, что вызов glVertex3f()
создает треугольник в пространстве объектов?
Где находится космическая часть мира?
Кроме того, я прочитал, что последние два пробела не являются частью конвейера openGL (или каким бы то ни было).
Однако OpenGL содержит такие флаги, как GL_PROJECTION
, например:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, w, h); // w - width, h - height
gluPerspective(45, ratio, 1, 100); // radio = w/h
glMatrixMode(GL_MODELVIEW);
Что делает этот код? Он устанавливает перспективу. Создает ли он ось z? Но разве это уже часть пространства объектов?