https://haqr.eu/tinyrenderer/barycentric/
总体来看这部分做的事情是:从“判断像素在不在三角形里”,升级到“知道像素在三角形里的相对位置,并用这个位置去插值属性”。也就是说我们知道 $P, A, B, C$, 现在要求的是系数 $\alpha, \beta, \gamma$。本质上和基向量表示其他向量是一回事。
$$ P = \alpha A + \beta B + \gamma C , \quad \alpha + \beta + \gamma = 1. $$
假设有一条线段,两个端点是 $A, B$,段上的任意点 $P$ 都可以写成下面形式,换言之对于任意给定的点 $P$ 和线段 $AB$ , $\alpha$ 和 $\beta$ 的值都是唯一的。(这听起来好像说了一句废话)
$$ P = \alpha A + \beta B , \quad \alpha + \beta = 1. $$
$$ P = (1 - t) A + tB $$
一维空间中需要两个点计算质心,二维空间中则需要一个三角形 (梦回 Berkeley CS 184/284A)


Barycentric coords linearly interpolate values at vertices
怎么推导看 PDF:https://cs184.eecs.berkeley.edu/sp25/assets/lectures/05-texture.pdf
另外,几何直觉秒了。 (话说图像是我们身体渲染出来的,几何方法的”厉害”某种程度上其实只是瞥见我们自身秘密的一隅。论计算能力人类身体奇迹般强大,只是我们的表层意识不知道该如何使用。)


https://github.com/qiekn/tinyrenderer-jai/blob/main/031_barycentric_coordinates_color.jai
