RGL
EPFL Logo

Radiative Backpropagation: An Adjoint Method for Lightning-Fast Differentiable Rendering

In Transactions on Graphics (Proceedings of SIGGRAPH 2020)

Our method is able to reconstruct the texture of a globe seen through a bell jar in this interior scene with complex materials and interreflection. Starting from a different initialization (Mars), it attempts to match a reference rendering by differentiating scene parameters with respect to L2 image distance. The plot on the right shows convergence over time for prior work and multiple variants of radiative backpropagation. Our method removes the severe overheads of differentiation compared to ordinary rendering, and we demonstrate speedups of up to ~1000× compared to prior work.

 

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}
}