Opengl 使正方形填满整个窗口

Opengl 使正方形填满整个窗口,opengl,opengl-3,projection-matrix,Opengl,Opengl 3,Projection Matrix,如何确定在现代OpenGL中使正方形填充整个窗口所需的变换。比如说,我有一个800 x 600的窗口,两个三角形的顶点的坐标从-1和1延伸。如果没有任何类型的转换,这些坐标将填充一个800 x 600的窗口,因为OpenGL的坐标从-1扩展到1。但是,如果我想使用标准MVP转换呢?我如何确定需要做什么才能填满整个窗口。考虑这个代码: glm::mat4 projectionMatrix = glm::perspective(60.0f, 4.f/3.f, 0.1f, 100.0f); // gl

如何确定在现代OpenGL中使正方形填充整个窗口所需的变换。比如说,我有一个800 x 600的窗口,两个三角形的顶点的坐标从-1和1延伸。如果没有任何类型的转换,这些坐标将填充一个800 x 600的窗口,因为OpenGL的坐标从-1扩展到1。但是,如果我想使用标准MVP转换呢?我如何确定需要做什么才能填满整个窗口。考虑这个代码:

glm::mat4 projectionMatrix = glm::perspective(60.0f, 4.f/3.f, 0.1f, 100.0f); // gluPerspective equivalent for those who may not know about glm
glm::mat4 viewMatrix = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -5.0f));;
glm::mat4 modelMatrix = glm::mat4(1.0f);
用相同的坐标。我现在在窗子的某个地方找到一个正方形。假设不更改投影矩阵,则需要对视图和模型矩阵进行哪些更改?我了解矩阵数学,但不了解它与窗口坐标本身的关系

有人能帮我理解吗?

对于2D元素(如HUD),我通常设置一个ortographic矩阵,左=0,右=宽度,下=0,上=高度,其中宽度和高度是窗口的大小。znear=-1和zfar=1

然后,矩形顶点的宽度和高度分别为0、0和0


这就是你想要的吗?我不知道为什么要对填充屏幕的矩形使用透视矩阵。

我一直无法让ortho工作。为什么不这样做:glm::mat4 projectionMatrix=glm::ortho(0.f,800.f,0.f,600.f,-1.f,1.f);glm::mat4 viewMatrix=glm::translate(glm::mat4(1.0f),glm::vec3(0.0f,0.0f,0.0f));;glm::mat4 modelMatrix=glm::mat4(1.0f)是否显示具有上述坐标的正方形?谢谢