我不明白glOrtho的用法。有人可以解释它的用途吗?

是否用于设置x y和z坐标限制的范围?

glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);

这意味着x,y和z范围是-1到1?

最佳答案

看看这张照片:Graphical Projections
c++ - 如何在OpenGL中使用glOrtho()?-LMLPHP
glOrtho命令产生一个“Oblique”投影,您可以在底行看到它。无论顶点在z方向上有多远,它们都不会退缩到该距离中。

每当我需要在OpenGL中进行2D图形处理时(例如健康栏,菜单等),我都会使用glOrtho
每次调整窗口大小时,使用以下代码:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f, windowWidth, windowHeight, 0.0f, 0.0f, 1.0f);

这会将OpenGL坐标重新映射为等效的像素值(X从0到windowWidth,Y从0到windowHeight)。请注意,由于OpenGL坐标从窗口的左下角开始,所以我已经翻转了Y值。因此,通过翻转,我从窗口的左上角开始获得了更常规的(0,0)。

请注意,Z值从0剪切到1。因此,当为顶点位置指定Z值时,请注意,如果Z值超出该范围,则会被剪切。否则,如果它在该范围内,则除Z测试外,对位置无影响。

关于c++ - 如何在OpenGL中使用glOrtho()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2571402/

10-09 01:33