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

dnph8jn4  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(119)

这就是问题所在:我目前在OpenGL的眼睛空间,现在我想做一个黑色的矩形,以涵盖所有窗口的面积。我如何确定一个准确的X,Y,Z的位置来做到这一点?

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

pb3s4cty

pb3s4cty1#

你可以试着计算一个完全适合相机的矩形,然后从那里开始。要做到这一点,你需要考虑投影矩阵并计算逆矩阵。
然而,有一个更简单的方法。你所要做的就是临时改变相机,这样你就知道如何绘制矩形了。一个足够简单的相机是默认的正交相机,有简单的限制(从-1到1)。下面的方法可以做到这一点:

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

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

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);

相关问题