我需要在OpenGL(c ++,OS:windows)中绘制一个平面(使用GL_QUADS),以便它与屏幕中心对齐。
我的意思是在任何窗口调整大小时原点将位于飞机的中心。
我知道我必须使用视口坐标和大小,但我无法配置如何使用它们。
另外,我正在使用gluPerspective
。
答案 0 :(得分:2)
原点与您的窗口大小无关。调整窗口大小时,重新计算窗口的宽高比(window.width / window.height)并使用新方面再次调用gluPerspective重置投影矩阵。
在此之后,只要你将glLoadIdentity()放入模型视图矩阵中,就可以使用
在屏幕中心绘制四边形。glBegin(GL_QUADS);
glVertex3f(-.5f,.5f,-1);
glVertex3f(-.5f,-.5f,-1);
glVertex3f(.5f,-.5f,-1);
glVertex3f(.5f,.5f,-1);
glEnd();
这应该将单位大小的四边形放置在屏幕的中心。
答案 1 :(得分:1)
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glBegin(GL_QUADS);
glVertex3f(-.5f,.5f,-1);
glVertex3f(-.5f,-.5f,-1);
glVertex3f(.5f,-.5f,-1);
glVertex3f(.5f,.5f,-1);
glEnd();
glPopMatrix();
请注意,这仍然会使用您的所有3D渲染状态,例如深度测试,阴影等。很可能您会想要将其关闭。