*Disclaimer: Shameless self-promotion follows.*

Hi all,

I have the pleasure to inform you that our SIGGRAPH Asia 2012 paper "

*Light Transport Simulation with Vertex Connection and Merging*" is now publicly available at

http://www.iliyan.com/publications/VertexMerging

**Summary:**The paper presents a multiple importance sampling combination of two of the most successful light transport simulation algorithms available today - bidirectional path tracing and (progressive) photon mapping. The so-called vertex connection and merging (VCM) algorithm aims to automatically get the best of both algorithms, which often complement each other in terms of performance under different lighting conditions.

**Additional material:**In addition to the paper that describes and evaluates the algorithm, we provide a supplemental document with more derivations and results. Notably, it contains a comparison against Veach and Kelemen style Metropolis light transport (done in Mitsuba). You will also find a ZIP archive with all images for easier exploration and comparison.

I have also prepared a simple web page with a cool interactive JavaScript comparison between progressive photon mapping, bidirectional path tracing and our vertex connection and merging:

http://www.iliyan.com/publications/Vert ... omparison/

**SmallVCM**

Another big news is the release of SmallVCM - a (not too) small open source physically based renderer that implements [1] path tracing, [2] light tracing, [3] progressive photon mapping, [4] (progressive) bidirectional photon mapping, [5] bidirectional path tracing, and, of course, the superset of all these - our [6] vertex connection and merging algorithm.

The goal of this project is to provide relatively compact (but still readable ) and practical implementations of the aforementioned algorithms in a single framework, and to help people better understand some subtleties and differences in their implementations. In particular, certain implementation details of bidirectional path tracing (BPT) often bring confusion and misunderstanding, and we've seen a lot of related discussions in this forum. Since vertex merging builds on top of bidirectional path tracing by adding even more complexity to it, we felt (and sincerely hope) that an open source implementation would be appreciated by people interested in the algorithm.

One technically interesting aspect of SmallVCM is the iterative multiple importance sampling (MIS) weight computation scheme for the bidirectional algorithms. The traditional BPT way of iterating over the vertices of each path to compute its MIS weight can severely impact vertex merging performance, as vertex merging often constructs a large number of paths with a single range query. An efficient MIS weight computation is thus even more important to the efficiency of the VCM algorithm than is it to BPT. The scheme we use is almost identical to the one independently developed by by Dietger van Antwerpen for BPT, and in addition computes weights for vertex merging. A technical report on the implementation will follow soon.

Having all this said, we are aware that the clarity of the code can still be greatly improved, and we welcome comments, suggestions and bug reports!

SmallVCM is hosted on GitHub, and has its own web site:

http://www.smallvcm.com