视锥和投影矩阵,视口变换

缩放与视域角有关

投影的过程就是xyz分量除以W的过程

可知投影在了z=1,的平面

上面的z是指乘以投影矩阵(剪裁矩阵)后的z

     

这里设上面这个DIP矩阵为A;

经过计算可知:

(在近裁剪面的点) (x,y,n,1)*A=(x*zoomx,y*zoomy,0,n)---->投影后为(x*zoomx/n,y*zoomy/n,0)

(在远裁剪面的点)    (x,y,f,1)*A=(x*zoomx,y*zoomy,f,f)---->投影后为(x*zoomx/f,y*zoomy/f,1)

乘以矩阵后的点满足了0<=z<=w。而且是两个边界。

这里的DIP矩阵就是投影矩阵。只不过投影过程要除以w分量来完成。

经过相机变换、投影变换后,视见体内所有的点都被投影到X[-1,1]、Y[-1,1]、Z[0,1]的范围,(不在视见体内的物体如果被投影的话会被投影在这个范围之外)

投影后z的值在区间[0,1]中。作为深度缓存?

注意最后一句话,投影后的z分量还是会被保留做z缓存用。

 投影后转换到屏幕空间的转换矩阵(视口变换矩阵)

    winResx/2,0,0,0

    0,-winResy/2,0,0

     0, 0,1,0

     winResx/2,winResy/2,0,1

    

原文地址:https://www.cnblogs.com/wonderKK/p/2254914.html