如何确定在现代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);
具有相同的坐标。我现在会在窗口中间的某个地方得到一个正方形。假设我不更改投影矩阵,需要对视图和模型矩阵进行哪些更改?我了解矩阵数学,但不了解它与窗口坐标本身的关系。
谁能帮我理解这一点?