我正在玩OpenGL,我有一个问题,我无法找到答案,或者至少没有找到正确的方式来询问搜索引擎.我有一个非常简单的设置.800x600视口和投影矩阵,具有45度视野,近和远平面为1.0和200.0.为了便于讨论,模型视图矩阵是单位矩阵.
我想要确定的是给定深度的视图边界.例如,(0,0,0)是屏幕的中心.我正朝-Z方向看.
我想知道,如果我在平面上绘制几何图形100个单位进入屏幕(0,0,-100),视图的界限是什么?我可以在此平面中在x和y方向上绘制多远,并且几何图形仍然可见.
更一般地说,给定一个平行于近平面和远平面(以及它们之间)的平面,该平面的可见边界是什么?
此外,如果我想要确定的是一个共同的名称或是一个常见的操作,它叫什么?这样我就可以追踪更多的阅读材料
Han*_*esh 10
你的视角是45度,你有一个距离相机一个距离的平面,有一个未知的高度h.整件事看起来像这样:
请注意,此处的角度是视野的一半.
除了高中数学书籍,我们得到:
tan(angle) = h/a
Run Code Online (Sandbox Code Playgroud)
重新排列h并替换半视野:
h = tan(FieldOfView / 2) * a;
Run Code Online (Sandbox Code Playgroud)
这是您的平面沿Y轴向上延伸的程度.
由于屏幕不是方形,因此平面的宽度与高度不同.更确切地说,宽度是纵横比乘以高度.即w = h * aspectRatio
我希望这回答了你的问题.