我在 OpenCL 中编写了一个路径跟踪器。它工作得很好,但收敛速度很慢,特别是对于小灯。顺便说一句,我听说过显式光采样,它大大加快了速度。
主要问题是我不明白它是如何工作的。我已经看到它实现为在每次迭代时将标准 Phong 模型添加到材料的颜色中(例如,GLSL Path Tracer)。我还看到它只是作为路径的最后一站添加的。
有人可以解释显式光采样是如何工作的吗?
我在 OpenCL 中编写了一个路径跟踪器。它工作得很好,但收敛速度很慢,特别是对于小灯。顺便说一句,我听说过显式光采样,它大大加快了速度。
主要问题是我不明白它是如何工作的。我已经看到它实现为在每次迭代时将标准 Phong 模型添加到材料的颜色中(例如,GLSL Path Tracer)。我还看到它只是作为路径的最后一站添加的。
有人可以解释显式光采样是如何工作的吗?
法线路径追踪通过在表面法线方向的半球中随机发射光线来计算辐照度。这意味着当你有小光源时,随机击中这个光源的概率非常低。为避免此问题,您必须将集成过程分为两部分:
直接光集成
间接光集成。
但这里有一个问题:我如何确定哪个方向会直接击中光线?有一些技术可以做到这一点。其中之一是为所有灯光选择立体角方向并检查阴影光线,因此您将确定灯光贡献和可见性。
之后,您计算了直接照明。来自半球其他部分的光实际上是间接照明。
看来这两种方法都存在。看: