Rasterizer
#
对物体做线性变换重心坐标不变. 比如正交投影到 xy 平面, 相当于面积缩放 n⋅z. 内部子三角形缩放相同, 即面积比例不变, 可用二维面积计算重心坐标. 数学证明:
T(x)T(P)=Mx+t, P=i∑bivi, i∑bi=1=M(i∑bivi)+t=i∑biMvi+(i∑bi)t=i∑biMvi+i∑bit=i∑bi(Mvi+t)=i∑biT(vi)透视投影含逐点除以w使得重心坐标不再恒定, 但透视除法之前的步骤为线性变换, 可通过分析透视除法前的系数关系得到透视矫正系数. 裁剪空间变换如下:
V~(P) = M(P,1) = i∑biM(Pi,1) = i∑biV~i裁剪空间w可用重心坐标插值, 将NDC坐标按透视除法的pi=(xi,yi)/wi分解:
p=∑jbjwj∑ibi(xi,yi)=∑jbjwj∑ibiwi⋅(xi,yi)/wi=i∑∑jbjwjbiwipi=i∑sipi基于si推导bi:
wisii∑wisibi=∑jbjwjbi=∑jbjwj∑ibi=∑jbjwj1=∑jsj/wjsi/wi