Я только начал читать начальные главы Blue Book и понял, что матрица проецирования может использоваться для изменения отображения нашей желаемой системы координат на реальные координаты экрана. Он может быть использован для сброса системы координат и изменить его от -1 до 1 на левой, правой, верхней и нижней следующим (в качестве примера)
Настройка системы координат для рисования в OpenGL
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); //With 1's in the diagonal of the identity matrix, the coordinate system is rest from -1 to 1 (and the drawing should happen then inside those coordinates which be mapped later to the screen)
Другой пример: (Ширина: 1024, Высота : 768, соотношение сторон: 1,33) и изменить систему координат, сделайте следующее:
glOrtho (-100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0, 100.0, 1000.0);
Я ожидал, что система координат для OpenGL, чтобы изменить -133 на левой стороне, 133 на правом, -100 на дне и 100 сверху. Используя эти координаты, я понимаю, что рисунок будет выполнен внутри этих координат, и что-либо вне этих координат будет обрезано.
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-100 * aspectRatio, 100 * aspectRatio, -100, 100, 100, 1000);
glMatrixMode(GL_MODELVIEW);
glRectf(-50.0, 50.0, 200, 100);
Однако вышеприведенная команда не дает мне никакого вывода на экран. Что мне здесь не хватает?
Вы не должны использовать устаревший API! В текущем API настройка системы координат сильно отличается (вы должны сделать это самостоятельно), а изучение устаревшего API - это пустая трата времени ИМХО. –
@FelixK. : Можете ли вы указать последний правильный путь здесь. Я даже не уверен, что это такое. – user1240679
Возможно, вы не установили цвет. Я бы порекомендовал сделать некоторый учебник для OpenGL 3 или более поздней версии, чтобы повесить вещи. –