现实里没有真正的「点」光源,所有光都有形状——灯泡、灯管、窗户。点光源(punctual light)对图形学很友好,一个位置加一个强度就完事,但它并不真实,也拟合不了现实光照。这篇讲两类光源在 PBR 里怎么建模:点光源的衰减处理,以及面积光的几种主流近似。
点光源:给平方衰减加个窗
真实光照强度按距离平方衰减:
问题是这个函数永远到不了 0。渲染时我们负担不起「每个光源影响全场」的开销,需要一个明确的作用半径,超出就不算。
常见做法是给衰减函数加窗(windowed falloff):让美术指定一个半径 r,光强在 r 处平滑归零,而大部分区间的形状保持不变。UE4 用的窗函数是: