透视校正插值(Perspective-Correct Interpolation)
Posted 八叶一刀·无仞剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了透视校正插值(Perspective-Correct Interpolation)相关的知识,希望对你有一定的参考价值。
在渲染器光栅化每个三角形的过程中,需要对根据顶点属性对三角形进行扫描线插值。此时由于投影面上顶点的2D坐标与顶点属性不成线性关系,因此是不能简单地使用线性插值来计算顶点属性的。
此时应当利用透视校正插值(Perspective-Correct Interpolation)来计算。
设3D空间中存在一条线段,它的两个端点为A和B,3D坐标分别为(x1,y1,z1)和(x2,y2,z2)。这两点投影到camera坐标系投影面的两点为a(p1,q1)、b(p2,q2)。那么:
设该线段之间存在一个三维点C(2D中我们用c来表示),它的三维和二维坐标分别为(x3,y3,z3)、(p3,q3),
c=(1-t)a+tb。则可以证明
1/z3=(1-t)*(1/z1)+t*(1/z2),
因为在网格模型中顶点属性与顶点的坐标值成线性关系,因此可以利用求出的z值来计算相应的顶点属性。
具体的推导可以件这两篇博客:
http://blog.csdn.net/popy007/article/details/5556639
http://blog.csdn.net/popy007/article/details/5570803
以上是关于透视校正插值(Perspective-Correct Interpolation)的主要内容,如果未能解决你的问题,请参考以下文章