Rendering:Monte Carlo Integration II
Course: 渲染基础 Rendering Basics Date: November 29, 2025 11:07 AM (GMT+8)
🎨 Rendering:Monte Carlo Integration II
🏛 1. 积分估计的两个核心问题
Monte Carlo 可以估计任意积分,但效率高度依赖两个因素:
- 采样点位于积分快速变化区域的多少
- 被积函数本身有多“凶险”(尖锐、高振荡、大范围变化)
如果采样位置与函数形状不匹配,会导致巨大方差与噪声。
🎯 2. 采样策略对误差的影响
假设我们要估计:
若采样分布 不适合 f(x) 的形状:
- 会浪费大量样本
- 噪声大
- 趋势出现很慢
若采样分布 匹配 f(x):
- 渐进速度显著提升
- 方差陡降
- 需要的样本大幅减少
这引出了“适应函数形状的采样策略”。
💡 3. 重要性采样(Importance Sampling)的概念
目标是让采样分布 p(x) 与函数 f(x) 的重要部分接近。
Monte Carlo 积分可以写成带权形式:
采样时:
- 按 p(x) 随机采样 x
- 计算 f(x) / p(x)
- 对所有样本求平均
这样的采样方式可以极大降低方差。
🧪 4. 期望形式的 Monte Carlo 积分
若 X 是按分布 p(x) 采样的随机变量,则:
样本估计:
这是所有重要性采样算法的基础。
📉 5. 函数越“尖锐”,越需要重要性采样
当 f(x) 在某个小区域非常尖锐或陡增时:
- 均匀采样难以命中高贡献区域
- 噪声极高
- 估值可能漂移很久才接近真实值
解决方法:
- 将 p(x) 设计为在尖锐区域的取样概率更高
- 让取样“跟随” f(x) 的结构
这样:
- f(x) / p(x) 会接近常数
- 方差接近 0
- 最快收敛
📦 6. 最优采样分布
理论最优分布是:
性质:
- 完全匹配函数的形状
- 代入后 f(x) / p(x) 变为常数
- 方差 = 0(完美估计)
但实际渲染中无法直接获得 f(x) 的积分,因此需要可构造的近似分布。
🎲 7. 两类常见分布的示例
文件中使用两个例子:
🟦 7.1 均匀分布(Uniform Distribution)
- 在整个区间平均取样
- 对平滑函数效果尚可
- 对尖锐或窄区域贡献很大的函数非常低效
- 容易产生噪声高、收敛慢的估值
🟧 7.2 三角分布(Triangular Distribution)
- 分布在某些区域有更高概率
- 适合具有局部高贡献区的函数
- 对某些特定函数可显著减少方差
- 提供更快速、更稳定的估计
🔍 8. 采样分布不匹配时的典型问题
若使用了与 f(x) 分布完全不相符的 p(x):
- 样本权重 f(x)/p(x) 变得巨大
- 数值震荡剧烈
- Monte Carlo 收敛速度显著变差
- 噪声比均匀采样还大
这解释了渲染中:
- 亮光源导致的“萤火虫”(Fireflies)
- BRDF 反射峰导致的噪点
- 对高光部分采样不足
📊 9. 匹配分布后的方差下降
通过选择与 f(x) 结构接近的 p(x),可观察到:
- 波动幅度明显降低
- 样本平均趋向稳定
- 少量采样即可得到较好的估计
- 对不规则函数依然有强大效果
在渲染中,这种策略会被用于:
- 光源采样
- BRDF 方向采样
- 路径追踪中的 PDF 选择
- 多重重要性采样(MIS)
⚙️ 10. 重要性采样的计算流程
流程如下:
- 设计分布 p(x)
- 根据 p(x) 采样 xᵢ
- 求 f(xᵢ) / p(xᵢ)
- 对所有样本求平均
- 估计值即为积分近似
关键是: p(x) 必须可采样且可计算。
🧠 11. 重要性采样的效果总结
- 让采样更集中于“重要的区域”
- 显著减少方差
- 降低噪声并改善收敛速度
- 对处理尖锐、集中型函数尤为有效
- 是光线追踪可用性和速度的核心优化技术
⭐ 12. 渲染中的典型应用场景
重要性采样直接作用于渲染中的多个关键问题:
- 面光源采样(减少软阴影噪声)
- 材质 BRDF 采样(尤其是高光、镜面项)
- 参与介质中的相函数采样
- 次表面散射中的方向采样
- 全局光照路径中关键方向的选取
如果没有重要性采样,高质量光线追踪将几乎不可行。
🧩 13. 为什么采样分布越接近函数形状越好?
原因如下:
- f/p 越接近常数 → 方差越低
- 在贡献高的区域多采样 → 避免遗漏
- 在无关区域少采样 → 避免浪费
- 理想情况下 f/p 是常数 → 方差 = 0(理论最佳)
这也是构建高效采样策略、BRDF 采样、光源采样技术的数学基础。
⚡ 14. 内容要点总结
Monte Carlo 的误差依赖采样分布
均匀采样经常效率低,特别是当函数有尖锐结构
重要性采样通过引入 p(x) 降低方差
使用公式:
最优分布是 p ∝ |f|
实际渲染使用可构造的近似分布来实现
正确的分布能大幅提升收敛速度、减少噪声
是现代路径追踪中最重要的数学技巧之一