glOrtho似乎没有效果

时间:2014-10-24 16:55:20

标签: opengl

我正在绘制一个坐标为(-.5, -.5), (-.5, .5), (.5, .5), (.5, -.5)的正方形,我注意到它在我的800 x 600窗口中被压扁了(看起来完全合乎逻辑)。

我试图修复它,使广场看起来是正方形,而不是矩形。我的方法是使用glOrtho()left = -arright = arbottom = -1来调用top = 1,其中ar是我的宽高比({{1} }})。我发现,我对800/600所做的任何调用都没有效果,包括我已经制作的那个(我可以删除它,什么都不会改变)。

我对glOrtho()的理解是它将OpenGL上下文的角映射到提供的值,并在这些点之间拉伸所有内容以适应。这是不正确的,还是我正在做一些阻止我glOrtho()号召唤生效的事情?

glOrtho()

1 个答案:

答案 0 :(得分:4)

啊 - 您的问题是,在调用glLoadIdentity后,您正在调用glOrtho glLoadIdentity 使用单位矩阵替换当前模式(GL_PROJECTION)中的矩阵,从而消除之前对glOrtho的任何调用。

尝试在glLoadIdentity之前调用glOrtho