Implementing One-Click Caustics in Corona Renderer
Our caustics solver automatically renders directly and indirectly visible caustics without requiring the user to set any technical
parameters. The image on the left is rendered using path tracing that allows next event estimation across the water surface in 21 minutes.
The full caustics solution on the right is rendered in 38 minutes with no such approximations. Image courtesy 3Darcspace studio.
This paper describes the implementation of a fully automatic caustics rendering solution in Corona Renderer. The main requirement is that the technique be completely transparent to the user, should not need any parameter setting at all, and be fully integrated into the interactive and progressive rendering workflow. We base our approach on an efficient subset of the vertex connection and merging algorithm, specifically a multiple importance sampling combination of path tracing and photon mapping. We rely on Metropolis sampling to guide photon paths into the relevant parts of the scene. While these underlying ideas have appeared in existing research work, numerous previously unaddressed issues and edge cases arise when one applies these ideas in practice. These include unreliable convergence of the Metropolis sampler in scenes with many light sources of different sizes and intensities, the “caustic in a stadium” problem (i.e., efficient rendering of small caustics in extremely large scenes), etc. We present the solutions we have developed to address such issues, yielding what we call “one-click caustics rendering”. User feedback suggests that our approach substantially improves usability over methods previously implemented in comercially available software, all requiring the user to set various technical parameters.
Links and Downloads
Many thanks to Corona Renderer users for stress-testing the caustic solver throughout its development and for providing some of the test scenes. This work was partially supported by the Czech Science Foundation grant 19-07626S.