多光源重要性采样技术解析
1. 概率性 BVH 遍历
在遍历加速数据结构时,目标是选择能引导我们找到对当前着色点贡献最大的光源的节点,每个光源被选中的概率与其贡献成正比。贡献取决于多个参数,可使用参数的近似值或精确值,并尝试不同组合以优化质量和性能。
- 距离(Distance) :计算着色点与所考虑节点的 AABB 中心之间的距离。若节点的 AABB 较小,更倾向于选择靠近着色点的节点(进而靠近的光源)。但在 BVH 的前几层,节点的 AABB 较大,包含场景的大部分,不能很好地近似着色点与节点内某些光源的实际距离。
- 光通量(Light Flux) :节点的光通量计算为该节点内所有光源发出的光通量之和。为提高性能,在构建 BVH 时会预先计算。若某些光源的光通量随时间变化,由于光通量也用于引导构建步骤,可能需要重建 BVH。
- 光方向(Light Orientation) :之前的选择未考虑光源的方向,可能会对直接照射着色点的光源和背对着色点的光源给予相同权重。为此,引入了一个额外项到节点的重要性函数中,保守估计光法线与从节点 AABB 中心到着色点的方向之间的角度。
- 光可见性(Light Visibility) :为避免考虑位于着色点地平线以下的光源,在每个节点的重要性函数中使用夹紧的 (n \cdot l) 项。
- 节点重要性(Node Importance) :给定着色点 (X) 和子节点 (C),重要性函数定义为:
[
importance(
超级会员免费看
订阅专栏 解锁全文
6663

被折叠的 条评论
为什么被折叠?



