Path regularization?

109 views
Skip to first unread message

Bartłomiej Siwek

unread,
Jan 14, 2022, 10:13:16 AM1/14/22
to pbrt
Hello everyone,

I am currently looking at adding path regularization to our path tracer (forward path tracing, not BPT or anything else) and since pbrt-v4 lists part regularization I was hoping to find some example source code here. Unfortunately I came out empty so I was wondering if that feature is still on the TODO list or did I just missed it?

Best Regards,
Bart Siwek

Matt Pharr

unread,
Jan 19, 2022, 2:59:21 PM1/19/22
to pbrt

Bartłomiej Siwek

unread,
Jan 20, 2022, 12:59:42 PM1/20/22
to pbrt
Hi,

Thank you. I totally missed that. I need to give it a read.

Best Regards,
Bart Siwek

Bartłomiej Siwek

unread,
Feb 1, 2022, 7:39:07 AM2/1/22
to pbrt
Hi again,

I had a bit of a delay in looking at the regularization code due to some work coming in, but now that I have some questions popped up and I was hoping to get some answers by asking them here.

First of all, the condition to regularize the BSDF is "regularize && w.anyNonSpecularBounces". As far as I read the code the "w.anyNonSpecularBounces" will be false only if all the bounces in a path up to this point have been specular.
This differs somewhat from what Kaplanya&Dachsbacher used in their paper "Path Space Regularization for Holistic and Robust Light Transport". They suggest regularizing only the paths that, in extended Heckbert's notation do not contain the DD substring.
The condition in PBRT seems to regularize different paths. For example I think the path "LSDDDSE" would be regularized since all the bounces are non-specular. On the other hand I think the "LSDSDSE" path (which is used as an example in the paper) would not be regularized since it only contains one specular bounce.
What is the motivation behind doing it in such a way and are there any benefits?

Secondly, I noticed that only ConductorBxDF and DielectricBxDF actually do any regularization (with a notable addition of ThinDielectricBxDF which has it marked as TODO) and for other BxDFs this operation is a no-op. This actually makes sense for most of them since they are diffuse by nature or are completely different beast ( MeasuredBxDF ), but my concern is with NormalizedFresnelBxDF. Wouldn't this type of distribution also benefit from regularization due to it being reflective in some cases?

Thirdly, by the extension of the previous point, it seems that reflective BxDFs are not covered by regularization even though it would seem they would benefit from it the most and are the most inline with the Kaplanya&Dachsbacher papers theory due to Direc delta distributions. Is this an omission or was it done purposefully? And if it's the latter what was the motivation?

Best Regards,
Bart Siwek
Reply all
Reply to author
Forward
0 new messages