glViewport () устанавливает область просмотра. То есть он устанавливает, в какую часть окна будет нарисована вся ваша геометрия. Обратите внимание, что он принимает целые числа (!!), а не числа с плавающей запятой только потому, что нам нужно быть точным в той части экрана, где будет выполняться рендеринг.
gluOrtho , как gluPerspective , glFrustrum e.t.c. используется для установки матрицы проекции .
Обратите внимание, что, хотя вы, возможно, и не используете gluOrtho2D () в своей программе, которую вы должны использовать, поскольку вам всегда нужно самим устанавливать перспективную проекцию.
РЕДАКТИРОВАТЬ : (исправлено с учетом указателей, указанных в комментариях)
Чтобы перевернуть всю сцену, предполагая, что это 2D, вы можете сделать это
glScalef(1,-1,1);
, который будет умножать текущую матрицу вида модели на матрицу масштабирования, эффективно переворачивая сцену вверх ногами.
Поскольку вам, похоже, нужна помощь в понимании использования матриц openGL, я хочу предоставить эти две ссылки, которые, я надеюсь, могут помочь:
Объясняет без математики
Объясняет немного больше математики