1
如何确定我需要做什么变换来填充整个窗口现代 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矩阵做出什么样的改变?我理解矩阵数学,但不了解它与窗口坐标本身的关系。
任何人都可以帮助我理解这一点吗?
我从来没有能够正确的工作。为什么不这样做: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)显示上述坐标的正方形?谢谢! – foobar5512