在使用 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 中(注意上面的//A room's left wall 的片段),即
X 轴:-1 变成左边,1 变成右边,原点在中心。
Y 轴:1 成为顶部,-1 成为右侧,原点在中心
glFrustum 会自动将我的坐标更改为 [-1,1] 吗?
通常,我会通过指定屏幕坐标来绘制一个立方体,如下所示:
例如:ofBox(512,384,0,10)
在屏幕中心给我一个框[窗口宽度:1024,窗口高度:768]
如果我想在我的像素坐标中正常绘制并且不想通过尝试从像素坐标绘图转换为规范化坐标(即使我使用)而使事情变得复杂,该怎么glFrustum
办?