OpenGL透视投影

OpenGL透视投影详解

OpenGL透视投影简介

我们到了 3D 图形的特征点 - 从 3D 世界投影到 2D 平面,同时保持深度。一个很好的例子是铁路的形象,去远处成为一个点。

我们将找到一个满足上述要求的转换,我们还有另一个附加条件:我们希望将其呈现为"分层",如果快船的生活更轻松,则需要将坐标转换为 -1 到 +1 的屏幕空间。这意味着快船将做它的工作,而不必担心屏幕空间和近距离和远端的位置。

透视投影将接受我们 4 个参数:

纵横比 - 投影将投影的矩形区域的宽度和高度之间的系数。
垂直视野:摄像机的视角,通过它我们可以看到世界。
平面的近 Z 位置。允许我们裁剪离相机太近的对象。
平面远 Z 的位置。允许我们裁剪离相机太远的对象。
纵横比变得至关重要,因为我们要表示规范化空间中的所有坐标,其宽度等于其高度。由于这种情况在监视器中相当罕见,通常宽度大于高度,因此我们需要某种"凝结"水平线上的点而不是垂直线。这将使我们能够在配给空间中按 X 分量挤出更多点,最终允许在宽度上比在高度上"看到"更多点。

垂直的视野将使我们能够扩大和缩小世界。让我们看一下下面的示例。在左边的图片中,视角更大,使对象更小,在右边的图像中,角度更小,从而增加对象。请注意,这会影响相机的位置,使其更直观一点。在右侧(我们以较小的视角放大),相机需要更远,在左侧,它更接近投影平面。虽然,请记住,没有区别,因为我们将投影坐标转换为屏幕,因此相机的位置并不重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源代码大师

赏点狗粮吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值