那就是问题:我目前处于OpenGL眼睛空间,现在我想制作一个黑色矩形来覆盖所有窗口的区域。如何确定准确的X,Y,Z位置?
更新 或者有人可以告诉我,当我们有Z值时,如何确定窗口的X,Y(左上角)?
答案 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);