Skip to content

Commit 319d7ca

Browse files
2 parents e1b3f50 + 79c04a8 commit 319d7ca

File tree

5 files changed

+149
-5
lines changed

5 files changed

+149
-5
lines changed

book_template/src/SUMMARY.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Summary
22

3-
- [映射与函数](./映射与函数.md)
4-
- [洛必达法则](./洛必达法则.md)
5-
- [泰勒公式](./泰勒公式.md)
6-
- [Chapter 1](./chapter_1.md)
3+
- [高等数学](./高等数学.md)
4+
- [映射与函数](./映射与函数.md)
5+
- [洛必达法则](./洛必达法则.md)
6+
- [泰勒公式](./泰勒公式.md)
7+
- [Windows 驱动开发](./windows_divers.md)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Windows 驱动开发
2+
3+

book_template/src/高等数学.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# 高等数学
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
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+
这就是**蒙特卡洛积分的一般形式**,也是变分推断、强化学习等中的核心技术。

raytracing_book/src/SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
- [光线追踪-第二周](#second.md)
2222
- [概述](./SecondWeekend/overview.md)
2323
- [运动模糊](./SecondWeekend/motion_blur.md)
24-
24+
- [Monte Calor](./OneWeekend/monte_calor.md)
2525
- [DirectX11 相关](#2)
2626
- [Multithreading](directx11/multithreading.md)
2727
- [Effect](directx11/effect/effect.md)

0 commit comments

Comments
 (0)