为什么不在投影除法后裁剪

在齐次空间对顶点和线裁剪是如今图形学管线进行裁剪的标准做法。一个世界坐标系下点经过观察变换后会映射到屏幕空间,在这其中会经过如下的矩阵变换:世界坐标系到相机坐标系的变化,相机坐标系下的透视投影变换到规范化空间,然后从规范化空间变换到屏幕空间。其中,裁剪就发生在透视投影变化之后,但在透视除法之前。先简单解释透视投影透视除法: 
透视投影指经过透视变化矩阵之后的得到齐次坐标; 
透视除法指将透视投影得到的齐次坐标转化为三维坐标,即除以齐次分量,经过透视除法的点才是在规范化裁剪立方体中的点。 
       为什么不在投影除法后裁剪呢?为了简单起见,取投影参考点是观察坐标原点,近裁剪平面是观察平面的透视变化矩阵: 

M=cot(θ2)aspect0000cot(θ2)0000znear+zfarznearzfar1002znearzfarznearzfar0

       其中 θ  是相机的视角, aspect 是近裁剪平面的纵横比, znear zfar 分别是近裁剪平面和远裁剪平面。 
       对于相机坐标系下的任意一点  P(x0,y0,z0,1) ,经过该矩阵变化后得到 P1=MP0 P1 的坐标为 (x1,y1,z1,w) 。从该矩阵中可以看到 z1=sz0+t ,其中 s=znear+zfarznearzfar t=2znearzfarznearzfar ,可以看到 s t 都是常数,所以 z1 z0 之间是线性关系,同理 x1 x0 y1 y0 都是线性关系。 w=z0 。如果此时对 P1 进行透视除法,得到 P1=(x1,y1,z1,w)=(x1/wy1/w,z1/w,1) ,此时 x1 与原 x0 之间不再是线性关系, x1 是以 x0 z0 为变量的函数。如果在透视除法后进行裁剪,那么将不能运用线性插值,否则很多在原来坐标系中的存储信息将会变形,比如:纹理、颜色等。所以,一般直接在齐次空间中做裁剪,在该空间中进行裁剪可以直接用线性插值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值