Source code for pbrt, the renderer described in the third edition of "Physically Based Rendering: From Theory To Implementation", by Matt Pharr, Wenzel Jakob, and Greg Humphreys.
The current BDPT implementation neglects to account for the adjoint BSDF correction term when dealing with surfaces with shading normals in evaluations of the Vertex::f() function. Previously, the correction was only present in the path weights in RandomWalk() when sampling chains of vertices.
This commit addresses this, which eliminates various observed BDPT <-> PT discrepancies.
The current BDPT implementation neglects to account for the adjoint BSDF correction term when dealing with surfaces with shading normals in evaluations of the
Vertex::f()
function. Previously, the correction was only present in the path weights inRandomWalk()
when sampling chains of vertices.This commit addresses this, which eliminates various observed BDPT <-> PT discrepancies.