Radiative Backpropagation: An Adjoint Method for Lightning-Fast Differentiable Rendering
Abstract
Physically based differentiable rendering has recently evolved into a powerful tool for solving inverse problems involving light. Methods in this area perform a differentiable simulation of the physical process of light transport and scattering to estimate partial derivatives relating scene parameters to pixels in the rendered image. Together with gradient-based optimization, such algorithms have interesting applications in diverse disciplines, e.g., to improve the reconstruction of 3D scenes, while accounting for interreflection and transparency, or to design meta-materials with specified optical properties.
The most versatile differentiable rendering algorithms rely on reverse-mode differentiation to compute all requested derivatives at once, enabling optimization of scene descriptions with millions of free parameters. However, a severe limitation of the reverse-mode approach is that it requires a detailed transcript of the computation that is subsequently replayed to back-propagate derivatives to the scene parameters. The transcript of typical renderings is extremely large, exceeding the available system memory by many orders of magnitude, hence current methods are limited to simple scenes rendered at low resolutions and sample counts.
We introduce radiative backpropagation, a fundamentally different approach to differentiable rendering that does not require a transcript, greatly improving its scalability and efficiency. Our main insight is that reverse-mode propagation through a rendering algorithm can be interpreted as the solution of a continuous transport problem involving the partial derivative of radiance with respect to the optimization objective. This quantity is “emitted” by sensors, “scattered” by the scene, and eventually “received” by objects with differentiable parameters. Differentiable rendering then decomposes into two separate primal and adjoint simulation steps that scale to complex scenes rendered at high resolutions. We also investigated biased variants of this algorithm and find that they considerably improve both runtime and convergence speed. We showcase an efficient GPU implementation of radiative backpropagation and compare its performance and the quality of its gradients to prior work.
Code: as of Mitsuba 3.0.0, Path Replay Backpropagation, an algorithm improving on Radiative Backpropagation, is the default method used to compute scene gradients. It is implemented in the prb
(surfaces) and prbvolpath
(volumes) integrator plugins.
The original research code and scene data for Radiative Backpropagation are available for download below. Please note that this implementation is experimental and unsupported. It is based on an older version of Mitsuba 2, which uses OptiX 6.
- Code (55.3 MB, last updated: 2021-08-31)
- Scene data (187MB, last updated: 2020-08-21)
Video
Figures
Text citation
Merlin Nimier-David, Sébastien Speierer, Benoît Ruiz, and Wenzel Jakob. 2020. Radiative Backpropagation: An Adjoint Method for Lightning-Fast Differentiable Rendering. In Transactions on Graphics (Proceedings of SIGGRAPH) 39(4).
BibTeX
@article{NimierDavid2020Radiative, author = {Merlin Nimier-David and Sébastien Speierer and Benoît Ruiz and Wenzel Jakob}, title = {Radiative Backpropagation: An Adjoint Method for Lightning-Fast Differentiable Rendering}, journal = {Transactions on Graphics (Proceedings of SIGGRAPH)}, volume = {39}, number = {4}, year = {2020}, month = jul, doi = {10.1145/3386569.3392406} }