Hi all,
I have rewritten my renderer from scratch because the old code was too ugly to add anything useful on top of it . The new design is mainly based on pbrt , I’m also being inspired by other open source ray tracers like Picogen and LuxRender .
It now uses a sah based kd tree with a buildingĀ complexity of O (nlog(n)^2) to make the geometry intersection tests faster , I also made it multithreaded thanks to the simplicity of openmp.
Unfortunately even with these improvements my ray tracer struggles in scenes with strong indirect illumination , so I added metropolis light transport as proposed by Kelemen et a.l. , the result is impressive despite the fact that my implementation is unstable :
And another render showing the glossy dielectric material ( image rendered with path tracing + explicit direct light connection )



Nice images! What kind of render times are we talking here?
Also, do you have any plans of sharing your source code? I’m currently trying to implement bidirectional path tracing, and I’m planning to do MLT after that. Sometimes a bit of code helps alot after struggling with those damn articles. ^^
Thanks for the comment. This is an old work, I don’t remember the render times exactly but I guess the average image took 10 min. Unfortunately, I lost the source code of that ray tracer by accident (http://dpow3r.deviantart.com/journal/) so I’m sorry I can’t give source code. Anyway, if you want to implement bdpt, I would highly recommend reading eric veach’s thesis I know its hard and filled with a lot of abstract mathematical notations but its really the only way to learn how to efficiently do bidirectional path tracing (with multiple importance sampling). For MLT, the reference is Kelemen et al. paper, its quite easy I guess once you get familiar with the idea of metropolis sampling.
I can throw you a couple of references though:
http://www.hungrycat.hu/Publications.html
http://rivit.cs.byu.edu/a3dg/publications/metropolisTutorial.pdf
http://www.cs.unc.edu/~narain/courses/comp870/a3-globillum/
http://www.lux-render.net/forum/viewtopic.php?f=13&t=63 (A talk by Matt Pharr about MLT, there is a megaupload link on the bottom)
http://graphics.stanford.edu/courses/cs348b-03/lectures/metrofinal.pdf
http://www.pbrt.org (the best book on modern rendering techniques, it discusses MLT and bdpt)
If you need any help, feel free to ask
Thanks for your answer, and your tips.
Really impressive render times for those images.
I guess I have some reading to do!