1

那是问题:我目前在 OpenGL 眼睛空间中,现在我想制作一个黑色矩形来覆盖所有窗口区域。我怎样才能确定一个确切的 X、Y、Z 位置来做到这一点?

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

4

1 回答 1

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);
于 2012-12-03T18:03:36.437 回答