在OpenGL中,相机的视锥体定义了可见的场景空间范围。视锥体由近裁剪面和远裁剪面组成,它们分别定义了相机能够看到的最近和最远的距离。
当相机看到z=-1或z=0时,这意味着这些点位于近裁剪面上或者稍微远离近裁剪面。因为近裁剪面是相机视锥体的一部分,所以相机可以看到这些点。
然而,当相机看不到z=-2时,这意味着这个点位于远离远裁剪面的位置。远裁剪面定义了相机能够看到的最远距离,超出这个距离的点将不可见。
这种行为是因为OpenGL使用透视投影来模拟相机的视觉效果。透视投影会将场景中的点从三维空间映射到二维屏幕上,同时考虑到距离的因素。远离相机的点在透视投影中会被压缩到屏幕上的较小区域,超出远裁剪面的点将被裁剪掉,因此无法看到。
总结起来,相机能够看到的点取决于其位置相对于近裁剪面和远裁剪面的位置。只有位于这两个裁剪面之间的点才会被渲染到屏幕上。
领取专属 10元无门槛券
手把手带您无忧上云