mitsuba icon indicating copy to clipboard operation
mitsuba copied to clipboard

Bug report: wrong radius update in SPPM due to the photons in opposite side

Open hchoi405 opened this issue 3 years ago • 0 comments

Problem

The SPPM integrator accidentally updates the radius when photons arrive at the opposite side of the surface.

Cause

It's because there are no exception codes to prevent the photons on the opposite side to be stored in KD-tree. Once they are stored, SPPM integrator finds them and reduces the radius of the corresponding pixel. The final color value is not severely corrupted because their flux is filtered out at BSDF evaluation stage, but still causes higher noise than normal due to the unexpectedly reduced radius.

Below is the image showing the sign of dot product (green:+, red:-) of geometric normal of the surface with the incoming direction of photon found at the hit point. (Breakfast Room from link, iteration=1, photons=250K) image

Red dots indicate the photon is coming from the opposite side of the surface.

Possible Solution

I will make a PR with simple workaround

hchoi405 avatar Jun 17 '21 08:06 hchoi405