如何在OpenGL中确定一个全窗口矩形

时间:2012-12-03 17:24:27

标签: opengl

那就是问题:我目前处于OpenGL眼睛空间,现在我想制作一个黑色矩形来覆盖所有窗口的区域。如何确定准确的X,Y,Z位置?

更新 或者有人可以告诉我,当我们有Z值时,如何确定窗口的X,Y(左上角)?

1 个答案:

答案 0 :(得分:4)

你可以尝试计算一个完全适合相机的矩形并从那里开始。要做到这一点,您需要考虑投影矩阵并计算逆。

然而,有一种更简单的方法。您所要做的就是暂时更换相机,以便准确了解如何绘制矩形。一个简单的相机是默认的正交相机,具有简单的限制(从-1到1)。以下是:

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdendity();

glBegin(GL_QUAD);
glVertex2f(-1.f, -1.f);
glVertex2f(1.f, -1.f);
glVertex2f(1.f, 1.f);
glVertex2f(-1.f, 1.f);
glEnd();

glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);