蒙特卡洛积分与重要性采样
Monte Carlo Integration & Importance Sampling
渲染方程里的半球积分没有闭式解,只能数值积分。蒙特卡洛积分在定义域里随机取样、按概率密度加权求平均,期望值正好等于积分真值,误差随样本数 按 下降,而且与积分维数无关,所以成了光线追踪类渲染的数学基础。降低误差的主要手段是让采样分布接近被积函数的形状,也就是重要性采样(GEA4 卷 II 12.6.2、12.6.4)。
两类数值积分
GEA 把求解渲染方程的数值积分方法分成两类(卷 II 12.6 节引言):
- 有限元方法:把问题切成足够小的有限单元,假设被积函数在单元内近似常数,把积分化成可解的求和。用在辐射度量学里就是辐射度方法 (Radiosity),见 渲染方程。
- 随机方法(统计方法):在定义域内随机取样点求被积函数,靠概率论保证样本平均随样本数增加收敛到真值。渲染中最常用的是蒙特卡洛估计器;用到几何光学上,就是在场景里随机发射光线来估计相机传感器收到的辐射亮度(或亮度)。
Kajiya 除了提出渲染方程,另一大贡献就是证明可以用随机方法近似半球积分(卷 II 12.6.2)。
直观例子与基本估计器
- 估计圆面积:在边长 的正方形内随机撒点,落入圆内的比例近似 (卷 II 12.6.2.1)。
- 一维积分:要求 ,在 内均匀随机取 , 就是一个很粗的矩形近似;取 个样本求平均得到蒙特卡洛估计器(书中例子 ,,,真值约 80.974):
尖括号表示估计器,上标 只是样本数的记号,不是指数(卷 II 12.6.2.2)。
概率论回顾
- 随机变量把随机过程的结果映射成数值;累积分布函数 从 0 单调增到 1;概率密度函数 (PDF) 是它的导数 。
- 期望 ;连续情形 ;方差 (卷 II 12.6.2.3)。
一般形式与无偏性
其实是均匀分布 PDF 的倒数,换成任意采样分布的 PDF 就得到一般形式(卷 II 12.6.2.4):
利用 和"和的期望等于期望的和",可以推出估计器的期望正好是积分真值(卷 II 12.6.2.5)。同样的估计器可以直接用于 维积分;渲染方程里的积分对立体角或面积是二维的,但由于光会多次反弹,整个光传输问题的维数理论上是无穷的,实践中靠限制反弹次数让问题可解(卷 II 12.6.2.6)。
误差与收敛速度
估计器的标准差与 成正比,并且等于样本本身的标准差除以 :
因此误差减半需要样本数翻四倍。这个收敛速度不算快,但多数其他数值积分方法的收敛速度依赖维数,高维问题上蒙特卡洛因此占优(卷 II 12.6.2.7、12.6.4)。在光线追踪器里,误差表现为图像噪点。
降低误差有两条路:增加样本数,或降低样本本身的方差,也就是更聪明地选随机光线方向(选一个让样本方差更小的 PDF)。
在半球上均匀采样
直接把两个球坐标角各自均匀随机,点不会均匀分布在半球上,因为立体角微元 里有 。正确做法是取两个 均匀随机数 ,令方位角 、极角 ;反余弦正好"抵消"了 因子。均匀分布时 PDF 为常数,在半球上积分为 1,得 (卷 II 12.6.3.6)。
重要性采样
估计器的每一项是 。如果 与 形状完全一样(成正比),每个样本取值相同,方差为零。 本身未知,但可以利用场景、BRDF 和光源位置的知识,让 尽量接近 的形状,这就是重要性采样(卷 II 12.6.4.1):
- 余弦采样:朗伯反射在掠射角附近贡献接近零、法线附近最亮,所以把光线集中在法线附近,。被省掉的方向本来贡献就接近零。
- 向"有意思"的方向发射光线,例如沿每个光源的理想镜面反射方向、沿理想折射方向各发一条。
- 多重重要性采样 (MIS):组合几种各自都不错的采样策略,保留各自的长处(卷 II 12.6.4.2)。
俄罗斯轮盘赌
递归光线追踪需要终止条件。固定最大深度会引入偏差,因为最重要的光路不一定最短。俄罗斯轮盘赌给每条光线引入一个"吸收"概率:掷骰子,结果小于阈值 才继续递归,否则当作光被吸收;为了不改变期望,继续的那部分要除以 补偿(卷 II 12.6.3.7)。
GEA 原书中的问题(原书问题)
以下按原文与常规定义并列,未直接改写原书结论。概率论定义的依据:Pharr, Jakob, Humphreys《Physically Based Rendering》第 4 版 2.1 节(PDF 定义、估计器方差 、标准差 ,在线版 pbr-book.org);Wikipedia "Probability density function"、"Monte Carlo integration"。
| 位置 | 原书说法 | 常规定义 / 书中别处说法 |
|---|---|---|
| 12.6.2.7 | 估计器的"方差"正比于 ;同节又称方差 σ 是标准差的平方 | 书中公式实际写的是 (标准差);按 12.6.2.3 的定义,方差是 。"误差减半需四倍样本"对应的是标准差 |
| 12.6.2.3 | PDF 的值就是取到该值的概率, | 对连续随机变量,单点概率为 0,PDF 是概率密度;书中随后用 的关系本身是对的 |
| 12.6.3.6 | 写成 、,并称反余弦让"方位角 φ"均匀 | 与本书 12.2.3.1 自己的约定(θ 为极角、φ 为方位角)正好相反;按该约定应为 、,本页按后者写 |
| 12.6.3.6 | "推导式 (12.23) 时见过,这个二重积分等于 2π" | 式 (12.23) 推导的是 ,值为 π;这里的 才是 2π,结论 本身正确 |
| 12.6.4.1 | 若 与 完全一致,求和里的每个样本都等于 1 | PDF 必须归一化,所以零方差的 PDF 是 (要求 ),此时每个样本 都等于积分值 本身,而不是 1;只有在 时两者才一致。这也说明零方差 PDF 需要先知道答案(pbrt 4e 2.2.2 "Importance Sampling") |
| 12.6.4.1 | "蒙特卡洛积分的全部意义就是近似 " | 近似的是积分 ; 在每个样本点都可以求值,未知的是它的积分(即 的归一化常数) |
| 12.6.2.4 | 是" 取到某个特定值的概率"的倒数 | 应为均匀分布概率密度 的倒数;连续变量取任一特定值的概率为 0(同 12.6.2.3 一行) |
| 12.6.2.5 | 推导中把估计器写成 | 与 12.6.2.2 定义的 记号不一致,指的是同一个估计器;推导也只针对均匀 PDF 的式 (12.32),一般式 (12.35) 的无偏性同理成立(要求 处 ,pbrt 4e 2.1.3) |
| 12.6.2.6 | 、、、 都是 维向量 | 积分变量 在 维定义域里, 是 维体积微元(标量),被积函数与积分值一般是标量(渲染里是每个颜色通道的辐射亮度);见 Wikipedia "Monte Carlo integration" |
| 12.6.3.7 | 俄罗斯轮盘赌要"把被积函数乘 1/P,并且最终结果也乘 1/P" | 常规做法是只对存活路径除以一次存活概率;乘两次会改变期望。原书指向 Dutré 等《Advanced Global Illumination》5.3.2 节的推导 |
PBRT 的视角
pbrt 第 4 版(下称 PBRT)第 2 章把蒙特卡洛当作全书的数学底座来讲,比 GEA 更形式化,并且直接给出 pbrt 里用到的方差缩减手段。下面按节归纳;采样分布的构造(逆变换法、雅可比变换、边缘/条件密度)放在 随机变量变换与逆变换采样。
估计器、无偏与收敛(2.1 节)
- 随机算法分两类:拉斯维加斯 (Las Vegas) 算法结果总是一样(如随机选主元的快排),蒙特卡洛算法结果随随机数变化、但平均意义上正确(第 2 章引言)。
- 一般估计器 (式 2.7),唯一要求是 处 。pbrt 里
RandomWalkIntegrator的 因子就是球面均匀采样的 PDF(2.1.3)。 - 方差 (式 2.9);独立样本的方差可加(式 2.10),所以方差按 、误差(标准差)按 下降,且与维数无关(2.1.4)。
- 效率 :方差减半但耗时三倍的估计器反而更差,因为同样时间里前者可以取三倍样本、得到 3 倍方差缩减(2.1.4)。
- 偏差 ;有偏但误差随 趋零的估计器叫一致 (consistent)。Kalos & Whitlock 的例子:估计 的均值, 无偏、方差 ; 的期望为 ( 时 ),有偏但方差 。pbrt 的估计器基本都无偏,例外是
SPPMIntegrator(随机渐进光子映射)。 - 均方误差 = 方差 + 偏差²;样本方差用 (Bessel 修正,式 2.11),数值稳定算法见附录 B.2.11。样本方差本身也有方差:一个 99.99% 取 1、0.01% 取 的变量,十个样本全是 1 时样本方差为 0。pbrt 自带的
imgtool diff可以对参考图算 MSE。
分层采样(2.2.1)
把定义域 切成互不重叠、覆盖全域的层 (体积占比 ),每层取 个样本。取 时分层估计器方差为 ,而不分层的方差是
( 为层内均值, 为全域均值)。右边第二项非负,所以分层永远不会增大方差,只有各层均值完全相同时才没有收益;层越紧凑、各层均值差得越多越好。缺点是维数灾难: 维每维 层需要 个样本,实际做法是各维分别分层再随机配对(第 8 章 8.5),并优先分层对被积函数影响相关性最强的维度(Owen 1998)。
重要性采样的数值例子(2.2.2)
时 ,每个样本 都等于积分本身,方差为零,但需要先知道答案;实际只求 与 形状相近。书中例子: 在 上积分(真值 )。
- 均匀采样:方差约 0.0365(本页复算 0.03649,一致)。
- 好的分段常数 PDF( 上 9.1,其余 0.1,积分为 1):书中说方差降约 6.7 倍。
- 差的 PDF( 上 0.2,其余 1.2):书中说比均匀采样高约 5.4 倍(复算 5.34,一致),比好的 PDF 高"近 36 倍"。
- 复算出入见下文"原书问题"。
多重重要性采样(2.2.3)
被积函数常是乘积 (BSDF × 入射辐亮度 × 余弦)。只按 采样,方差正比于 的方差,反之亦然;两种估计器简单平均也没用,因为方差可加,加进来的方差去不掉。MIS 估计器:
无偏条件: 处 ,且 处 。
- 平衡启发式 (Balance Heuristic) (式 2.14):每个样本除以"所有策略在该点的 PDF 之和",某策略低概率撞到的高值样本被自动压低。
- 幂启发式 (Power Heuristic) (式 2.15),pbrt 固定 ,通常方差更低。pbrt 只实现两分布版本(
BalanceHeuristic()、PowerHeuristic())。 - 单样本模型 (Single-Sample Model):以概率 选一种策略取一个样本,估计 (式 2.16);此时平衡启发式可证明最优。
- 如果某一策略本身已与被积函数完美匹配,MIS 会略增方差;渲染中几乎总是值得用。
- MIS 补偿 (MIS Compensation):只要求至少一个 PDF 在 处非零,所以可以把其中一个分布"削尖":,把低值区域交给其他策略。对表格化分布特别容易,pbrt 用于环境贴图光源采样(12.5 节)。
俄罗斯轮盘赌与分裂(2.2.4–2.2.5)
- 俄罗斯轮盘赌:以概率 不求估计器、用常数 (常取 0)代替;否则求值并按 加权。。它从不降低方差(除非 ),只是通过跳过贡献小的昂贵样本(如可见性光线)提升效率。
- 分裂 (Splitting):对 ,每个外层样本 配 个内层样本 ,估计 。渲染中的例子:每条相机光线(像素面积积分)配多条光照积分样本,摊薄相机光线的成本。
与 GEA 的对照
| 话题 | GEA4 | PBRT 4e |
|---|---|---|
| 俄罗斯轮盘赌补偿 | 被积函数乘 ,"最终结果也乘 " | 只对存活样本乘一次 ( 是终止概率),期望不变;并强调它增方差、提效率 |
| 误差与样本数 | 写成"方差 ∝ " | 方差 ∝ ,误差(标准差)∝ |
| PDF 的值 | 当作取到该值的概率 | PDF 是相对概率密度,单点值可以大于 1 |
| 方差缩减手段 | 余弦采样、MIS、俄罗斯轮盘赌 | 另有分层、MIS 补偿、分裂、效率指标、有偏/一致估计器的讨论 |
原书问题(PBRT 第 2 章)
| 位置 | 原书说法 | 核对结果 / 来源 |
|---|---|---|
| 2.2.2 | 对 ," 或 的样本没什么用,因为峰在 附近" | 按书中自己的公式,峰在 ;书给的"好 PDF"把高密度放在 ,也对应峰在 。 与公式不符(像是旧版峰在 1/4 的残留;本页另算:峰换成 1/4 时均匀采样方差同为 0.0365,无法区分)。图 2.2 的问题见 pbr-book-website issue #16(已关闭) |
| 2.2.2 | 好 PDF 使方差降"约 6.7 倍";差 PDF 比好 PDF 高"近 36 倍" | 本页用数值积分复算 :均匀 0.03649,好 PDF 0.001827(降 约 20.0 倍),差 PDF 0.1950(比均匀高 5.34 倍,与书一致;比好 PDF 高 约 107 倍)。另用 400 万样本蒙特卡洛模拟验证好 PDF 方差为 0.001827。书中"36 倍"正是 ,所以问题出在 6.7 这个数 |
| 2.2.2 | 差 PDF 在峰附近"" | 书中给出的该 PDF 在 上是 0.2(这样积分才为 1:) |
| 2.2.1 | 分层估计器整体方差写成 | 下标 与上文"整体估计器 "记号不一致,见 pbr-book-website issue #20(未关闭) |
| 第 2 章习题 2 | 要求"用数值实验证明方差以 的速率下降" | 应为 (即 ),与 2.1.4 节"方差随样本数线性下降"一致;SVG 字形解码为 O ( n ),没有负指数。来源:https://pbr-book.org/4ed/Monte_Carlo_Integration/Exercises (2026-10-13 抓取) |
| 2.5 参考文献 | Kondapaneni et al. 2019, ACM TOG (SIGGRAPH) 37 (4), 37:1–14 | 应为卷 38 (4),Article 37(2019 年 7 月)。来源:https://doi.org/10.1145/3306346.3323009 |
| 2.5 参考文献 | Subr and Arvo 2007a 写成发表于 "Pacific Graphics '97" | 年份是 2007,应为 Pacific Graphics 2007(第 9 章参考文献有同样问题,见 双向反射分布函数 的原书问题) |
PBRT 的视角(第 8 章):频域方差分析与拟蒙特卡洛
方差的傅里叶分析(8.2.1)
假设:样本均匀、等权(不做重要性采样),估计器无偏,样本性质在环面平移下均匀。用傅里叶级数(而非傅里叶变换,避免定义域边界的不连续带来 Gibbs 误差)表示 上的函数,把估计器写成 ,其中 。由于 ,误差为 ,方差为 推论:
- 采样模式的功率谱应在函数功率谱大的地方小。函数能量通常集中在低频,所以采样模式应在低频能量小,也就是蓝噪声,与抗锯齿的要求相同(见 抗锯齿)。
- 白噪声采样 ,方差 ,与第 2 章结论一致。二维抖动对光滑被积函数可达 。
- 带限函数只要采样率超过最高频率就能零方差积分,约为完美重建所需采样率的一半(Durand 2011)。书中说"至少等于",差一个边界情形,见下文原书问题。
- 泊松圆盘采样多年被认为优于抖动,但其 PSD 在低频一直残留少量能量,渐近方差不会好于 ,比抖动差(小 时可能更好)。
差异度、QMC 与 RQMC(8.2.2)
- 星差异度 :对所有以原点为一角的盒子,取"盒内点数占比"与"盒子体积"之差的上确界。例:一维 的 ,改为 后为 ,这是一维最优。书中图 8.19:4 个点中 1 个落在 的盒内,该盒的差异为 。
- 低差异:。Koksma–Hlawka 不等式 ( 为全变差)。所以 QMC 误差渐近接近 ,优于 MC 的 。
- 一维中均匀网格差异度最优,但傅里叶分析却偏好抖动,两种分析视角在这里不一致。高维低差异点远不如一维均匀,实践中效果好,但规则性仍可能带来走样。
- QMC 是确定性的,不能用方差衡量;随机化 QMC (RQMC) 在不破坏差异度的前提下随机化,又可以谈方差,而且可能提高收敛率。RQMC 是 pbrt 大多数积分算法的基础。各种序列的构造见 低差异序列。
- 隐患:采样器给出的拟随机点若被不适合 QMC 的算法使用,可能引入细微错误;书中的积分器都没有这种情况。
原书问题(8.2 节;2026-10-13 按书中式 8.8 的 约定复核,均成立)
- 8.2.2 写"随着被积函数维度 增大,低差异积分误差趋近 "。由 可知 越大界越差;趋近 的是固定 时样本数 增大的极限。
- 式 (8.9) 傅里叶级数合成式写成 ,与分析式 (8.8) 的 同号,应为 (SVG 解码确认负号)。
- 8.2.1 零方差条件差一个边界(2026-10-13 审读新增):书中说带限函数(,)只要采样率"至少等于"最高频率,就有" 对所有 "并得到零方差估计。均匀网格 点的 在 时为 1、否则为 0;要消掉误差需要 对 成立,即 。反例:(,积分为 0),取 个等距点 得估计值 1,取 得 ,都不是 0。所以条件应是采样率严格大于最高频率,范围也应包含 。延伸阅读对 Durand(2011)的转述("只需等于")也是同样的问题。
- 8.2 延伸阅读文献表 "Singh et al. 2019a ... 38 (2), 473–71" 页码有误,应为 473–491(Crossref,https://doi.org/10.1111/cgf.13653)。
- 式 (8.11) 最右端 少了绝对值。
- 8.4 说独立均匀随机点的差异度"为 1,最坏",论据是所有点都取 0 或 1 这种极端情形,指的是最坏情况。随机点集差异度的典型量级其实约为 (重对数律),远小于 1。属于表述过强。
取舍
- PBRT 的补充:俄罗斯轮盘赌与分裂是用方差换时间(或时间换方差)的效率工具,比较估计器时看 而不是只看方差。
- 优点:只需对被积函数做点评估、实现简单、与维数无关、样本越多越准,可以渐进细化。
- 缺点:收敛慢,交互帧率下每像素只有很少样本,必然有噪点,因此实时路径追踪离不开降噪(见 随机光线追踪与路径追踪)。
- 采样策略要无偏:截断深度、只采部分方向等做法会让图像系统性偏暗或偏色,而不是仅仅更"噪"。
GPU Gems 的视角:实时 BRDF 重要性采样与 mip 过滤(GPU Gems 3 第 20 章)
来源:同 Colbert & Křivánek;摘录见 Chapter 20. GPU-Based Importance Sampling — Colbert, Křivánek。把经典 MC 估计量搬进单通道片元着色器。
Phong 光泽瓣归一化为 PDF 后,用边际/条件概率把二维均匀随机数映成球坐标方向(式 7–8),再转到世界系。低差异序列降低 discrepancy;样本数少时用环境图 mip 当滤波器抑制走样,等价于「每个样本代表一块立体角」。这是实时路径上「重要性采样 + 预过滤」的早期实用配方,与 PBRT 离线多技术 MIS 目标相同但约束在固定样本预算与 GPU 常量寄存器。
出处
- Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
- Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 12 章 12.6 节引言、12.6.2、12.6.3.6、12.6.3.7(终止条件)、12.6.4.1–12.6.4.2 节
- PBRT 4e source excerpt: chapter 02 (Monte Carlo Integration)
- Pharr, Jakob, Humphreys《Physically Based Rendering: From Theory to Implementation》第 4 版(MIT Press, 2023)第 2 章 2.1–2.4 节,pbr-book.org/4ed/Monte_Carlo_Integration
- PBRT 4e source excerpt: chapter 08 (Sampling and Reconstruction)
- Pharr, Jakob, Humphreys《Physically Based Rendering: From Theory to Implementation》第 4 版(MIT Press, 2023)第 8 章 8.2、8.4 节,pbr-book.org/4ed/Sampling_and_Reconstruction
- Chapter 20. GPU-Based Importance Sampling — Colbert, Křivánek
- developer.nvidia.com/gpugems/gpugems3/part-iii-rendering/chapter-20-gpu-based-importance-sampling