Это построение проекционной матрицы.glOrtho
умножает текущую матрицу, которая является единичной матрицей из-за предыдущего оператора, на матрицу ортографической проекции, заданную функцией.
В частности, этот вызов glOrtho
создает матрицу, которая будетмировые координаты (-1, -1, -1) в левом нижнем углу экрана и мировые координаты (1, 1, 1) в верхнем правом углу экрана.Поэтому, если бы вы нарисовали треугольник:
glBegin(GL_TRIANGLES);
glVertex3f(-1, -1, 0);
glVertex3f(-1, 1, 0);
glVertex3f(1, -1, 0);
glEnd();
Он бы охватил ровно половину экрана.
Обратите внимание, что если вы используете только 2D, то последние два параметра не являютсяэто важно (хотя они могут использоваться для управления слоями).Просто нарисуйте все с z = 0 , и если вам нужно поставить что-то перед чем-то другим, используйте более высокое значение z .