mmp / pbrt-v3

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.
http://pbrt.org
BSD 2-Clause "Simplified" License
4.88k stars 1.19k forks source link

Account for adjoint BSDF when evaluating Vertex::f (fixes #73, #87) #94

Closed wjakob closed 7 years ago

wjakob commented 7 years ago

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.