При использовании glFrustum,
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1, 1, -1, 1, 0.1, 1000.0);
glLoadMatrxi(GL_MODELVIEW);
glBegin(GL_QUADS); //A room's left wall
glVertex3f(-1.0, 1.0, 0.0);
glVertex3f(-1.0, 1.0, -0.4);
glVertex3f(-1.0, -1.0, -0.4);
glVertex3f(-1.0, -1.0, 0.0);
glEnd();
Все мои рисунки происходят в -1, 1 (обратите внимание на приведенный выше фрагмент для // левой стены комнаты), т.е.
ось X: -1 становится левой, 1 становится правой с исходной точкой в центре.
Ось Y: 1 становится верхним, а -1 становится правым с началом в центре.
Меняет ли glFrustum мои координаты на [-1,1] автоматически?
Обычно я рисовал бы куб с указанием координат экрана следующим образом:
например: ofBox(512,384,0,10)
дает мне поле в центре экрана [ширина окна: 1024, высота окна: 768]
Что, если я хочу продолжать рисовать, как обычно, в своих пиксельных координатах, и не хочу усложнять себе задачу, пытаясь преобразовать рисование пиксельных координат в нормализованные координаты, даже если я использую glFrustum
?