Lec16 Ray Tracing 4 (Monte Carlo Path Tracing)蒙特卡洛路径追踪
正确的解出渲染方程
回顾
- 辐射度量学
- irradiance和radiance解释反射问题
- BRDF
- 光线传播方式
- 反射方程
- 渲染方程
- 全局光照
- 概率论复习
复习
- 渲染方程
-
自己发出的光加上来的光
-

-
BRDF就会告诉自己发射的光反射到发射方向上的光
-
- 概率论
- 离散随机变量,符合一种概率密度分布

蒙特卡洛积分
积分方法
-
为了干什么
-
解一个定积分
-

-
用数值方法算一个复杂函数的定积分的近似值
-
-
蒙特卡洛定积分
-
定积分
- ∫abf(x)dx\int_{a}^{b}f(x)dx∫abf(x)dx
-
随机变量
- Xi∼p(x)X_i \sim p(x)Xi∼p(x)
- p(x)是任意概率密度函数
-
蒙特卡洛算子
-

-
例子
-

-
这里用蒙特卡洛去求就是Fn=b−aN∑i=1Nf(Xi)F_n = \frac{b - a}{N}\sum_{i = 1}^N f(X_i)Fn=Nb−a∑i=1Nf(Xi)
-
-
-
任意定积分都能这样算
-

-
N越大,得到的越准确
-
积分是定义在x上的,采样x
-
-
路径追踪 Path Tracing
- whitted-style ray tracing:
- 当光线打到光滑物体上,光线沿着镜面方向反射 / 折射
- 在一个漫反射面上停止反射
- whitted-style 的问题:
- Glossy的反射不太对
-
specular reflection(镜面)
-
Glossy reflection(没那么镜面的反射,但是也有高光)
-

-
The Utah teapot
-
- 在漫反射面没有反射
- Glossy的反射不太对
渲染方程
-
其实是解一个积分
-
是对于Li(p,wi)fr(p,wi,w0)(n⋅wi)dwiL_i(p,w_i)f_r(p,w_i,w_0)(n·w_i)dw_iLi(p,wi)fr(p,wi,w0)(n⋅wi)dwi
-
pdf是多少?
- 均匀采样
- p(wi)=1/2πp(w_i) = 1/2\pip(wi)=1/2π
-
path tracing
-

-
加上间接光照
-
对于打到的物体,算物体以-w_i方向发出的光照(即在p点看q点发出的直接光照)
-

-

-
-
但是这样光线会指数爆炸
-

-
所以N = 1的时候能够避免这个问题
-

-
-

-
-
Ray Generation
- 对一个像素内多个采样点进行采样

-
递归终止条件
- Russian Roulette(RR)
- 一定的概率来停止光线往下追踪

-
效率不高(多条光线可能只有一条能打到光源)
-
直接从光源采样就能够不浪费
-
但是在光源上积分的话,需要在光源上采样
-

-
根据立体角定义,可以得到dw和dA的关系
-
所以就可以根据关系改写渲染方程
-
-
所以分成两种光
- 来自光源
- 不需要RR
- 来自其他非光源物体对他的贡献
- 需要RR
- 来自光源
-
最终算法
一个小问题
- 光源可见性
- 从P打一条光线去光源,看能不能打到光源
这篇博客探讨了蒙特卡洛路径追踪技术在渲染领域的应用,详细阐述了渲染方程的解决方法,包括辐射度量学、BRDF、光线传播和全局光照的概念。通过概率论和蒙特卡洛积分,解释了如何使用随机采样近似复杂函数的定积分,进而求解渲染方程。文中还讨论了Whitted风格的光线追踪存在的问题,如镜面和光泽反射的处理,并介绍了Utah茶壶的经典例子。最后,提出了RayGeneration、递归终止条件如Russian Roulette以及直接光源采样等优化策略,以提高路径追踪的效率和准确性。





6692

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



