网站标题栏做多大,网站建设工作都包括哪些方面,广东网站备案查询,找公司网站建设Lecture16 Ray Tracing 4 (Monte Carlo Path Tracing 一、蒙特卡洛积分 Monte Carlo Integration二、路径追踪 Path tracing1.Whitted-Style Ray Tracings Problems2.只考虑直接光照时3.考虑全局光照①考虑物体的反射光②俄罗斯轮盘赌 RR #xff08;得到正确shade函数#x… Lecture16 Ray Tracing 4 (Monte Carlo Path Tracing 一、蒙特卡洛积分 Monte Carlo Integration二、路径追踪 Path tracing1.Whitted-Style Ray Tracings Problems2.只考虑直接光照时3.考虑全局光照①考虑物体的反射光②俄罗斯轮盘赌 RR 得到正确shade函数③射线生成追踪足够多的path④对光源进行采样推导 ⑤结束 一、蒙特卡洛积分 Monte Carlo Integration
为什么用于解决难以求解的积分问题是什么/怎么办在x轴上随机采样积分而不是均匀采样 函数 f(x) 在区间 [a,b] 上的定积分 ∫ a b f ( x ) d x \int_{a}^{b}f(x)dx ∫abf(x)dx随机变量 X i ∼ p ( x ) X_{i} \sim p(x) Xi∼p(x)得到蒙特卡洛积分为 F N 1 N ∑ i 1 N f ( X i ) p ( X i ) F_{N} \frac{1}{N} \sum_{i1}^{N} \frac{f(X_{i})}{p(X_{i})} FNN1∑i1Np(Xi)f(Xi)
二、路径追踪 Path tracing
1.Whitted-Style Ray Tracing’s Problems
只处理镜面或者透明物体的反射和折射在漫反射时就停止了忽略了物体之间的反射在glossy金属材质时不应该全部都反射但是 渲染方程是对的 L r ( p , ω r ) L_{r}(p, ω_{r}) Lr(p,ωr) L e ( p , ω o ) L_{e}( p, ω_{o}) Le(p,ωo) ∫ Ω L r ( p , − ω i ) f r ( p , ω i , ω r ) ( n ⋅ ω i ) d w i \int_{Ω^}^{} L_{r}( p , -ω_{i}) f_{r}( p , ω_{i} ,ω_{r}) ( n \cdot ω_{i})dw_{i} ∫ΩLr(p,−ωi)fr(p,ωi,ωr)(n⋅ωi)dwi
2.只考虑直接光照时 L o ( p , ω o ) L_{o}(p, ω_{o}) Lo(p,ωo) ∫ Ω L i ( p , ω i ) f r ( p , ω i , ω o ) ( n ⋅ ω i ) d w i \int_{Ω^}^{} L_{i}( p , ω_{i}) f_{r}( p , ω_{i} ,ω_{o}) (n\cdotω_{i})dw_{i} ∫ΩLi(p,ωi)fr(p,ωi,ωo)(n⋅ωi)dwi 用蒙特卡罗积分求解 F N 1 N ∑ i 1 N f ( X i ) p ( X i ) F_{N} \frac{1}{N} \sum_{i1}^{N} \frac{f(X_{i})}{p(X_{i})} FNN1∑i1Np(Xi)f(Xi)f(x) 是 L i ( p , ω i ) f r ( p , ω i , ω o ) ( n ⋅ ω i ) L_{i}(p,ω_{i})f_{r}(p,ω_{i},ω_{o})(n\cdotω_{i}) Li(p,ωi)fr(p,ωi,ωo)(n⋅ωi)pdf概率密度函数是 “对半球进行采样” p ( ω i ) 1 2 Π p(ω_{i}) \frac{1}{2Π} p(ωi)2Π1得到式子 L o ( p , ω o ) L_{o}(p, ω_{o}) Lo(p,ωo) 1 N ∑ i 1 N L i ( p , ω i ) f r ( p , ω i , ω o ) ( n ⋅ ω i ) p ( ω i ) \frac{1}{N} \sum_{i1}^{N} \frac{L_{i}(p,ω_{i})f_{r}(p,ω_{i},ω_{o})(n\cdotω_{i})}{p(ω_{i})} N1∑i1Np(ωi)Li(p,ωi)fr(p,ωi,ωo)(n⋅ωi) 是正确的直接光照公式
3.考虑全局光照
①考虑物体的反射光 Q同样也反射光线到P上方向上也相当于P到Q点的光 Q 的直接光照 Q 到 P 的反射但是这样做光线会有 指数级增长 假设只有一根光线时只选择一个方向 ω i ω_{i} ωi 但递归需要停止不然计算量无限增加但又想保证质量—— 俄罗斯轮盘赌 RR
②俄罗斯轮盘赌 RR 得到正确shade函数
通过随机概率选择是否继续追踪光线可以有效地控制光线数量并避免能量损失过多实现步骤 设置一个概率 P以概率 P 发射光线若随机数 P则发射并计算光线亮度 Lo以概率 1-P 不发射光线若随机数 ≥ P不发射光线认为亮度为0能量补偿由于第三步会导致能量损失为了弥补损失需要将得到的光线亮度 Lo 除以 P即 Lo/P可以保证期望值不变
③射线生成追踪足够多的path
1.在 每个像素内均匀选择多个采样点2.并为每个采样点发射一条光线3.然后使用路径追踪算法 计算每条光线的亮度4.将他们 平均起来得到像素最终亮度
④对光源进行采样 由于光源相对于半球来说比较小所以 每个采样点发射的光线中只有很少一部分会击中光源有很少的光会从光源击中半球上被采样到的点用均匀采样会导致浪费光源对场景的贡献亮度远远大于了其他方向应该 更多地采样光源方向提高效率
推导
假设光源面积为 A —— pdf 1 A \frac{1}{A} A1渲染方程在立体角上的积分 Lo ∫ L i ⋅ f r ⋅ c o s d ω \int Li\cdot fr\cdot cos dω ∫Li⋅fr⋅cosdω —— 这个积分代表场景中一点的亮度Lo 是半球上 所有方向的光线亮度和反射率的积分为了使用蒙特卡洛积分来估计场景中一点的亮度Lo我们需要将渲染方程转化为对光源的积分数学的转化需要找到 立体角 dω 和光源表面积 dA 之间的关系 —— 光源面积立体角方向在球面上的投影立体角的求法球面面积法 ω S / r 2 ω S/r^2 ωS/r2 —— d ω d A c o s θ ′ ∣ x ′ − x ∣ 2 dω \frac{dA cosθ}{|x-x|^2} dω∣x′−x∣2dAcosθ′ 此时重写渲染方程 Lo ∫ A L i ( x , ω i ) f r ( x , ω i , ω o ) c o s θ c o s θ ′ ∣ x ′ − x ∣ 2 d A \int_{A}^{} L_{i}( x, ω_{i}) f_{r}( x, ω_{i} ,ω_{o})\frac{cosθcosθ}{|x-x|^2}dA ∫ALi(x,ωi)fr(x,ωi,ωo)∣x′−x∣2cosθcosθ′dA可以写出蒙特卡洛积分 f(x) L i ( x , ω i ) f r ( x , ω i , ω o ) c o s θ c o s θ ′ ∣ x ′ − x ∣ 2 L_{i}( x, ω_{i}) f_{r}( x, ω_{i} ,ω_{o})\frac{cosθcosθ}{|x-x|^2} Li(x,ωi)fr(x,ωi,ωo)∣x′−x∣2cosθcosθ′pdf 1/A
⑤结束
来自于光源的进行光源采样计算直接光照其他非光源的就需要RR计算间接光照 还得判断光源有没有被遮挡