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