透视纹理映射

我的理解

投影前坐标(x,y,z)

投影后坐标(x',y',z')

x',y'和1/z成线性关系。

s,t和z成线性关系。

s/z,t/z和z‘成线性关系。

z'和z成a/z+b关系。

纹理坐标是把s*z',t*z'按x’,y'插值后,再除以z'。

原贴地址:http://blog.csdn.net/popy007/article/details/5570803

部分节选:


齐次坐标

这样,向量和点在同一个基下就有了不同的表达:3D向量的第4个代数分量是0,而3D的第4个代数分量是1。像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。


神秘的Z

z写成

 

有三个原因:


 0)后面投影之后的光栅化阶段,要通过x'和y'对z进行线性插值,以求出三角形内部图元的z,进行z缓冲深度测试。在数学上,投影后的x'和y',与z不是线性关系,与1/z才是线性关系。而正是1/z的线性关系,即-a+b/z。用这个1/z的线性组合值和x'、y'进行插值才是正确的。(2013年11月补充条目。对此感到迷惑的读者可以参考《深入探索透视纹理映射》,里面从细节上说明了这个问题。)


1)  P’3个代数分量统一地除以分母-z,易于使用齐次坐标变为普通坐标来完成,使得处理更加一致、高效。

2)  后面的CVV是一个x,y,z的范围都为[-11]的规则体,便于进行多边形裁剪。而我们可以适当的选择系数ab,使得这个式子在z = -N的时候值为-1,而在z = -F的时候值为1,从而在z方向上构建CVV


纹理映射

我们发现s/zt/zx’y’也是线性关系。而我们之前知道1/zx’y’是线性关系。则我们得出新的思路:对1/z关于x’y’插值得到1/z’,然后对s/zt/z关于x’y’进行插值得到s’/z’t’/z’,然后用s’/z’t’/z’分别除以1/z’,就得到了插值s’t’




转载于:https://my.oschina.net/chunquedong/blog/184978

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值