【发布时间】:2014-03-10 02:43:45
【问题描述】:
如何确定在现代 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 矩阵进行哪些更改?我了解矩阵数学,但不了解它与窗口坐标本身的关系。
谁能帮我理解这个?
【问题讨论】:
标签: opengl opengl-3 projection-matrix