gpt4 book ai didi

c++ - 如何在 OpenGL 中使用 glOrtho()?

转载 作者:IT老高 更新时间:2023-10-28 12:04:35 27 4
gpt4 key购买 nike

我无法理解 glOrtho 的用法。有人能解释一下它的用途吗?

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

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

表示x、y、z的范围是-1到1?

最佳答案

看看这张照片:Graphical Projections enter image description here

glOrtho 命令产生一个“倾斜”投影,您可以在底行看到。无论顶点在 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)。请注意,我翻转了 Y 值,因为 OpenGL 坐标从窗口的左下角开始。所以通过翻转,我得到一个更传统的 (0,0) 从窗口的左上角开始。

请注意,Z 值是从 0 到 1 裁剪的。因此,当您为顶点位置指定 Z 值时要小心,如果它超出该范围,它将被裁剪。否则,如果它在该范围内,除了 Z 测试之外,它似乎对位置没有影响。

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com