Technical Papers
Differentiable Monte Carlo Ray Tracing through Edge Sampling
Event Type
Technical Papers
Registration Categories
TimeThursday, 6 December 20182:15pm - 2:41pm
DescriptionGradient-based methods are becoming increasingly important for computer graphics,
machine learning, and computer vision. The ability to compute gradients is crucial
to optimization, inverse problems, and deep learning. In rendering,
the gradient is required with
respect to variables such as camera parameters, light sources, scene geometry,
or material appearance. However, computing the gradient of rendering is
challenging because the rendering integral includes visibility terms that are
not differentiable.
Previous work on differentiable rendering has focused on
approximate solutions. They often do not handle secondary effects such as shadows or
global illumination, or they do not provide the gradient with respect to variables other
than pixel coordinates.

We introduce a general-purpose differentiable ray tracer, which, to our knowledge,
is the first comprehensive solution that is able to compute derivatives of scalar
functions over a rendered image with respect to arbitrary scene parameters such as
camera pose, scene geometry, materials, and lighting parameters. The key to
our method is a novel edge sampling algorithm that directly samples the Dirac delta
functions introduced by the derivatives of the discontinuous integrand. We also develop
efficient importance sampling methods based on spatial hierarchies. Our method can
generate gradients in times running from seconds to minutes depending on scene
complexity and desired precision.

We interface our differentiable ray tracer with the deep learning library PyTorch and
show prototype applications in inverse rendering and the generation of adversarial
examples for neural networks.