使方形填充整个窗口

时间:2014-02-12 01:13:57

标签: 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); // 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);

具有相同的坐标。我现在在窗口中间的某处找到一个正方形。假设我没有更改投影矩阵,那么需要对View和Model矩阵进行哪些更改?我理解矩阵数学,但不了解它与窗口坐标本身的关系。

有人能帮我理解吗?

1 个答案:

答案 0 :(得分:0)

对于2D元素(如HUD),我通常设置一个ortographic矩阵,其中left = 0,right = width,bottom = 0,top = height其中width和height是窗口的大小。 znear = -1且zfar = 1。

然后你的矩形顶点将是0,0,宽度和高度。

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