视锥和投影矩阵,视口变换
缩放与视域角有关
投影的过程就是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