My little path tracer

Show-off, reference material & tools.
dawelter
Posts: 47
Joined: Sun Oct 29, 2017 3:15 pm
Location: Germany

Re: My little path tracer

Post by dawelter » Wed Mar 04, 2020 7:56 pm

Another over-night render. Much better this time.
torus_in_cube.jpg
torus_in_cube.jpg (143.2 KiB) Viewed 1410 times
I switched to mixtures of Von Mises Fisher distributions and implemented tricks from the "Path Guiding in Production" paper (stochastic filtering and troughput clamping). Together with some parameter tweaking, this helped. Now I can start working on the guiding algo for volume rendering. :-)

koiava
Posts: 49
Joined: Thu Apr 24, 2014 8:18 am
Location: Tbilisi, Georgia
Contact:

Re: My little path tracer

Post by koiava » Tue Mar 10, 2020 8:48 am

That looks gorgeous. I'm wondering what would be a memory requirements of those additional data for more or less realistic production scene.
Did you also implemented sample weighting described in that paper?
Colibri Renderer

dawelter
Posts: 47
Joined: Sun Oct 29, 2017 3:15 pm
Location: Germany

Re: My little path tracer

Post by dawelter » Sat Mar 14, 2020 2:48 pm

Thanks :-)

I wasn't very much concerned with memory so far. However, I can tell that this scene uses 2k cells or so. Each of which has to store the coefficients for two mixtures - plus some statistics for the EM algorithm. To be frank, I haven't tested the algorithm on much else than this one scene ... It's still pretty much work in progress.

And regarding the weighting - you mean in the expectance maximization? Yes, I absolutely needed that because I only do forward path tracing. Hence, initially the distribution from which directions are sampled has nothing to do with the actual distribution of incident light. If you want to see the code, it's pretty terrible, but take a look if you like https://github.com/DaWelter/ToyTrace/blob/master/src/distribution_mixture_models.cxx#L407

Edit: Obligatory cornelbox with water. This one is unfortunate as my (poor) implementation of brute force path tracing (but still with NEE) beats my (also poor) implementation of the guided algorithm in an equal-time rendering. The guided algorithm seems more sample-efficient though.
cornelbox_water.jpg
cornelbox_water.jpg (267.92 KiB) Viewed 581 times
P.S. A cell containing the mixtures and other stuff takes about 1.1kB.

Post Reply