Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphics 显式光采样_Graphics - Fatal编程技术网

Graphics 显式光采样

Graphics 显式光采样,graphics,Graphics,我已经在OpenCL中编写了一个路径跟踪程序。它工作得很好,但收敛速度很慢,特别是对于小型灯光。顺便说一下,我听说了显式光采样,这大大加快了速度 主要问题是我不明白它是如何工作的。我看到它的实现是在每次迭代时将标准Phong模型添加到材质的颜色中(例如)。我还看到它只是作为一条路径的最后一段添加进来的 有人能解释一下显式光采样是如何工作的吗?这两种方法似乎都存在。见: (具有下一个事件估计的路径跟踪) 直接照明法: Peter Shirley和Wang:通过蒙特卡罗积分进行直接照明计算 法线路

我已经在OpenCL中编写了一个路径跟踪程序。它工作得很好,但收敛速度很慢,特别是对于小型灯光。顺便说一下,我听说了显式光采样,这大大加快了速度

主要问题是我不明白它是如何工作的。我看到它的实现是在每次迭代时将标准Phong模型添加到材质的颜色中(例如)。我还看到它只是作为一条路径的最后一段添加进来的


有人能解释一下显式光采样是如何工作的吗?

这两种方法似乎都存在。见:

  • (具有下一个事件估计的路径跟踪) 直接照明法:
  • Peter Shirley和Wang:通过蒙特卡罗积分进行直接照明计算

法线路径跟踪通过在曲面法线方向的半球中随机发射光线来计算辐照度。这意味着当你有小光源时,随机击中该光源的概率非常低。为避免此问题,必须将集成过程分为两部分:

  • 直接光集成

  • 间接光集成

  • 但这里有一个问题:我如何确定哪个方向会直接击中光线? 有一些技巧可以做到这一点。其中之一是为所有灯光选择立体角方向并检查阴影光线,以便确定灯光贡献和可见性

    然后计算直接照明。 来自半球其他部分的光实际上是间接照明