计算机图形学之GAMES101课程蒙特卡洛积分和路径追踪
计算机图形学之GAMES101课程蒙特卡洛积分和路径追踪
上一节课
辐射度量学
intencity
Irradiance
radiance
光的传播
BRDF
反射方程
渲染方程
概率论
一、概率论(Probability)
概率密度函数(PDF)
二、蒙特卡洛积分(Monte Carlo Integration)
理解:
计算[a,b]内的定积分就是求曲线 f(x)、直线 x=a,x=b以及x轴围成的形状的面积,因此,如果我们在曲线上随机地选取N个点,计算如图所示的粉红色长方形面积之和,再求个平均,其实就得到了定积分的近似值。点的数量取得越多,这个平均值就越逼近定积分的真实值。
整个过程用数据公式来表达的话就是: S = 1 / 4 *(f(x1)(b-a) + f(x2)(b-a) + f(x3)(b-a) + f(x4)(b-a)) = 1 / 4(b-a)(f(x1)+f(x2)+f(x3)+f(x4)) =
所以,蒙特卡洛积分为:
p(Xi)解释
对于更一般的情况4次变成N次,乘以(b-a)可以看做除以 1 / (b-a)。 而前面讲过了随随机在曲线上采样因此随机到每个点的概率都是1 / (b-a),扩展到更一般的随机情况则有 1 / pdf(x)。 pdf(x)函数为x采用的概率密度函数。因此可以推导出更具有一般性的公式也就是蒙特卡洛积分法:
三、路径追踪(Path Tracing)
1.动机
Whitted-Style Ray Tracing的问题:
Always perform specular reflections / refractions
Stop bouncing at diffuse surfaces
问题一:Whitted-Style Ray Tracing 在处理光照反射时总是沿着镜面反射方向进行,这适用于镜面材质,但却不适用于 Glossy 之类的材质。
问题二:漫反射后会停止
Path Tracing可以让渲染更加真实。
2.涉及
实现
渲染模型
蒙特卡洛积分方案
则有
代码
问题:递归计算爆炸
只取一条光线
光线生成
问题:递归不会停止
解决方案:俄罗斯轮盘赌
使用俄罗斯轮盘赌来随机终止递归