一、近平面和远平面的存在原因和比例运算:
发现有相当多的OpenGL教程都没有把透视投影中为何有“远平面”和“近平面”这两个概念进行解释。其实这和人眼成像的原理有关,透视原理就是模拟屏幕作为一双眼睛如何观察物体的一套规则。
为了简化分析,我们把眼球简化为它的剖面——圆, 将本为曲面的视网膜简化为一个平面,即可得到如图所示的眼球模型。为了方便,我们把视网膜翻转180度成为近平面(near)。从图可知,由于小孔成像原理,同样的点p2,距离越远,p2和视点之间的连线,与near的中垂线越接近。反之则越原理,从而形成了3个规律:
1、近大远小。
2、物体x,y坐标不变,但随着距离z加深,物体最终在near平面的透视投影越来越接近near平面的中垂线
3、随着物体距离z的增加,就像杠杠或者齿轮组一样,需要移动更多的距离,才可以在near平面中引起与之前较短距离时的偏移量
将此规律写成矩阵形式就是(只看截图左边这个就行了):
当物体的坐标点,乘以矩阵中的系数,即可把物体原本的坐标点,通过以上规则映射为near近平面中的点,从而实现投射投影的视觉效果。