为什么蒙特卡洛光线跟踪的性能要优于分布式光线跟踪?


30

我听说,蒙特卡洛射线追踪器(基于路径跟踪算法)的质量比分布式(随机)引擎要现实得多。我试图理解为什么,但是我才刚刚开始。

为了深入研究这个主题并了解基础知识,有人可以指出我正确的方向吗?算法的哪一部分导致更逼真的渲染结果?


9
我想要的不仅仅是“一本扎实的书的推荐”,因为对此问题的知道的人应该直接给出这个问题的答案。我们应该尝试将信息放在站点上,而不是指向站点外。
Robobenklein

@robobenklein问题已编辑,以为最好小心;)
p2或

@ChristianRau删除“谢谢”应该在meta中讨论,这在每个堆栈交换站点上都是不同的……
p2或

1
@可怜,不是。那是无处改变的事情。而且,只要没有特殊规定,我们还是会采用一般的SE规定。但是即使那样,我也很难想象有人允许在这里投票。我从未在其他SE网站上看到过这种好的做法。
克里斯说,恢复莫妮卡

Answers:


31

术语“分布式射线追踪”最初是由Robert Cook在1984年的论文中提出的。他的观察是,为了在光线跟踪器中执行抗锯齿,渲染器需要执行空间上采样-也就是说,要获取比图像中像素数更多的样本(即,拍摄更多的光线)并合并其结果。例如,一种方法是在一个像素内拍摄多条光线并求平均其颜色值。但是,如果渲染器已经在每个像素中跟踪了多条射线以获得抗锯齿图像,则这些射线也可以“分布”在其他尺寸中,而不仅仅是像素位置以采样单条射线无法捕获的效果。重要的一点是,在空间上采样的基础上,这没有任何额外的成本,因为无论如何您已经在追踪这些额外的光线。例如,

蒙特卡洛射线追踪是一个有点含糊的术语。在大多数情况下,它是指解决渲染方程式的渲染技术,是由吉姆·卡吉亚(Jim Kajiya)于1986年使用蒙特卡洛积分引入的。几乎所有解决渲染方程式的现代渲染技术(例如路径跟踪,双向路径跟踪,渐进光子映射和VCM)都可以归类为Monte Carlo射线跟踪技术。蒙特卡洛积分的思想是,我们可以通过在积分域中随机选择点并在这些点取函数值的平均值来计算任何函数的积分。在较高层次上,在蒙特卡洛光线追踪中,我们可以使用此技术对到达像素内的摄像机的光量进行积分,以计算像素值。例如,路径跟踪器通过随机地选择像素内的一个点以拍摄第一条射线来执行此操作,然后继续随机选择一个方向以继续在其着陆的表面上,等等。如果要进行运动模糊,也可以在时间轴上随机选择一个位置,如果要进行景深,我们也可以随机在光圈上选择一个点,或者...

如果这听起来与分布式射线跟踪非常相似,那是因为!我们可以将分布式光线跟踪视为对蒙特卡洛算法的非正式描述,该算法对诸如软阴影的某些效果进行采样。Cook的论文缺乏数学框架来真正合理地对此进行推理,但是您当然可以使用简单的Monte Carlo渲染器来实现分布式射线跟踪。值得一提的是,分布式射线追踪没有任何关于全局照明效果的描述,这自然是在渲染方程式中建模的(应该提到的是Kajiya的论文在Cook的论文发表两年后出版)。

您可以将Monte Carlo射线跟踪视为分布式射线跟踪的更通用版本。蒙特卡洛射线追踪包含一个通用的数学框架,可让您处理几乎所有的影响,包括分布式射线追踪论文中提到的那些。

如今,“分布式射线跟踪”实际上并不是用来指代原始算法的术语。通常,您会结合“分布效果”听到它,“分布效果”就是诸如运动模糊,景深或柔和阴影之类的效果,这些效果无法通过单样本射线追踪器处理。


5

在“ 分布式光线跟踪”中,您随机采样了BRDF 可能不喜欢的方向上的许多光线。而在蒙特卡洛光线追踪或简单的路径追踪中,您只能沿BRDF首选的方向对一条光线进行采样。因此,路径跟踪具有两个明显的优点:

  • 计算上较便宜。这意味着与具有多条射线的分布式射线跟踪相比,使用相同的计算能力,您可以自由计算更多的对象命中。
  • 噪音小。分布式光线跟踪在BRDF可能不希望的方向上对光线进行采样,因此会引入不需要的伪影。

因此,路径跟踪将为您带来更好的结果。


2
“而在蒙特卡洛光线追踪或简单的路径追踪中,您只能在BRDF首选的方向上对一条光线进行采样。” 本身,您不知道如何选择射线。天真的方法使用随机射线。考虑到BRDF是重要性采样,而不是Monte Carlo射线跟踪或路径跟踪固有的。
大卫·库里

4
我相信这个答案是完全错误的。您可以自由地对出射光线进行多重采样,并在合并时权衡其结果。您获得的真相与俄罗斯轮盘赌技术相同,但通常认为前一种方法更昂贵。
v.oddou
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.