完全蒙特卡洛体积散射


9

我想将完整的蒙特卡罗体积散射添加到我的路径追踪器中,但是我在研究如何做到这一点上很难。让我解释一下我想做的事情: 蒙特卡罗体积散射 射线进入材料,然后应用BTDF,然后经过一定距离,发生体积散射事件,此后(在各向同性的情况下),射线沿散射方向向任意方向散射。球。重复此过程,直到射线与另一个BTDF一起离开材料为止。

我的问题如下:

  1. 如何选择分散事件之间的距离?直觉告诉我应该有某种散布pdf,它给出一定距离后散布的可能性吗?
    • 这是正确的吗?
    • pdf是各向同性材料的线性函数吗?
    • 此功能是否有名称或我可以使用Google的名称?
  2. Beer-Lambert还会在分散事件之间应用吗?
    • 我不会。由于Beer-Lambert是实际散射计算的简化。
    • 再说一次,也许Beer-Lambert是一个微观尺度的计算,而路径追踪则是一个宏观尺度。
  3. 相当于BSDF的体积是多少?看起来我可以使用诸如Henyey-Greenstein之类的相位函数来确定新方向,但是如何使用衰减呢?
  4. 最后,对于蒙特卡洛体积散射,有哪些更好的Google短语?
    • 搜索体积散射或SSS,最终会给出有关完整蒙特卡罗模拟(偶极子,散射,入散射,出散射,扩散等)的简化的论文,方法和博客文章。

Answers:


7

首先,Steve Marschner的这些课程笔记为参与媒体中的蒙特卡洛路径追踪提供了很好的参考。

σσ=σs+σa

σ

因此,直接回答您的问题:

  1. eσxx

    x=(lnξ)/σeσx

    σa/σ1σa/σ

  2. 不,如果您按照刚才描述的重要性采样程序进行操作,则Beer-Lambert已经隐式包含在采样中,因此您不想将其应用于路径权重。

  3. σs,σa

    您也可以为BSDF做类似的事情。您可以排除整体反照率,并且始终将方向依赖性标准化。这主要是AFAICT的惯例问题。

  4. 尝试“参与介质”(即,体积“介质”-复数“介质”,其“参与”光传输)和“体积路径追踪”。


您如何采样非单色散射/吸收系数的距离?随机选择一个通道,然后除以1/3(对于RGB或XYZ)?
RichieSams

1
@RichieSams在这种情况下,我看到的建议是为每条光线分配单个波长或颜色通道。因此,您基本上可以分别计算每个通道的散射。例如,在大气散射中,蓝光的散射要比红色强得多,因此需要更多的散射事件,并且蓝色光子将比红色光子遵循更多的回旋路径。因此,分别模拟它们很有意义-就像由于折射造成的色散一样。我从来没有真正尝试过这个。
内森·里德

嗯,那很有道理。虽然,性能会受到影响……难怪每​​个人都希望评估参与蒙特卡洛的媒体。感谢您提供所有信息!
RichieSams
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.