Games101 计算机图形学课程笔记:Lecture16 Ray Tracing 4

Monte Carlo Integration

一种近似求积分的数值方法,可在无法确定函数的解析式时使用。

随机采样,根据概率密度函数(PDF)求出积分的近似值。

路径追踪

Motivation

Whitted-Style Ray Tracing:

  • 总在进行镜面反射/折射
  • 忽略了光线在漫反射表面的反射
  • 简化过度,最终效果是错误的

而渲染方程是正确的,需要找到一个解该方程的方法。以下不考虑物体本身发光的情况,因此本质上是解反射方程。

解渲染方程

只考虑直接光照

考虑间接光照

若要考虑间接光照,则应该递归计算:

然而,这样的解法有两个问题。

指数爆炸问题

若每次随机采样N=100个方向,随者光线反射次数 m m m的增加,会产生指数爆炸,最终要计算 N m N^m Nm次光线

只要当 N = 1 N=1 N=1时,才不会出现指数爆炸问题,因此每次随机选择一条光线。

但是这种情况会有很多噪声。解决方案:每个像素取多个不同的路径并平均。

伪代码:

递归无出口问题

上面的shade函数递归没有出口,计算不会停止。如果指定特定数量的反射次数,则会损失部分能量。

使用俄罗斯轮盘赌(Russian Roulette, RR)来解决。

设定一个概率P,以P为概率发出光线并将返回的shading结果除以P,即 L o / P L_o/P Lo/P,以1-P为概率不发出光线,得到0。以这种方式可以计算出 L o L_o Lo

这样得到的结果是正确的。

对光进行采样

若这样随机采样,则可能无法采样到与光源的方向,这样就造成了采样的浪费。因此对光源进行采样可以避免浪费。

蒙特卡罗允许任何方式的采样,只要采用对应的x和p即可。
对光源进行均匀采样的话, p d f = 1 / A pdf=1/A pdf=1/A,但是渲染方程是在立体角上进行积分的。

因此需要将两者进行转换。

寻找 d ω dω dω d A dA dA的关系,如下:

因此,可以将渲染方程写为

总结

radiance由两个部分组成

  • 光源(直接光照,不需要使用RR)
  • 其他反射(不直接的,使用RR)

最终,需要注意点与光源之间被物体遮挡的情况。

Ray Tracing概念

  • Previous: Ray tracing == Whitted-style ray tracing
  • Modern: The general solution of light transport, including
    • (Unidirectional & bidirectional) path tracing
    • Photon mapping
    • Metropolis light transport
    • VCM / UPBP…
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值