В OpenGL есть два основных матричных режима (есть два других, но вам, вероятно, не нужно беспокоиться о них), это GL_MODELVIEW
и GL_PROJECTION
.Вместе они определяют, как opengl преобразует вершины, которые вы вставляете, в визуалы, которые вы получаете.Когда вы недавно позвонили glMatrixMode(GL_MODELVIEW)
, вы будете изменять то, как ваши точки будут перемещаться в пространстве, вы можете заставить все свои точки переводиться с помощью glTranslatef
, вращаться с glRotatef
и так далее.Когда вы позвоните glMatrixMode(GL_PROJECTION)
, вы будете изменять способ проецирования ваших очков на экран.Это режим, в котором вы хотите быть, чтобы вызывать такие вещи, как gluPerspective
или glOrtho
.
Обычно переход в режим проекции перед настройкой каждого основного шага рисования (основной сцены, графического интерфейса пользователя и т. Д.)матрицы проекций, затем переключитесь в режим просмотра модели до следующего.Таким образом, вы можете оставить свою проекцию неизменной, пока вы меняете трансформации сцены, перемещая камеру, изменяя положение объектов и т. Д.