如何将平面设计为在任何窗口大小的视口中心
How to design a plane to be in the center of the viewport at any window size
我需要在OpenGL(c++,OS:windows)中绘制一个平面(使用GL_QUADS),使其与屏幕中心对齐。
我的意思是,在任何窗口调整大小时,原点都将位于平面的中心。
我知道我必须使用视口坐标和大小,但我无法配置如何使用它们。
此外,我正在使用gluPerspective
。
原点与窗口大小无关。调整窗口大小时,重新计算窗口的纵横比(window.width/window.height),并使用新的纵横比再次调用gluPerspective重置投影矩阵。
在此之后,只要您将LoadIdentity()gl加载到模型视图矩阵中,就应该能够使用在屏幕中心绘制一个四边形
glBegin(GL_QUADS);
glVertex3f(-.5f,.5f,-1);
glVertex3f(-.5f,-.5f,-1);
glVertex3f(.5f,-.5f,-1);
glVertex3f(.5f,.5f,-1);
glEnd();
这应该会在屏幕中央放置一个单位大小的四边形。
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渲染状态,如深度测试、着色等。很可能你会想关闭它。
相关文章:
- C++win32 API创建多个类似视口的窗口
- 使用C++在Qt3D中创建多个视口时出现问题
- 创建具有两个视口的Qt3D C++场景,其中显示适当的不同网格
- SDL2 调整窗口大小后如何缩放鼠标坐标?
- 如何设置与其背景图像大小相对应的窗口大小?
- 如何防止opengl绘图拉伸到窗口大小?
- 使用 Win32 将 GDI 绘制大小缩放为窗口大小
- 恢复Qt窗口大小和位置问题
- 与WM_DPICHANGED消息一起发送的建议窗口大小太大
- 快板获取当前窗口大小
- 尝试在虚幻引擎中通过C++添加视口时出错"No instance of overloaded function CreateWidget"
- 当窗口大小更改时,如何自动缩放QT中的图表
- 无法添加视口虚幻C
- 尝试在 win 32 中禁用窗口大小调整时,窗口样式行为不一致
- C++ GLUT 使对象在视口外消失
- OpenGL纹理闪烁/有时在窗口大小上移动
- 如何在 SDL2.0 OpenGL 中调整视口大小
- 在显示之前获取 QScrollArea 视口的大小
- 如何将平面设计为在任何窗口大小的视口中心
- 黑莓10中ScrollView的视口大小调整