gpt4 book ai didi

opengl - 现代 OpenGL 中的正交投影

转载 作者:行者123 更新时间:2023-12-04 19:49:16 27 4
gpt4 key购买 nike

我想仅使用现代 OpenGL 技术(即没有即时模式的东西)来设置正交投影。我在网络上看到有关如何处理此问题的相互矛盾的信息。

有些人说调用 glMatrixMode(GL_PROJECTION) 然后调用 glOrtho 仍然可以。这在过去一直对我有用,但我想知道现代 OpenGL 是否已弃用它。

如果是这样,顶点着色器是现在进行正交投影的标准方法吗? GLSL 是否提供方便的内置函数来设置正交投影,或者我是否需要自己在顶点着色器中编写该数学?

最佳答案

If so, are vertex shaders the standard way to do an orthographic projection nowadays?

不完全是。顶点着色器执行计算,但变换矩阵通常通过统一输入着色器。着色器应该只评估随每个顶点而变化的事物。实现“正交”函数,在 GLSL 中返回投影矩阵会适得其反。

I'd like to set up an orthographic projection using only modern OpenGL techniques (i.e. no immediate-mode stuff). I'm seeing conflicting info on the web about how to approach this.

OpenGL 3之前的矩阵栈与立即模式无关。立即模式是 glBegin(...);为了(…){ ...; glVertex(…);} glEnd()。在 OpenGL 版本 3 之前,在顶点着色器中使用通过矩阵堆栈指定的矩阵是相当普遍的。

OpenGL-3 的目标是实现 OpenGL-2 最初计划的目标:统一 API 并删除旧的垃圾。其中一个被移除的东西是矩阵堆栈。无论如何,许多着色器已经使用了比标准矩阵更多的东西(例如骨骼动画),因此矩阵已经作为制服传递,并且程序确实已经包含了整个矩阵数学代码。从 OpenGL-3 中移除矩阵数学内容只是下一个合乎逻辑的步骤。

关于opengl - 现代 OpenGL 中的正交投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8453310/

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