zoukankan      html  css  js  c++  java
  • 视锥和投影矩阵,视口变换

    缩放与视域角有关

    投影的过程就是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

        

  • 相关阅读:
    Node js 入门指南(1)
    书单
    JavaScript
    Web框架的本质
    Linux运维面试(填空题)
    Ubuntu更换国内源
    动态路由-OSPF
    CentOS7安装桌面环境
    anaconda系统安装&kickstart文件
    Tomcat之分布式session共享(MSM)
  • 原文地址:https://www.cnblogs.com/wonderKK/p/2254914.html
Copyright © 2011-2022 走看看