|
| 1 | + |
| 2 | +一、路径渲染中的核心数学模型:渲染方程 |
| 3 | +------------------- |
| 4 | + |
| 5 | +路径渲染的基础是 Kajiya 提出的**渲染方程(Rendering Equation)**: |
| 6 | + |
| 7 | +$$L_o(x, \omega_o) = L_e(x, \omega_o) + \int_{\Omega} f_r(x, \omega_i, \omega_o) \, L_i(x, \omega_i) \, (\omega_i \cdot n) \, d\omega_i$$ |
| 8 | + |
| 9 | +* $L_o(x, \omega_o)$:观察方向 $\omega_o$ 上点 $x$ 的出射辐射度。 |
| 10 | + |
| 11 | +* $L_e(x, \omega_o)$:该点自身的自发光。 |
| 12 | + |
| 13 | +* $L_i(x, \omega_i)$:来自方向 $\omega_i$ 的入射辐射度。 |
| 14 | + |
| 15 | +* $f_r$:BRDF,描述表面对不同入射方向的反射特性。 |
| 16 | + |
| 17 | +* $\omega_i \cdot n$:入射方向与法线的夹角余弦项。 |
| 18 | + |
| 19 | +* $\Omega$:单位球面,积分在整个入射方向上。 |
| 20 | + |
| 21 | + |
| 22 | +这个积分非常复杂,因为它是高维、递归、不可解析的,因此不能用传统数值积分解法。 |
| 23 | + |
| 24 | + |
| 25 | +二、蒙特卡洛积分:近似解渲染方程的关键 |
| 26 | +------------------- |
| 27 | + |
| 28 | +### 蒙特卡洛积分的基本思想: |
| 29 | + |
| 30 | +将积分写成如下期望的形式: |
| 31 | + |
| 32 | +$$\int_D f(x) \, dx \approx \frac{1}{N} \sum_{i=1}^N \frac{f(x_i)}{p(x_i)}$$ |
| 33 | + |
| 34 | +$$\int_D f(x) \, dx \approx \frac{1}{N} \sum_{i=1}^N f(x_i)$$ |
| 35 | + |
| 36 | + |
| 37 | +其中: |
| 38 | + |
| 39 | +* $x_i \sim p(x)$ 是按照概率密度函数 $p(x)$ 采样得到的样本。 |
| 40 | + |
| 41 | +* 通过这种随机采样,可以近似估计积分值,尤其适用于高维复杂积分。 |
| 42 | + |
| 43 | + |
| 44 | +### 应用于路径渲染: |
| 45 | + |
| 46 | +对于渲染方程的每一层反射或折射,在某一个交点 $x$,需要计算对所有可能入射方向的积分。我们不能穷举所有方向,就用蒙特卡洛积分方式进行**随机采样**: |
| 47 | + |
| 48 | +$$L_o(x, \omega_o) \approx L_e(x, \omega_o) + \frac{1}{N} \sum_{i=1}^{N} \frac{f_r(x, \omega_i, \omega_o) \, L_i(x, \omega_i) \, (\omega_i \cdot n)}{p(\omega_i)}$$ |
| 49 | + |
| 50 | +这里 $p(\omega_i)$ 是采样方向 $\omega_i$ 的概率密度函数。 |
| 51 | + |
| 52 | +* * * |
| 53 | + |
| 54 | +三、重要性采样:提高蒙特卡洛积分效率 |
| 55 | +------------------ |
| 56 | + |
| 57 | +### 为什么需要重要性采样? |
| 58 | + |
| 59 | +尽管蒙特卡洛积分理论上可以收敛到正确结果,但**收敛速度慢、噪点多**。特别是当采样方向的分布和被积函数的形状差异很大时,会导致一些采样点几乎不贡献,但仍然被计算,从而浪费计算资源。 |
| 60 | + |
| 61 | +### 重要性采样的核心思想: |
| 62 | + |
| 63 | +**选择一个更“接近被积函数形状”的概率密度函数 $p(x)$** 来进行采样,以减少方差。理想情况下,我们希望: |
| 64 | + |
| 65 | +$$p(x) \propto f(x)$$ |
| 66 | + |
| 67 | +在路径渲染中,这意味着: |
| 68 | + |
| 69 | +* 如果表面是镜面反射,就优先采样反射方向; |
| 70 | + |
| 71 | +* 如果表面是漫反射,就优先采样半球面中靠近法线的方向; |
| 72 | + |
| 73 | +* 如果场景中有明亮的光源,就提高采样到这些方向的概率。 |
| 74 | + |
| 75 | + |
| 76 | +### 实际应用场景: |
| 77 | + |
| 78 | +1. **BRDF 重要性采样(BSDF sampling)**: |
| 79 | + |
| 80 | + * 根据材质的反射函数 $f_r$ 来采样方向,比如漫反射用余弦加权采样。 |
| 81 | + |
| 82 | +2. **光源重要性采样(Light sampling)**: |
| 83 | + |
| 84 | + * 根据场景中各光源的亮度和位置,选择更有可能贡献的光源进行采样。 |
| 85 | + |
| 86 | +3. **多重重要性采样(MIS, Multiple Importance Sampling)**: |
| 87 | + |
| 88 | + * 同时结合 BRDF 采样和光源采样,使用**加权策略(如 balance heuristic)**来结合多个采样策略,进一步降低方差。 |
| 89 | + |
| 90 | + |
| 91 | +* * * |
| 92 | + |
| 93 | +四、总结路径渲染中蒙特卡洛积分与重要性采样的作用 |
| 94 | +------------------------ |
| 95 | + |
| 96 | +| 概念 | 在路径渲染中的作用 | |
| 97 | +| --- | --- | |
| 98 | +| **蒙特卡洛积分** | 以概率统计的方式近似解渲染方程,实现对复杂光线路径的模拟 | |
| 99 | +| **重要性采样** | 通过优化采样分布降低估计方差,提高采样效率和图像质量 | |
| 100 | +| **多重重要性采样** | 综合多个采样策略,进一步降低方差,提高图像稳定性 | |
| 101 | + |
| 102 | +* * * |
| 103 | + |
| 104 | +* * * |
| 105 | + |
| 106 | +$$\mathbb{E}[g(X)] = \int_{-\infty}^{\infty} g(x) \cdot f(x)\ dx$$ |
| 107 | + |
| 108 | + |
| 109 | +🔁 2. **蒙特卡洛方法的更一般形式** |
| 110 | +---------------------- |
| 111 | + |
| 112 | +### ✅ 最朴素形式: |
| 113 | + |
| 114 | +估计期望(或积分): |
| 115 | + |
| 116 | +$$ \mathbb{E}_{X} = \int x \cdot f(x) \ dx \approx \frac{1}{N} \sum_{i=1}^N x_i $$ |
| 117 | + |
| 118 | +$$\mathbb{E}_{X \sim f}[g(X)] = \int g(x) f(x)\, dx \approx \frac{1}{N} \sum_{i=1}^N g(x_i) \quad (x_i \sim f)$$ |
| 119 | + |
| 120 | + |
| 121 | +$$\mathbb{E}_{X \sim f}[g(X)] = \int g(x) f(x)\, dx \approx \frac{1}{N} \sum_{i=1}^N g(x_i) \cdot f(x_i) \quad (x_i \sim f)$$ |
| 122 | + |
| 123 | +这是最常见形式 —— **直接从目标分布采样**。 $\int_D f(x) \, dx \approx \frac{1}{N} \sum_{i=1}^N \frac{f(x_i)}{p(x_i)}$ |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | +### ✅ 更一般形式:**重要性采样(importance sampling)** |
| 128 | + |
| 129 | +在很多时候,我们**无法从目标分布 $f(x)$** 直接采样,而是从另一个“易采样”的分布 $q(x)$ 中采样,这时怎么办? |
| 130 | + |
| 131 | +#### 变换公式如下: |
| 132 | + |
| 133 | +$$\int g(x) f(x)\, dx = \int g(x) \cdot \frac{f(x)}{q(x)} \cdot q(x) \, dx = \mathbb{E}_{x \sim q}\left[ g(x) \cdot \frac{f(x)}{q(x)} \right]$$ |
| 134 | + |
| 135 | +于是我们估计这个期望的方式变成: |
| 136 | + |
| 137 | +$$\mathbb{E}_{f}[g(X)] \approx \frac{1}{N} \sum_{i=1}^N g(x_i) \cdot \frac{f(x_i)}{q(x_i)} \quad (x_i \sim q)$$ |
| 138 | + |
| 139 | +这就是**蒙特卡洛积分的一般形式**,也是变分推断、强化学习等中的核心技术。 |
0 commit comments