[计算机图形学入门]16.Monte Carlo Path Tracing

一.Monte Carlo Integration

作用:给定一个函数,计算其定积分

 在b-a区间内均匀采样xi,用xi * f(xi)作为面积值,将所有面积值相加求平均.

 对于不普遍情况的非均匀采样(p(x)为概率密度函数,均匀采样则概率密度1/(b-a))

 要求:要是定义在x上的积分.采样越多误差越小

二.path tracing

(注意区别Ray tracing)

whitted-style ray tracing 认为物体表面反射沿镜面反射方向,若对于粗糙物体,则本该反射面的一小块区域都会亮,whitted-style ray tracing难以做到.whitted-style ray tracing的光线打到漫反射物体上就不再反射了,而实际上漫反射也是会继续反射的.

 解出渲染方程能获得更真实的结果(用Monte Carlo Integration)

 在半球方向随机选一个方向采样(这里用均匀采样)

 则对于任何一个点的一次直接光照

 伪代码:从被照物体的半球向外发射光线,若打到光线,则叠加计算结果

 对于全局光照的多次弹射,若要求物体受到p的反射光,可以先把Q当作光源,求p的直接光照,Q再与光源算直接光照.

 递归算法伪代码:

 但该算法若物体发出无数射线,有很多射线记中目标,目标又由每个反射点发出无数光照,则会指数爆炸

 可以在反射点随机只发射一根光线.多次重复求平均.把指数控制为1,避免指数爆炸问题.

 伪代码:

 为了防止递归无止境,引入俄罗斯轮盘赌的方法.一定的概率(自定义)停止往下递归.

 p的概率发出射线,将放回值除以p.这样做的好处是最后的期望值还是Lo

 若采样次数少,从每一个像素发出的光线少,则采样画面有黑点噪声.

 为了使每一个发出的光线尽量打到光源,则可以手动规定PDF,把原本的半球形改为自定义范围,例如光源与反射面直接连线的小范围.

先看光源,若均匀采样光源,则PDF = 1/A,只要找到dA与dw的关系,就可以把球面上的积分范围用A表示.

 (分母是距离平方)

 则转换后,新的求Lo方程,每个值都取在光源范围内,不浪费光线.这里就可以不用俄罗斯轮盘赌了.间接光照继续用.

 

参考资料Games101

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值