gpt4 book ai didi

OpenGL - 正交投影矩阵,glViewport

转载 作者:行者123 更新时间:2023-12-04 15:37:29 37 4
gpt4 key购买 nike

我很难理解这些是如何工作的。首先,在 2d 游戏中,投影矩阵应该设置为左、右、上、下与窗口匹配的正交投影矩阵,对吗?但是当窗口调整大小时,我应该只更改 glViewport,而不是投影矩阵吗?以及如何保持纵横比?

有人可以在二维拼字游戏中解释这两件事的目的,以便我更好地理解它吗?

感觉 OpenGL 在 2d 设置中做了很多无用的事情。当图像已经存在时光栅化和计算片段,将顶点坐标转换为 NDC 仅通过 glViewport 转换回它们已经存在的位置。

此外,为什么在传统的免费 OpenGL 中我们必须制作自己的矩阵,而不是 glViewport 所做的我们自己的计算?

谢谢。

最佳答案

不要混淆您输入到 GL 的内容和输出到的内容。

您用于计算正交矩阵的参数是与您的输入相关的参数。投影矩阵的输出始终是 [-1:1]x[-1:1]x[-1:1] 立方体。

视口(viewport)将该立方体转换为您的渲染目标坐标。所以这通常是您想要更改以匹配您的新窗口大小(嗯,那个和帧缓冲区本身)。

是的,GL 为 2D 渲染路径做了很多无用的事情。毕竟这是一个 3D API...

最后我要说的是,您不必构建矩阵来进行 2D 变换,只要您的顶点着色器在我之前提到的立方体中输出即可。如果你想写视口(viewport)的右上角,你总是可以直接将顶点传递为 (0,0) (0,1) (1,0) (1,1) 并简单地输出。

关于OpenGL - 正交投影矩阵,glViewport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3619936/

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