重心坐标(barycentric coordinates)是用三角形三个顶点的权重来描述平面内任意一点的方法。给定三角形顶点 A、B、C,平面上任意一点 P 可以写成:
P=αA+βB+γC,α+β+γ=1
其中 (α,β,γ) 就是点 P 的重心坐标,它是 线性插值 在三角形上的推广:三个权重构成一次加权平均。
几何上,每个权重等于对应对边所夹子三角形的面积比:
α=S△ABCS△PBC,β=S△ABCS△PAC,γ=S△ABCS△PAB
由此可以直接判断点的位置:
- 三个权重都在 [0,1] 内 ⇔ 点在三角形内部(或边界上)
- 某个权重为负 ⇔ 点在三角形外部
在光栅化中,片元的颜色、法线、UV 等属性就是三个顶点属性的重心加权和:
f(P)=αf(A)+βf(B)+γf(C)
注:对于 w=1 的 齐次坐标,直接对顶点属性进行重心插值会得到非线性的结果,需要先做透视除法再进行插值。