gpt4 book ai didi

math - 在 OpenGL 中,如何确定给定深度的 View 边界

转载 作者:行者123 更新时间:2023-12-01 06:51:05 25 4
gpt4 key购买 nike

我正在玩 OpenGL,我有一个问题,我无法找到答案,或者至少没有找到询问搜索引擎的正确方法。我有一个非常简单的设置。一个 800x600 的视口(viewport)和一个具有 45 度视野以及 1.0 和 200.0 的近平面和远平面的投影矩阵。为了便于讨论,模型 View 矩阵是单位矩阵。

我试图确定的是给定深度的 View 边界。例如,(0,0,0) 是屏幕的中心。我正在寻找-Z方向。

我想知道,如果我在屏幕上 100 个单位(0,0,-100)的平面上绘制几何图形, View 的边界是什么?我可以在这个平面上在 x 和 y 方向上绘制多远,并且几何图形仍然可见。

更一般地说,给定一个平行于近平面和远平面(以及它们之间)的平面,该平面的可见边界是什么?

另外,如果我要确定的内容具有通用名称或通用操作,那么它叫什么?这样我可以找到更多的阅读 Material

最佳答案

你的视角是 45 度,你有一个距离相机 a 的平面,高度为 h。整个事情看起来像这样:
Diagram
请注意,此处的角度是您视野的一半。

掸掉高中数学书,我们得到:

tan(angle) = h/a

重新排列 h 并代入半视野:
h = tan(FieldOfView / 2) * a;

这是您的平面沿 Y 轴向上延伸的程度。

由于屏幕不是方形的,因此平面的宽度与高度不同。更准确地说,宽度是纵横比乘以高度。 IE。 w = h * aspectRatio
我希望这回答了你的问题。

关于math - 在 OpenGL 中,如何确定给定深度的 View 边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6653080/

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