Small changes allow SPPM to converge to the correct image for animated scenes. Before. Rays and photons were individually sampling a separate timestamp leading to many inconsistencies, see #440. This approach can not work without significant changes (e.g. implementing a time kernel). Using a single timestamp per iteration and using it for all rays and photons of that iteration instead provides a straightforward solution to this problem with minimal additions. Because of the numerous iterations/samples of SPPM, it reliably converges to the correct result without any sampling artifacts. I am fairly certain that this is also how they did it in the original paper.
For reference: I found this issue while working on a seminar paper about Photon Mapping at the Institute of Computer Graphics and Knowledge Visualisation, Graz University of Technology.
Small changes allow SPPM to converge to the correct image for animated scenes. Before. Rays and photons were individually sampling a separate timestamp leading to many inconsistencies, see #440. This approach can not work without significant changes (e.g. implementing a time kernel). Using a single timestamp per iteration and using it for all rays and photons of that iteration instead provides a straightforward solution to this problem with minimal additions. Because of the numerous iterations/samples of SPPM, it reliably converges to the correct result without any sampling artifacts. I am fairly certain that this is also how they did it in the original paper.
Image with Path Tracer Integrator:
Image with existing SPPM implementation (RMSE: 0.001364; PSNR: 57.31529; SSIM: 0.99679):
Image with fixed SPPM implementation (RMSE: 0.00074; PSNR: 62.55448; SSIM: 0.99938):
For reference: I found this issue while working on a seminar paper about Photon Mapping at the Institute of Computer Graphics and Knowledge Visualisation, Graz University of Technology.
My contact information:
My supervisor:
Scene used in the example images: