Shape, Light, and Material Decomposition from Images using Monte Carlo Rendering and Denoising

Jon Hasselgren
NVIDIA
Nikolai Hofmann
NVIDIA
Jacob Munkberg
NVIDIA


Abstract

Recent advances in differentiable rendering have enabled high-quality reconstruction of 3D scenes from multi-view images. Most methods rely on simple rendering algorithms: pre-filtered direct lighting or learned representations of irradiance. We show that a more realistic shading model, incorporating ray tracing and Monte Carlo integration, substantially improves decomposition into shape, materials & lighting. Unfortunately, Monte Carlo integration provides estimates with significant noise, even at large sample counts, which makes gradient-based inverse rendering very challenging. To address this, we incorporate multiple importance sampling and denoising in a novel inverse rendering pipeline. This improves convergence and enables gradient-based optimization at low sample counts. We present an efficient method to jointly reconstruct geometry (explicit triangle meshes), materials, and lighting, which substantially improves material and light separation compared to previous work. We argue that denoising can become an integral part of high quality inverse rendering pipelines.

1 Introduction↩︎

Differentiable rendering shows great promise for accurate multi-view 3D reconstruction from image observations. NeRF [1] use differentiable volume rendering to create high quality view interpolation through neural, density-based light-fields. Surface-based methods apply signed distance fields [2][6] or triangle meshes [7], [8] to capture high quality geometry. Recent work [7], [9], [10] further decompose these representations into geometry, material, and environment light.

Most aforementioned methods rely on appearance baked into neural light fields or apply simple shading models. Typically, direct lighting without shadows is considered, combined with pre-filtered representations of environment lighting [6], [7]. Some methods account for shadowing and indirect illumination [9][11], but often lock the geometry optimization when sampling the shadow term, or rely on learned representations of irradiance. While results are impressive, the deviations from physically-based shading models makes it harder for these methods to plausibly disentangle shape, material and lighting, as shown in Figure 1.

Figure 1: nvdiffrec [7] successfully reconstructs complex geometry from multi-view images, but struggles with the material & light separation. In the top row, we visualize split-screens of the rendered reconstruction and the diffuse albedo texture. Note that nvdiffrec bakes most of the lighting in the albedo texture, which hurts quality in relighting scenarios (shown in the bottom row). In contrast, by leveraging a more advanced renderer, we successfully disentangle material and lighting (note the lack of shading in the albedo texture), and improve relighting quality. The dataset consists of 200 views of the Rollercoaster from LDraw resources [12] (CC BY-2.0).

In theory, it is straightforward to replace the rendering engines of these 3D reconstruction methods with photorealistic differentiable renderers [13][18] and optimize in a setting with more accurate light simulation, including global illumination effects. In practice, however, the noise in multi-bounce Monte Carlo rendering makes gradient-based optimization challenging. Very high sample counts are required, which result in intractable iteration times.

In this paper, we bridge the gap between current multi-view 3D reconstruction and physically-based differentiable rendering, and demonstrate high-quality reconstructions at competitive runtime performance. We attack the challenging case of extracting explicit triangle meshes, PBR materials and environment lighting from a set of multi-view images, in a format directly compatible with current DCC tools and game engines. For improved visual fidelity, we compute direct illumination using Monte Carlo integration with ray tracing, and add several techniques to combat the increased noise levels. By carefully trading variance for bias, we enable efficient gradient-based optimization in a physically-based inverse rendering pipeline. Compared to previous 3D reconstruction methods, our formulation primarily improves material and light separation.

Concretely, we reduce variance by combining multiple importance sampling [19] and differentiable denoisers. We evaluate both neural denoisers [20][22] and cross-bilateral filters [23] in our pipeline. Furthermore, we decompose the rendering equation into albedo, demodulated diffuse lighting and specular lighting, which enable precise regularization to improve light and material separation.

2 Previous Work↩︎

2.0.0.1 Neural methods for multi-view reconstruction

These methods fall in two categories: implicit or explicit scene representations. NeRF [1] and follow-ups [24][33], use volumetric representations and compute radiance by ray marching through a neurally encoded 5D light field. While achieving impressive results on novel view synthesis, geometric quality suffers from the ambiguity of volume rendering [27]. Surface-based rendering methods [2][5] optimizing the underlying surface directly using implicit differentiation, or gradually morph from a volumetric representation into a surface representation. Methods with explicit representation estimate 3D meshes from images, where most approaches assume a given mesh topology [34][36], but recent work also include topology optimization [7], [8], [37], [38].

2.0.0.2 BRDF and lighting estimation

To estimate surface radiometric properties from images, previous work on BTF and SVBRDF estimation rely on special viewing configurations, lighting patterns or complex capturing setups [39][47]. Recent methods exploit neural networks to predict BRDFs from images [48][53]. Differentiable rendering methods [34][36], [54], [55] learn to predict geometry, SVBRDF and, in some cases, lighting via photometric loss.

Most related to our work are neural 3D reconstruction methods with intrinsic decomposition of shape, materials, and lighting from images [6], [7], [9][11], [56]. Illumination is represented using mixtures of spherical Gaussians [6], [7], [9], [11], pre-filtered approximations [7], [56], or low resolution environment maps [10]. When the shadowing term is accounted for [10], optimization is split into two passes where geometry is locked before the shadow term is sampled. Other approaches represent indirect illumination with neural networks [11], [57].

2.0.0.3 Image denoisers

Denoisers are essential tools in both real-time- and production renderers. Traditionally, variants of cross-bilateral filters are used [58], which require scene-specific manual adjustments. More recently, neural denoisers [20][22] trained on large datasets have shown impressive quality without the need for manual tuning, and are now incorporated in most production renderers. We directly incorporate differentiable versions of these denoisers in our pipeline. We are currently unaware of image denoisers applied in differentiable rendering, but we see a lot of potential for denoisers in physically-based inverse rendering going forward.

3 System↩︎

We target the challenging task of joint optimization of shape, material and environment lighting from a set of multi-view images with known foreground segmentation masks and camera poses. Our goal is to use physically-based rendering techniques to improve the intrinsic decomposition of lighting and materials, producing assets that can be relit, edited, animated, or used in simulation. As a proof-of-concept, we extend a recent approach, nvdiffrec [7], which targets the same optimization task (shape, materials and environment lighting). Notably, they directly optimize a triangular 3D model, which has obvious benefits: it is easy to import and modify the reconstructed models in existing DCC tools, and a triangular representation can exploit hardware-accelerated differentiable rasterization [59]. In our setting, triangular 3D models also means we can leverage hardware-accelerated ray-tracing for efficient shadow tests. nvdiffrec reports competitive results on view interpolation, material reconstruction, and relighting, and we will use their pipeline as a baseline in our evaluations.

Figure 2: We extend nvdiffrec [7] with a differentiable Monte Carlo renderer for direct illumination. Additionally, to reduce variance, we add a differentiable denoiser. These novel steps are highlighted in green. Following nvdiffrec, the topology is parameterized using an SDF, and a triangular surface mesh is extracted in each iteration using DMTet [8], combined with spatially-varying PBR materials and HDR environment lighting. The system is supervised using only photometric loss on the rendered, denoised image compared to a reference, and gradients are back-propagated to the denoiser, shape, materials, and lighting parameters. All parameters are optimized jointly.

Our system is summarized in Figure 2. A triangular mesh with arbitrary topology is optimized from a set of images through 2D supervision. Geometry is represented by a signed distance field defined on a three-dimensional grid and reduced to a triangular surface mesh through deep marching tetrahedra (DMTet) [8]. Next, the extracted surface mesh is rendered in a differentiable renderer, using the physically-based (PBR) material model from Disney [60]. This material model combines a diffuse term with an isotropic, specular GGX lobe [61]. A tangent space normal map is also included to capture high frequency shading detail. Finally, the rendered image is evaluated against a reference image using a photometric loss. In contrast to nvdiffrec, which uses a simple renderer with deferred shading and the split-sum approximation for direct lighting (without shadows), we instead leverage a renderer which evaluates the direct lighting integral using Monte Carlo integration and ray tracing (shadow rays). We represent the scene lighting using a high dynamic range light probe stored as a floating point texture, typically at a resolution of 256\(\times\)​256 texels. Finally, to combat the inherent variance that comes with Monte Carlo integration, we leverage differentiable image denoising and multiple importance sampling.

3.0.0.1 Optimization task

Let \(\phi\) denote the optimization parameters (shape, spatially varying materials and light probe). For a given camera pose, \(c\), our differentiable renderer produces an image \(I_{\phi}(c)\). Given that we use Monte Carlo integration during rendering, this image inherently includes noise, and we apply a differentiable image denoiser, \(D_{\theta}\), with parameters, \(\theta\), to reduce the variance, \(I_{\phi}^{\mathrm{denoised}}(c) = D_{\theta}(I_{\phi}(c))\). The reference image \(I_{\mathrm{ref}}(c)\) is a view from the same camera. Given a photometric loss function \(L\), we minimize the empirical risk \[\underset{\phi, \theta}{\mathrm{argmin}}\;\mathbb{E}_{c}\big[L\big(D_\theta(I_{\phi}(c)), I_{\mathrm{ref}}(c)\big)\big] \label{eq:optimization}\tag{1}\] using Adam [62] based on gradients w.r.t. the optimization parameters, \(\partial L/\partial\phi\), and \(\partial L/\partial\theta\), which are obtained through differentiable rendering. We use the same loss function as nvdiffrec. An example of the optimization process is illustrated in Figure 3,

Figure 3: Visualization of the optimization process. Note that the initial guess for topology are randomized SDF values on the grid. After 1000 iterations, we already have a high quality topology and plausible materials and lighting for this complicated asset. Synthetic dataset with 200 frames, generated from a part of the Apollo capsule, courtesy of the Smithsonian [63] (CC0-1.0).

3.1 Direct Illumination↩︎

The outgoing radiance \(L(\omega_o)\) in direction \(\omega_o\) can be expressed using the rendering equation [64] as: \[L(\omega_o) = \int_\Omega L_i(\omega_i)f(\omega_i,\omega_o) (\omega_i \cdot \mathbf{n}) d\omega_i. \label{eq:ibl}\tag{2}\] This is an integral of the product of the incident radiance, \(L_i(\omega_i)\) from direction \(\omega_i\) and the BSDF \(f(\omega_i, \omega_o)\). The integration domain is the hemisphere \(\Omega\) around the surface normal, \(\mathbf{n}\).

Spherical Harmonics (SH) [35] or Spherical Gaussians (SG) [6], [9] are often used as efficient approximations of direct illumination, but only work well for low- to medium-frequency lighting. In contrast, the split sum approximation [7], [65] captures all-frequency image based lighting, but does not incorporate shadows. Our goal is all-frequency lighting including shadows, which we tackle by evaluating the rendering equation using Monte Carlo integration: \[L(\omega_o) \approx \frac{1}{N} \sum_{i=1}^{N} \frac{L_i(\omega_i)f(\omega_i,\omega_o) (\omega_i \cdot \mathbf{n})}{p(\omega_i)},\] with samples drawn from some distribution \(p(\omega_i)\). Note that \(L_i(\omega_i)\) includes a visibility test, which can be evaluated by tracing a shadow ray in direction \(\omega_i\). Unfortunately, the variance levels in Monte Carlo integration with low number of samples makes gradient-based optimization hard, particularly with complex lighting. In Section 4 we propose several variance reduction techniques, which enable an inverse rendering pipeline that efficiently reconstructs complex geometry, a wide range of lighting conditions and spatially-varying BSDFs.

3.1.0.1 Shadow gradients

In single view optimization [66], shape from shadows [67], or direct optimization of the position/direction of analytical light sources, shadow ray visibility gradients [14], [68] are highly beneficial. However, in our multi-view setting (50+ views), similar to Loubet et al. [14], we observed that gradients of diffuse scattering are negligible compared to the gradients of primary visibility. Hence, for performance reasons, in the experiment presented in this paper, the shadow ray visibility gradients are detached when evaluating the hemisphere integral, and shape optimization is driven by primary visibility gradients, obtained from nvdiffrast [59].

4 Variance Reduction↩︎

We evaluate direct illumination with high frequency environment map lighting combined with a wide range of materials (diffuse, dielectrics, and metals). Strong directional sunlight, highly specular, mirror-like materials, and the visibility component can all introduce significant levels of noise. To enable optimization in an inverse rendering setting at practical sample counts, we carefully sample each of these contributing factors to obtain a signal with low variance. Below, we describe how we combat noise by using multiple importance sampling and denoising.

4.1 Multiple Importance Sampling↩︎

We leverage multiple importance sampling [19] (MIS), a framework to weigh a set of different sampling techniques to reduce variance in Monte Carlo integration. Given a set of sampling techniques, each with a sampling distribution \(p_i\), the Monte Carlo estimator for an integral \(\int_\Omega g(x) dx\) given by MIS is \[\sum_{i=1}^n \frac{1}{n_i} \sum_{j=1}^{n_i} w_i(X_{i,j})\frac{g(X_{i,j})}{p_i(X_{i,j})}, \;\;\;\;\; w_i(x) = \frac{n_i p_i(x)}{\sum_k n_k p_k(x)}.\] The weighting functions \(w_i(x)\) are chosen using the balance heuristic. Please refer to Veach’s thesis [19] or the excellent PBRT book [69] for further details.

In our case, we apply MIS with three sampling techniques: light importance sampling, \(p_\mathrm{light}(\omega)\), using a piecewise-constant 2D distribution sampling technique [69], cosine sampling, \(p_\mathrm{diffuse}(\omega)\), for the diffuse lobe, and GGX importance sampling [70], \(p_\mathrm{specular}(\omega)\), for the specular lobe. Unlike in forward rendering with known materials and lights, our material and light parameters are optimization variables. Thus, the sampling distributions, \(p_i\), are recomputed in each optimization iteration. Following the taxonomy of differentiable Monte Carlo estimators of Zeltner et al. [17], our importance sampling is detached, i.e., we do not back-propagate gradients to the scene parameters in the sampling step, only in the material evaluation. Please refer to Zeltner et al. for a careful analysis of Monte Carlo estimators for differentiable light transport.

MIS is unbiased, but chaining multiple iterations of our algorithm exhibits bias, as the current, importance sampled, iteration dictates the sampling distributions used in the next iteration. Light probe intensities, for example, are optimized based on an importance sampled image, which are then used to construct the sampling distribution for the subsequent pass. For unbiased rendering, the sampling distribution must be estimated using a second set of uncorrelated samples instead. Furthermore, we explicitly re-use the random seed from the forward pass during gradient backpropagation to scatter gradients to the exact same set of parameters that contributed to the forward rendering. This approach is clearly biased [71], but we empirically note that this is very effective in reducing variance, and in our setting this variance-bias trade-off works in our favor.

4.2 Denoising↩︎

For differentiable rendering, the benefits of denoising are twofold. First, it improves the image quality of the rendering in the forward pass, reducing the optimization error and the gradient noise introduced in the image loss. Second, as gradients back-propagate through the denoiser’s spatial filter kernel, gradient sharing between neighboring pixels is enabled. To see this, let’s consider a simple denoiser, \(O = X \circledast F\), where the noisy rendered image \(X\) is filtered by a low-pass filter, \(F\) (\(\circledast\) represents an image space 2D convolution). Given a loss gradient, \(\frac{\partial L}{\partial O}\), the gradients propagated back to the renderer are \(\frac{\partial L}{\partial X} = \frac{\partial L}{\partial O} \circledast F^T\), which applies the same low-pass filter in case the filter is rotationally symmetric (\(F = F^T\)). In other words, the renderer sees filtered loss gradients in a local spatial footprint. While denoisers inherently trade a reduction in variance for increased bias, we empirically note that denoising significantly helps convergence at lower sample counts, and help to reconstruct higher frequency environment lighting. We show an illustrative example in Figure 9.

Figure 4: We separate lighting into diffuse lighting, \mathbf{c}_d, diffuse reflectance, \mathbf{k}_d, and specular lighting, \mathbf{c}_s. This enables fine-grained regularization and denoising without smearing texture detail.

Following previous work in denoising for production rendering [20], Figure 4 shows how we separate lighting into diffuse, \(\mathbf{c}_d\), and specular, \(\mathbf{c}_s\) terms. This lets us denoise each term separately, creating denoised buffers, \(D_{\theta}(\mathbf{c}_d)\), and \(D_{\theta}(\mathbf{c}_s)\). More importantly, we can use demodulated diffuse lighting, which means that the lighting term has not yet been multiplied by material diffuse albedo, \(\mathbf{k}_d\). In forward rendering, this is important as it decorrelates the noisy lighting from material textures, thus selectively denoising the noisy Monte-Carlo estimates and avoiding to low-pass filter high-frequent texture information. In inverse rendering, we can additionally use it to improve material and light decomposition by adding regularization on the lighting terms, as disucussed in Section 5. We compose the final image as \(\mathbf{c} = \mathbf{k}_d \cdot D_{\theta}(\mathbf{c}_d) + D_{\theta}(\mathbf{c}_s)\). We currently do not demodulate specular lighting because of the view dependent Fresnel term, but expect this to be improved in future work.

Figure 5: Ablation study on the effect of using different denoising algorithms during optimization at low sample counts on three different scenes of increasing complexity (from left to right). We plot averaged PSNR scores over 200 novel views, rendered without denoising, using high sample counts. In this experiment, we used decorrelated samples in the backward pass to highlight the effect of denoising. The most complex scene (Porsche) failed to converge at 8 spp without denoising.

4.2.0.1 Cross-bilateral filters

Cross-bilateral filters are commonly used to remove noise in rendered images [58]. To evaluate this family of denoisers in our inverse pipeline, we adapted Spatio-temporal Variance-Guided Filtering [23] (SVGF), which is a popular cross-bilateral filter using surface normals and per-pixel depth as edge-stopping guides. The denoiser is applied to demodulated diffuse lighting, to avoid smearing texture detail. We disabled the temporal component of SVGF, as we focus on single frame rendering, and implemented the filter as a differentiable module to allow for loss gradients to propagate back to our scene parameters.

4.2.0.2 Neural denoisers

As a representative neural denoiser, we deploy the Open Image Denoiser (OIDN) [72], which is a U-Net [73] pre-trained on a large corpus of rendered images. The denoiser is applied to the rendered image before computing the image space loss. As the network model is fully convolutional, it is trivially differentiable, and we can propagate gradients from the image space loss, through the denoiser back to the renderer.

In Figure 5, we provide an overview on the effect of denoisers during 3D scene reconstruction. We observe that denoising is especially helpful at low sample counts, where we obtain similar reconstruction results at 8 spp with denoising, compared to 32 spp without a denoiser. At higher sample counts, however, the benefit from denoising diminishes, as variance in the Monte-Carlo estimates decreases. Given that denoisers enable significantly faster iteration times, we consider it a valuable tool for saving computational resources when fine-tuning model parameters for subsequent runs with high sample counts. Additionally, we empirically found that using a denoiser during reconstruction yields higher quality light probes, as can be seen in Figure 9, both at low and high sample counts.

We can also jointly optimize the denoiser parameters, \(\theta\), with the 3D scene reconstruction task. i.e., the denoiser is fine-tuned for the current scene. Unfortunately, this approach has undesirable side-effects: Features tend to get baked into the denoiser network weights instead of the materials or light probe. This is especially apparent with the OIDN [72] denoiser, which produced color shifts due to lack of regularization on the output. We got notably better results with the hierarchical kernel prediction architecture from Hasselgren et al. [22], which is more constrained. However, the results still lagged behind denoisers with locked weights. We refer to the supplemental material for details.

5 Priors↩︎

In our setting: 3D reconstruction from multi-view images with constant lighting, regularization is essential in order to disentangle lighting and materials. Following previous work [7], [10], we apply smoothness priors for albedo, specular, and normal map textures. Taking the albedo as an example, if \(\boldsymbol{k}_{d}\left(\mathbf{x}\right)\) denotes the diffuse albedo at world space position, \(\mathbf{x}\), and \(\mathbf{\epsilon}\) is a small random displacement vector, we define the smoothness prior for albedo as: \[L_{\boldsymbol{k}_{d}} = \sum_{\mathbf{x}_\text{surf}} \left|\boldsymbol{k}_{d}\left(\mathbf{x}_\text{surf}\right) - \boldsymbol{k}_{d}\left(\mathbf{x}_\text{surf} + \mathbf{\epsilon}\right)\right|,\] where \(\mathbf{x}_\text{surf}\) are the world space positions at the primary hit point on the object. We note that the smoothness prior is not sufficient to disentangle material parameters and light, especially for scenes with high frequency lighting and sharp shadows. Optimization tends to bake shadows into the albedo texture (easy) rather than reconstruct a high intensity, small area in the environment map (hard). To enable high quality relighting, we explicitly want to enforce shading detail represented by lighting, and only bake remaining details into the material textures. We propose a novel regularizer term that is surprisingly effective. We compute a monochrome image loss between the demodulated lighting terms and the reference image: \[L_\text{light} = |\mathrm{Y}\left(\mathbf{c}_d + \mathbf{c}_s\right) - \mathrm{V}\left(I_{\mathrm{ref}}\right)|.\] Here, \(Y\left(\mathbf{x}\right) = \left(\mathbf{x}_r + \mathbf{x}_g + \mathbf{x}_b\right) / 3\) is a simple luminance operator, and \(V\left(\mathbf{x}\right) = \max\left(\mathbf{x}_r, \mathbf{x}_g, \mathbf{x}_b\right)\) is the HSV value component. The rationale for using HSV-value for the reference image is that the \(\max\) operation approximates demodulation, e.g., a red and white pixel have identical values. We assume that the demodulated lighting is mostly monochrome, in which case \(Y\left(\mathbf{x}\right) \sim V\left(\mathbf{x}\right)\), and given that we need to propagate gradients to \(\mathbf{c}_d\) and \(\mathbf{c}_s\), \(Y\) avoids discontinuities. This regularizer is limited by our inability to demodulate the reference image. The HSV-value ignores chrominance, but we cannot separate a shadow from a darker material. This has not been a problem in our tests, but could interfere with optimization if the regularizer is given too much weight. Please refer to the supplemental materials for complete regularizer details.

6 Experiments↩︎

Table 1: Summarized relighting results for NeRFactor (CC-BY-3.0), NeRF (CC-BY-3.0) and our synthetic datasets. The NeRFactor dataset contains four scenes, each scene has eight validation views and eight different light probes (256 validation images). For the NeRF dataset (which contain higher frequency lighting), we use the Chair, Hotdog, Lego, Materials and Mic scenes, with eight validation views and four light probe configurations (160 validation images). Our dataset contains a variation of high and low frequency lighting with geometrically complex objects. The image metric scores are arithmetic means over all images.
NeRFactor synthetic Nerf synthetic Our synthetic
PSNR\(\uparrow\) SSIM\(\uparrow\) LPIPS\(\downarrow\) PSNR\(\uparrow\) SSIM\(\uparrow\) LPIPS\(\downarrow\) PSNR\(\uparrow\) SSIM\(\uparrow\) LPIPS\(\downarrow\)
Our 26.0 dB 0.924 0.060 26.5 dB 0.932 0.055 27.1 dB 0.950 0.027
nvdiffrec 24.8 dB 0.910 0.063 23.3 dB 0.889 0.076 23.7 dB 0.925 0.049
NeRFactor 22.2 dB 0.896 0.087 - - - - - -

1mm

Figure 6: Relighting examples from the NeRFactor and NeRF synthetic datasets. The NeRF dataset contains high frequency lighting and global illumination, and is substantially more challenging than the NeRFactor version, which uses downsampled probes. Our results contain visible artifacts, but outperform the material separation of previous work.

In our experiments, we use nvdiffrec [7] as a baseline, and refer to their work for thorough comparisons against related work. We focus the evaluation on the quality of material and light separation. At test time, all view interpolation results are generated without denoising at 2k spp. All relighting results are rendered in Blender Cycles at 64 spp with denoising [72]. Table 1 shows a quantitative comparison with nvdiffrec and NeRFactor [10] on the NeRFactor relighting setup. Note that there is an indeterminate scale factor between material reflectance (e.g., albedo) and the light intensity. This is accounted for by scaling each image to match the average luminance of the reference for the corresponding scene. The same methodology is applied for all algorithms in our comparisons. We outperform previous work, providing better material reconstruction. Figure 6 shows visual examples.

Figure 7: Manipulations of our extracted 3D model of the Family dataset in Blender. This scene is part of the Tanks&Temples [74] dataset (CC BY-NC-SA 3.0). Tree and bird models from TurboSquid.

We additionally perform relighting on the synthetic NeRF dataset, which is substantially more challenging than the NeRFactor variant, due to high frequency lighting and global illumination effects. nvdiffrec produces severe artifacts, as exemplified by the Hotdog scene in Figure 6. Table 1 shows a significant increase in image quality for our approach. The visual examples show that our results are plausible, though not without artifacts. Finally, we constructed a novel synthetic dataset with three scenes with highly complex geometry to stress-test the system. Each scene contains 200 training views and 200 novel views for evaluation. The three scenes are shown in Figures 1 , 3 ,and 9. Quantitatively we outperform previous work by a larger margin, and Figure 1 shows very little shading in the albedo textures.

Figure 8: We show explicit decomposition of shape, materials and lighting, directly from photos with known poses. Character is part of the BlendedMVS [75] dataset (CC BY-4.0) and Gold Cape is part of the NeRD [9] dataset (CC BY-NC-SA 4.0).

In Figures 7 and 8, we apply our method to datasets with real photos. These sets are more difficult, due to inaccuracies in foreground segmentation masks and camera poses. We extract triangle meshes that can be trivially edited in 3D modeling software, and in Figure 7 we use Blender to perform material editing and relighting with convincing results. Figure 8 shows a breakdown of geometry, material parameters, and environment light.

Figure 9: We show the benefits of denoising on the Porsche scene from LDraw resources [12] (CC BY-2.0). At low sample counts, denoising helps both with geometric reconstruction (in the cockpit) and to capture specular highlights. Even at 128 spp, denoising improves specular highlight and high frequency lighting details.

To study the impact of denoising, we optimized the Porsche scene w/ and w/o denoising. As shown in Figure 9, denoising improves both visual quality and environment lighting detail at equal sample counts. The noise levels varies throughout the scene, and we note that denoising is particularly helpful in regions with complex lighting or occlusion, such as the specular highlight and cockpit.

Table 2: View interpolation results. For reference, the NeRFactor scores are 26.9 dB PSNR and SSIM of 0.930 on the NerFactor synthetic dataset, and Mip-NeRF has 35.0 dB PSNR and SSIM 0.978 on the Nerf synthetic dataset. The image metric scores are arithmetic means over all test images.
NeRFactor synthetic Nerf synthetic Our synthetic Real-world
PSNR\(\uparrow\) SSIM\(\uparrow\) PSNR\(\uparrow\) SSIM\(\uparrow\) PSNR\(\uparrow\) SSIM\(\uparrow\) PSNR\(\uparrow\) SSIM\(\uparrow\)
Our 29.6 dB 0.951 28.4 dB 0.938 25.6 dB 0.934 25.29 dB 0.899
nvdiffrec 31.7 dB 0.967 30.4 dB 0.958 25.8 dB 0.944 26.58 dB 0.918

1mm

Neural light-fields, e.g., Mip-NeRF [76] excel at view interpolation. We enforce material/light separation through additional regularization, which slightly degrades view interpolation results, as shown in Table 2. Our scores are slightly below nvdiffrec, but, as shown above, we provide considerably better material and lighting separation.

6.0.0.1 Compute resources

Tracing rays to evaluate the direct illumination is considerably more expensive than pre-filtered environment light approaches. We leverage hardware-accelerated ray intersections, but note that our implementation is far from fully optimized. Our method scales linearly with sample count, which gives us a simple way to trade quality for performance. With a batch size 8 at a rendering resolution of 512\(\times\)​512, we get the following iteration times on a single NVIDIA A6000 GPU.

nvdiffrec Our 2 spp Our 8 spp Our 32 spp Our 128 spp Our 288 spp
Iteration time 340 ms 280 ms 285 ms 300 ms 360 ms 450 ms

Our denoising strategies enable optimization at low sample counts. Unless otherwise mentioned, for the results presented in the paper, we use high quality settings of 128+ rays per pixel with 5000\(\times\)​2 iterations (second pass with fixed topology and 2D textures), which takes \(\sim\)​4 hours (A6000).

7 Conclusions↩︎

Our restriction to direct illumination shows up in scenes with global illumination. Similarly, we do not handle specular chains (geometry seen through a glass window). For this, we need to integrate multi-bounce path tracing, which is a clear avenue for future work, but comes with additional challenges in increased noise-levels, visibility gradients through specular chains, and drastically increased iteration times. Our renderer is intentionally biased to improve optimization times, but unbiased rendering could expect to generate better results for very high sample counts. Other limitations include lack of efficient regularization of material specular parameters and reliance on a foreground segmentation mask. Our approach is computationally intense, requiring a high-end GPU for optimization runs.

To summarize, we have shown that differentiable Monte-Carlo rendering combined with variance-reduction techniques is practical and applicable to multi-view 3D object reconstruction of explicit triangular 3D models. Our physically-based renderer clearly improves material and light reconstruction over previous work. By leveraging hardware accelerated ray-tracing and differentiable image denoisers, we remain competitive to previous work in terms of optimization time.

8 Optimization and Regularization↩︎

8.0.0.1 Image Loss

Our renderer uses physically-based shading and produces images with high dynamic range. Therefore, the objective function must be robust to the full range of floating-point values. Following recent work in differentiable rendering [7], [55], our image space loss, \(L_\mathrm{image}\), computes the \(L_1\) norm on tonemapped colors. As tone map operator, \(T\), we transform linear radiance values, \(x\), according to \(T(x) = \Gamma(\log(x + 1))\), where \(\Gamma(x)\) is the sRGB transfer function [77]: \[\begin{align} \Gamma(x) &=& \begin{cases} 12.92x & x \leq 0.0031308 \\ (1+a)x^{1/2.4} -a & x > 0.0031308 \end{cases} \\ a &=& 0.055. \nonumber \end{align}\]

8.0.0.2 Regularizers

While it is desirable to minimize regularization, in our setting with multi-view images with constant lighting, we have to rely on several priors to guide optimization towards a result with a good separation of geometry, materials, and lighting. As mentioned in the paper, we rely on smoothness regularizers for albedo, \(\boldsymbol{k}_{d}\), specular parameters, \(\boldsymbol{k}_{\mathrm{orm}}\) and geometric surface normal, \(\mathbf{n}\), following: \[L_{\boldsymbol{k}_{d}} = \frac{1}{\left|\mathbf{x}_\text{surf}\right|}\sum_{\mathbf{x}_\text{surf}} \left|\boldsymbol{k}_{d}\left(\mathbf{x}_\text{surf}\right) - \boldsymbol{k}_{d}\left(\mathbf{x}_\text{surf} + \boldsymbol{\epsilon}\right)\right|,\] where \(\mathbf{x}_\text{surf}\) is a world space position on the surface of the object and \(\boldsymbol{\epsilon} \sim \mathcal{N}(0,\sigma\!\!=\!\!0.01)\) is a small random displacement vector. Regularizing the geometric surface normal (before normal map perturbation) is novel compared to nvdiffrec and helps enforce smoother geometry, particularly in early training.

We note that normal mapping (surface normals perturbed through a texture lookup) also benefits from regularization. While normal mapping is a powerful tool for simulating local micro-geometry, the decorrelation of the geometry and surface normal can be problematic. In some optimization runs, we observe that with normal mapping enabled, the environment light is (incorrectly) leveraged as a color dictionary, where the normal perturbation re-orients the normals of a geometric element to look up a desired color. To prevent this behavior, we use the following regularizer. Given a normal perturbation \(\mathbf{n}'\) in tangent space, our loss is defined as \[L_{\mathbf{n}'} = \frac{1}{\left|\mathbf{x}_\text{surf}\right|}\sum_{\mathbf{x}_\text{surf}} 1 - \underbrace{ \frac{\mathbf{n}'\left(\mathbf{x}_\text{surf}\right) + \mathbf{n}'\left(\mathbf{x}_\text{surf} + \boldsymbol{\epsilon}\right)}{\left|\mathbf{n}'\left(\mathbf{x}_\text{surf}\right) + \mathbf{n}'\left(\mathbf{x}_\text{surf} + \boldsymbol{\epsilon}\right)\right|} }_{\textrm{Half-angle vector}} \cdot (0,0,1). \label{eq:normalsmooth}\tag{3}\] Intuitively, we enforce that normal perturbations, modeling micro-geometry, randomly selected in a small local area, have an expected value of the unperturbed tangent space surface normal, \((0,0,1)\).

Figure 10: The impact of our light regularizer on the Hotdog scene from the synthetic NeRF dataset. The regularizer is particularly effective in this example, as the dataset contains high frequency lighting with sharp shadows. As shown in the top row, without regularization most of the lighting and shadow is baked into the \boldsymbol{k}_{d} texture because it is the quickest way for the optimizer to minimize loss. While our regularized result is not perfect (some texture detail on the hotdog bun is incorrectly baked into lighting), the lighting is accurately captured and \boldsymbol{k}_{d} contains mostly chrominance, as expected. The light probe is also significantly more detailed.

As mentioned in the paper, we additionally regularize based on monochrome image loss between the demodulated lighting terms and the reference image: \[L_\text{light} = |Y\left(T(\mathbf{c}_d + \mathbf{c}_s)\right) - V\left(T(I_{\mathrm{ref}})\right)|_1.\] Here, \(T\) is the tonemap operator described in the previous paragraph. \(\mathbf{c}_d\) is demodulated diffuse lighting, \(\mathbf{c}_s\) is specular lighting, and \(I_{\mathrm{ref}}\) is the target reference image. Monochrome images are computed through the simple luminance operator, \(Y\left(\mathbf{x}\right) = \left(\mathbf{x}_r + \mathbf{x}_g + \mathbf{x}_b\right) / 3\), and HSV-value, \(V\left(\mathbf{x}\right) = \max\left(\mathbf{x}_r, \mathbf{x}_g, \mathbf{x}_b\right)\). While the regularizer is limited by our inability to demodulate the reference image, we show in Figure 10 that it greatly increases lighting detail, which is particularly effective in datasets with high frequency lighting. Figure 27 shows the impact of the regularizer on a larger set of scenes.

We compute the final loss as a weighted combination of the image loss and regularizer terms: \[L = L_\text{image} + \underbrace{\lambda_{\boldsymbol{k}_{d}}}_{=0.1}L_{\boldsymbol{k}_{d}} + \underbrace{\lambda_{\boldsymbol{k}_{\mathrm{orm}}}}_{=0.05}L_{\boldsymbol{k}_{\mathrm{orm}}} + \underbrace{\lambda_{\mathbf{n}}}_{=0.025}L_{\mathbf{n}} + \underbrace{\lambda_{\mathbf{n}'}}_{=0.25}L_{\mathbf{n}'} + \underbrace{\lambda_\text{light}}_{=0.15}L_\text{light},\] where we show the default weights used for most results (unless otherwise noted).

8.0.0.3 Optimization details

We use Adam [62] (default settings) to optimize parameters for geometry, material, and lighting. Referring to DMTet [8], geometry is parameterized as SDF values on a three-dimensional grid, with a perturbation vector per grid-vertex. Material and lighting are encoded in textures, or neural network (e.g., an MLP with positional encoding) encoded high-frequency functions. We typically use different learning rates for geometry, material, and lighting, with lighting having the highest learning rate and material the lowest. We closely follow the publically available nvdiffrec code base and refer to that for details. In Figure 11, we visualize two examples of optimizing the light probe, and note that we can capture high-frequency lighting details for specular objects.

Figure 11: We compute direct lighting by integrating the BSDF over the hemisphere using Monte Carlo. For diffuse scenes (left), the BSDF has a wide lobe, and the extracted probe often contains significant noise. For specular scenes, the BSDF lobe is sharper, which allow us to recover high frequency lighting.

We note that the early phases of optimization (starting from random geometry with large topology changes) are crucial in producing a good final result. The shadow test poses a challenge since changes in geometry may drastically change the lighting intensity in a previously shadowed area, causing the optimization process to get stuck in bad local minima. This is shown in Figure 12, where the optimizer fails to carve out the shape of the object. We combat this by incrementally blending in the shadow term as optimization progresses.

Recall from the main paper that we compute the color according to the rendering equation: \[L(\omega_o) = \int_\Omega L_i(\omega_i)f(\omega_i,\omega_o) (\omega_i \cdot \mathbf{n}) d\omega_i, \label{wfhtvldg}\tag{4}\] where \(L_i(\omega_i) = L_i'(\omega_i)H(\omega_i)\) can be separated into a lighting term, \(L_i'(\omega_i)\), and visibility term, \(H(\omega_i)\). Rather than using binary visibility, we introduce a light leakage term, \(\tau\), and linearly fade in the shadow contributions over the first 1750 iterations: \[\begin{align} H(\omega_i, \tau) &=& \begin{cases} 1-\tau & \text{if intersect\_ray}(\omega_i)\\ 1 & \text{otherwise} \end{cases}. \end{align}\]

Figure 12: Illustration of the impact of gradually blending in the shadow term in the early stages of optimization. In early stages, there are large changes in topology, and local changes in geometry can have a large (global) impact on color and shading. As shown in the top row, early convergence suffers, and the optimization fails to carve out some geometry. By incrementally ramping up the shadow term, as shown in the bottom row, we improve geometry reconstruction.

In Figure 12 we note that gradually blending in the shadow term has a large impact on early convergence. In particular, since we start from a random topology, carving out empty space or adding geometry may have a large impact on overall shading, causing spiky and noisy gradients.

The denoiser may also interfere with early topology optimization (blurred visibility gradients). This is particularly prominent when the denoiser parameters are trained along with scene parameters. Therefore, we similarly, ramp up the spatial footprint, \(\sigma\), in the case of a bilateral denoiser. For neural denoisers, which have no easily configurable filter width, we instead linearly blend between the noisy and denoised images to create a smooth progression.

9 Denoising↩︎

9.0.0.1 Bilateral Denoiser

As a representative bilateral denoiser, we adapt the spatial component of Spatiotemporal Variance-guided Filtering [23] (SVGF), Our filter is given by \[\hat{\mathbf{c}}\left(p\right) = \frac{ \sum_{q \in \Omega} \mathbf{c}\left(q\right) \cdot w\left(p, q\right) }{ \sum_{q \in \Omega} w\left(p, q\right) },\] where \(\mathbf{c}\) are the pixel colors, \(w\left(p, q\right)\) are the bilateral weights between pixels \(p\) and \(q\), and \(\Omega\) denotes the filter footprint. The bilateral weight is split into three components as follows \[w\left(p, q\right) = \underbrace{ \vphantom{\max(0, \mathbf{n}\left(p\right) \cdot \mathbf{n}\left(q\right))^{\sigma_\mathbf{n}}} e^{-\frac{|p - q|^2}{2\sigma^2}} }_{w} \underbrace{ \vphantom{\max(0, \mathbf{n}\left(p\right) \cdot \mathbf{n}\left(q\right))^{\sigma_\mathbf{n}}} e^{-\frac{\left|z\left(p\right) - z\left(q\right)\right|}{\sigma_{z}\left|\nabla z\left(p\right) \cdot (p - q)\right|}} }_{w_{z}} \underbrace{ \max(0, \mathbf{n}\left(p\right) \cdot \mathbf{n}\left(q\right))^{\sigma_\mathbf{n}} }_{w_\mathbf{n}}.\] The spatial component, \(w\), is a Gaussian filter with its footprint controlled by \(\sigma\). We linearly increase \(\sigma\) from 1e-4 to 2.0 over the first 1750 iterations. The depth component, \(w_z\) implements an edge stopping filter based on image space depth. It is a soft test, comparing the depth differences between pixels \(z(p)\) and \(z(q)\) with a linear prediction based on the local depth gradient \(\nabla z(p)\). The final component, \(w_\mathbf{n}\), is computed as the scalar product over surface normals \(\mathbf{n}(p)\) and \(\mathbf{n}(q)\). Following SVGF, we use \(\sigma_z=1\) and \(\sigma_\mathbf{n} = 128\). We also omitted the Á-Trous wavelet filtering of SVGF, which is primarily a run-time performance optimization, and evaluate the filter densely in the local footprint. We propagate gradients back to the renderer, i.e., the noisy input colors, but no gradients to the filter weights.

Figure 13: The effect of using different denoising algorithms during optimization at low sample counts on three different scenes of increasing complexity (from left to right). We plot averaged PSNR scores over 200 novel views, rendered without denoising, using high sample counts. The most complex scene failed to converge at 8 spp without denoising. This experiment is identical to the denoising ablation in the paper, except including results from a jointly optimized single-frame version of the kernel prediction network (KPN) architecture from Hasselgren et al. [22]. Inherent problems of live-training the denoiser, such as baking features into the denoiser weights instead of the desired parameters, become apparent from deteriorating results, even at higher sample counts.
Figure 14: The effect of denoising when optimizing HDR environment lighting, using a diffuse version of the Hotdog scene. In this test, geometry and material are fixed to study the effect of optimizing the lighting in isolation. Top: Resulting light probes at 8 spp for each method tabulated above. Bottom: Tabulated average PSNR over 200 novel views using high sample count without denoising.
Figure 15: Impact of denoising when jointly optimizing geometry, materials and environment lighting, using the NeRFactor Hotdog scene. Top: Reconstruction results at 32 spp for each of the methods tabulated above. Bottom: Tabulated average PSNR (dB) over 200 novel views using high sample count without denoising.

9.0.0.2 Neural denoisers

For OIDN, we use the pre-trained weights from the official code [72], and wrap the model (a direct-prediction U-Net) in a PyTorch module to allow for gradient propagation to the input colors. We also propagate gradients to the network weights, in order to fine-tune the denoiser per-scene, but unfortunately, the direct-prediction architecture of OIDN made live-training highly unstable in our setting.

For the kernel-predicting neural denoiser, we leverage the architecture from Hasselgren et al. [22], but omit the adaptive sampling part and the recurrent feedback loop. The network weights were initialized to random values using Xavier initialization. The hierarchical kernel prediction in this architecture constrains the denoiser, and enables live-trained neural denoising in our setting. That said, in our evaluations, the live-trained variant produce worse reconstructions than the pre-trained denoisers.

We study the impact of different denoising algorithms on scene reconstruction, including jointly optimizing the denoising network, in Figure 13. Unfortunately, when fine-tuning the denoiser to the specific scene as part of optimization, we note a tendency for features to get baked into the denoiser’s network weights instead of the desired scene parameters (overfitting), negatively impacting the reconstruction quality. We showcase the isolated effect of denoising on light probe optimization in Figure 14. Figure 15 illustrates the effect of denoising when jointly optimizing geometry, material and lighting.

Figure 16: We show a few examples illustrating the benefits of shadow visibility gradients for inverse rendering setups. White: we optimize the position of a point light source, using a pure white material. Here, shadow gradients are necessary for the optimization to succeed. Lambert: we redo the same experiment, but with a Lambertian material including an \mathbf{n} \cdot \mathbf{l} shading term. Now, both the shadow and shading terms provide gradients to the light position, and the optimization succeeds even without shadow gradients. Single-view: we optimize shape from a single view (purposely chosen to hide the hole in the model), using a known point light source. Here, the shadow gradients provide useful information, and improves the reconstruction to capture the hole in the model. Multi-view: the same setup, but optimized using multiple views. Here, there is no clear benefit of using shadow gradients (the primary visibility gradients from each view dominate the geometry reconstruction).
Figure 17: Comparing the influence of shadow visibility gradients in our full pipeline with joint optimization of shape, materials, and lighting. We observe slightly higher noise levels on the geometry reconstructions with shadow visibility gradients enabled, as can be seen in the visualization of surface normals. The error metrics are average view interpolation scores over 200 novel views.

10 Visibility Gradients from Shadows↩︎

In Figure 16 we show the impact of the visibility gradients [14], [68] for the shadow test on a few targeted reconstruction examples. In this ablation, we disabled denoising, and applied a full shadow term directly (instead of linearly ramping up the shadow contribution, as discussed in Section 8). While clearly beneficial in the simpler examples, e.g., single-view reconstruction and targeted optimization (finding the light position), for multi-view reconstruction with joint shape, material, and environment light optimization, the benefits of the shadow visibility gradients is less clear. In our experiments, gradients from the shadow rays in the evaluation of direct lighting in the hemisphere, typically have negligible impact compared to gradients from primary visibility. Below, we report the view-interpolation scores over the validation sets for three scenes.

lYYY@YYY & &
& Chair & Lego & Porsche & Chair & Lego & Porsche
w/ gradients & 29.15 & 27.03 & 27.83 & 0.948 & 0.918 & 0.941
w/o gradients & 29.06 & 26.83 & 28.21 & 0.948 & 0.918 & 0.945

In contrast, we observed that the shadow ray gradients sometimes increase noise levels and degrade reconstruction quality. We show a visual example in Figure 17.

11 Sampling↩︎

Figure 18: Comparison of different imaportance sampling strategies, using a diffuse, plastic and metal version of the Spot model. Lighting and materials are optimized, and geometry is kept fixed. The hemisphere is sampled using 32 spp, and denoising is disabled for this test. Tabulated average validation PSNR of the forward renderings using high sample count and no denoising over 200 frames.

In Figure 18, we examine the effect of importance sampling strategies on reconstruction quality. We compare cosine sampling, BSDF importance sampling [70], light probe importance sampling (using piecewise-constant 2D distribution sampling [69]), and multiple importance sampling [19] (MIS) using the balance heuristic. MIS consistently generates high quality reconstruction for a wide range of materials.

Figure 19: Correlated vs. decorrelated samples during gradient backpropagation. Although clearly biased, convergence at lower sample counts improves drastically when explicitly re-using samples in the backward pass (correlated), as gradients are propagated to the exact same set of parameters which contributed to the forward rendering.

For unbiased results, the forward and backward passes of the renderer should use independent (decorrelated) random samples. However, we observe drastically reduced noise levels, hence improved convergence rates, when using correlated samples, i.e., re-using the same random seeds in the forward and backward pass, especially for low sample count optimization runs. This effect mainly stems from gradients flowing back to the exact same set of parameters which contributed to the forward rendering, instead of randomly selecting another set of parameters, which naturally increases variance. In Figure 19, we compare the two approaches over a range of sample counts.

Figure 20: Extracted mesh quality visualization examples using the NeRF synthetic Chair, Hotdog, and Lego datasets. For these visualizations, the normal mapping shading term which simulates small geometric detail (used by Our and nvdiffrec) is disabled.

12 Geometry↩︎

In Table 3 we relate our method to Table 8 (supplemental) of the nvdiffrec paper [7], and note similar geometric quality as nvdiffrec. The Lego scene is an outlier caused by our normal smoothness regularizer from Eq. 3 . The scene is particularly challenging for geometric smoothing since it contains very complex geometry full of holes and sharp edges. Please refer to Figure 20 for a visual comparison.

Table 3: Chamfer L1 scores on the extracted meshes. Lower score is better.
Chair Hotdog Lego Materials Mic
PhySG 0.1341 0.2420 0.2592 N/A 0.2712
NeRF (w/o mask) 0.0185 4.6010 0.0184 0.0057 0.0124
NeRF (w/ mask) 0.0435 0.0436 0.0201 0.0082 0.0122
nvdiffrec 0.0574 0.0272 0.0267 0.0180 0.0098
Our 0.0566 0.0297 0.0583 0.0162 0.0151

13 Relighting and View Interpolation↩︎

We present relighting results with per scene breakdown for all synthetic datasets in Table ¿tbl:tab:all95relighting?. Figures 2122, and 23 show visual examples of the NeRFactor synthetic dataset. This dataset is intentionally designed to simplify light and material separation (low frequency lighting, no prominent shadowing, direct lighting only). Figures 2425, and 26 show visual examples from the NeRF synthetic dataset. This dataset was designed view-interpolation, and contains particularly hard scenes with all-frequency lighting. Table ¿tbl:tab:all95view95interp? presents per-scene view interpolation scores for the synthetic datasets.

Figure 21: Relighting examples from Hotdog scene of the NeRFactor synthetic dataset. We show a single view relit by six of the eight different low frequency light probes from the test set.
Figure 22: Relighting examples from Ficus scene of the NeRFactor synthetic dataset. We show a single view relit by six of the eight different low frequency light probes of the test set.
Figure 23: Relighting examples from Lego scene of the NeRFactor synthetic dataset. We show a single view relit by six of the eight different low frequency light probes of the test set.
Figure 24: Relighting examples from Hotdog scene of the NeRF synthetic dataset. We show a single view relit by the four different high frequency light probes from Poly Haven (CC0).
Figure 25: Relighting examples from Materials scene of the NeRF synthetic dataset. We show a single view relit by the four different high frequency light probes.
Figure 26: Relighting examples from Microphone scene of the NeRF synthetic dataset. We show a single view relit by the four different high frequency light probes.
Figure 27: Breakdown of shading terms with and without our light regularizer. Note that, for complex meshes (Hotdog and Lego), shadows are more accurately baked into lighting terms, effectively delighting the \boldsymbol{k}_{d} textures. For scenes with simple visibility (Chair, Materials, Microphone), the regularizer arguably contrast enhance the light probes too much, but we still note smoother \boldsymbol{k}_{d}.

14 Scene Credits↩︎

Mori Knob from Yasotoshi Mori (CC BY-3.0). Bob model (CC0) by Keenan Crane. Rollercoaster and Porsche scenes from LDraw resources (CC BY-2.0) by Philippe Hurbain. Apollo and Damicornis models courtesy of the Smithsonian 3D repository [63] (CC0). The Family scene is part of the Tanks&Temples dataset [74] (CC BY-NC-SA 3.0), the Character scene is part of the BlendedMVS dataset [75] (CC BY-4.0) and the Gold Cape scene is part of the NeRD dataset [9] (CC BY-NC-SA 4.0). The NeRF [1] and NeRFactor [10] datasets (CC BY-3.0) contain renders from modified blender models located on blendswap.com: chair by 1DInc (CC0), drums by bryanajones (CC-BY), ficus by Herberhold (CC0), hotdog by erickfree (CC0), lego by Heinzelnisse (CC-BY-NC), materials by elbrujodelatribu (CC0), mic by up3d.de (CC0), ship by gregzaal (CC-BY-SA). Light probes from Poly Haven [78]: Aerodynamics workshop and Boiler room by Oliksiy Yakovlyev, Dreifaltkeitsberg by Andreas Mischok, and Music hall by Sergej Majboroda (all CC0). The probes provided in the NeRFactor dataset are modified from the probes (CC0) shipped with Blender.

References↩︎

[1]
Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi, and Ren Ng. . In ECCV, 2020.
[2]
Michael Niemeyer, Lars Mescheder, Michael Oechsle, and Andreas Geiger. Differentiable volumetric rendering: Learning implicit 3d representations without 3d supervision. In Proceedings IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2020.
[3]
Michael Oechsle, Songyou Peng, and Andreas Geiger. . In International Conference on Computer Vision (ICCV), pages 5589–5599, 2021.
[4]
Lior Yariv, Yoni Kasten, Dror Moran, Meirav Galun, Matan Atzmon, Basri Ronen, and Yaron Lipman. Multiview neural surface reconstruction by disentangling geometry and appearance. Advances in Neural Information Processing Systems, 33, 2020.
[5]
Peng Wang, Lingjie Liu, Yuan Liu, Christian Theobalt, Taku Komura, and Wenping Wang. Neus: Learning neural implicit surfaces by volume rendering for multi-view reconstruction. In Advances in Neural Information Processing Systems (NeurIPS), pages 27171–27183, 2021.
[6]
Kai Zhang, Fujun Luan, Qianqian Wang, Kavita Bala, and Noah Snavely. . In The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2021.
[7]
Jacob Munkberg, Jon Hasselgren, Tianchang Shen, Jun Gao, Wenzheng Chen, Alex Evans, Thomas Mueller, and Sanja Fidler. . In 2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 8270–8280, 2022.
[8]
Tianchang Shen, Jun Gao, Kangxue Yin, Ming-Yu Liu, and Sanja Fidler. . In Advances in Neural Information Processing Systems (NeurIPS), pages 6087–6101, 2021.
[9]
Mark Boss, Raphael Braun, Varun Jampani, Jonathan T. Barron, Ce Liu, and Hendrik P.A. Lensch. . In International Conference on Computer Vision (ICCV), pages 5855–5864, 2021.
[10]
Xiuming Zhang, Pratul P. Srinivasan, Boyang Deng, Paul Debevec, William T. Freeman, and Jonathan T. Barron. . ACM Trans. Graph., 40(6):237:1–237:18, 2021.
[11]
Yuanqing Zhang, Jiaming Sun, Xingyi He, Huan Fu, Rongfei Jia, and Xiaowei Zhou. . arXiv:2204.06837, 2022.
[12]
Gerald Lasser. , 2022. https://www.ldraw.org/.
[13]
Tzu-Mao Li, Miika Aittala, Frédo Durand, and Jaakko Lehtinen. . ACM Trans. Graph., 37(6):222:1–222:11, 2018.
[14]
Guillaume Loubet, Nicolas Holzschuch, and Wenzel Jakob. . ACM Trans. Graph., 38(6):228:1–228:14, 2019.
[15]
Merlin Nimier-David, Delio Vicini, Tizian Zeltner, and Wenzel Jakob. Mitsuba 2: A retargetable forward and inverse renderer. ACM Trans. Graph., 38(6):203:1–203:17, 2019.
[16]
Merlin Nimier-David, Sébastien Speierer, Benoı̂t Ruiz, and Wenzel Jakob. . ACM Trans. Graph., 39(4):146:1–146:15, 2020.
[17]
Tizian Zeltner, Sébastien Speierer, Iliyan Georgiev, and Wenzel Jakob. . ACM Trans. Graph., 40(4):78:1–78:16, 2021.
[18]
Cheng Zhang, Bailey Miller, Kai Yan, Ioannis Gkioulekas, and Shuang Zhao. . ACM Trans. Graph., 39(4):143:1–143:19, 2020.
[19]
Eric Veach and Leonidas J. Guibas. . In Proceedings of the 22nd Annual Conference on Computer Graphics and Interactive Techniques, page 419–428, 1995.
[20]
Steve Bako, Thijs Vogels, Brian McWilliams, Mark Meyer, Jan Novák, Alex Harvill, Pradeep Sen, Tony DeRose, and Fabrice Rousselle. . ACM Trans. Graph., 36(4):97:1–97:14, 2017.
[21]
Chakravarty R. Alla Chaitanya, Anton S. Kaplanyan, Christoph Schied, Marco Salvi, Aaron Lefohn, Derek Nowrouzezahrai, and Timo Aila. . ACM Trans. Graph., 36(4):98:1–98:12, 2017.
[22]
Jon Hasselgren, Jacob Munkberg, Anjul Patney, Marco Salvi, and Aaron Lefohn. . Computer Graphics Forum, 39(2):147–155, 2020.
[23]
Christoph Schied, Anton Kaplanyan, Chris Wyman, Anjul Patney, Chakravarty R. Alla Chaitanya, John Burgess, Shiqiu Liu, Carsten Dachsbacher, Aaron Lefohn, and Marco Salvi. . In Proceedings of High Performance Graphics, pages 2:1–2:12, 2017.
[24]
Ricardo Martin-Brualla, Noha Radwan, Mehdi SM Sajjadi, Jonathan T Barron, Alexey Dosovitskiy, and Daniel Duckworth. Nerf in the wild: Neural radiance fields for unconstrained photo collections. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 7210–7219, 2021.
[25]
Michael Niemeyer and Andreas Geiger. Giraffe: Representing scenes as compositional generative neural feature fields. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 11453–11464, 2021.
[26]
Albert Pumarola, Enric Corona, Gerard Pons-Moll, and Francesc Moreno-Noguer. D-nerf: Neural radiance fields for dynamic scenes. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 10318–10327, 2021.
[27]
Kai Zhang, Gernot Riegler, Noah Snavely, and Vladlen Koltun. Nerf++: Analyzing and improving neural radiance fields. arXiv:2010.07492, 2020.
[28]
Zirui Wang, Shangzhe Wu, Weidi Xie, Min Chen, and Victor Adrian Prisacariu. NeRF\(--\): Neural radiance fields without known camera parameters. arXiv:2102.07064, 2021.
[29]
Stephan J Garbin, Marek Kowalski, Matthew Johnson, Jamie Shotton, and Julien Valentin. . arXiv:2103.10380, 2021.
[30]
Thomas Müller, Alex Evans, Christoph Schied, and Alexander Keller. Instant neural graphics primitives with a multiresolution hash encoding. ACM Trans. Graph., 41(4):102:1–102:15, 2022.
[31]
Christian Reiser, Songyou Peng, Yiyi Liao, and Andreas Geiger. . arXiv:2103.13744, 2021.
[32]
Alex Yu, Ruilong Li, Matthew Tancik, Hao Li, Ren Ng, and Angjoo Kanazawa. . In International Conference on Computer Vision (ICCV), pages 5752–5761, 2021.
[33]
Suttisak Wizadwongsa, Pakkapon Phongthawee, Jiraphon Yenphraphai, and Supasorn Suwajanakorn. . In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 8534–8543, 2021.
[34]
Shichen Liu, Tianye Li, Weikai Chen, and Hao Li. . In International Conference on Computer Vision (ICCV), pages 7707–7716, 2019.
[35]
Wenzheng Chen, Jun Gao, Huan Ling, Edward Smith, Jaakko Lehtinen, Alec Jacobson, and Sanja Fidler. Learning to predict 3d objects with an interpolation-based differentiable renderer. In Advances In Neural Information Processing Systems (NeurIPS), 2019.
[36]
Wenzheng Chen, Joey Litalien, Jun Gao, Zian Wang, Clement Fuji Tsang, Sameh Khalis, Or Litany, and Sanja Fidler. . In Advances in Neural Information Processing Systems (NeurIPS), pages 22834–22848, 2021.
[37]
Yiyi Liao, Simon Donné, and Andreas Geiger. . In Conference on Computer Vision and Pattern Recognition (CVPR), pages 2916–2925, 2018.
[38]
Jun Gao, Wenzheng Chen, Tommy Xiang, Clement Fuji Tsang, Alec Jacobson, Morgan McGuire, and Sanja Fidler. . In Advances in Neural Information Processing Systems (NeurIPS), pages 9936–9947, 2020.
[39]
Hendrik P.A. Lensch, Jochen Lang, Asla M. Sa, and Hans-Peter Seidel. Planned sampling of spatially varying BRDFs. Computer Graphics Forum, 22(3):473–482, 2003.
[40]
Andrew Gardner, Chris Tchou, Tim Hawkins, and Paul Debevec. . ACM Trans. Graph., 22(3):749–758, 2003.
[41]
Abhijeet Ghosh, Tongbo Chen, Pieter Peers, Cyrus A. Wilson, and Paul Debevec. . Computer Graphics Forum, 28(4):1161–1170, 2009.
[42]
D. Guarnera, G. C. Guarnera, A. Ghosh, C. Denk, and M. Glencross. . In Proceedings of the 37th Annual Conference of the European Association for Computer Graphics: State of the Art Reports, pages 625–650, 2016.
[43]
Michael Weinmann and Reinhard Klein. . In SIGGRAPH Asia 2015 Courses, 2015.
[44]
Sai Bi, Zexiang Xu, Pratul Srinivasan, Ben Mildenhall, Kalyan Sunkavalli, Miloš Hašan, Yannick Hold-Geoffroy, David Kriegman, and Ravi Ramamoorthi. . arXiv:2008.03824, 2020.
[45]
Mark Boss, Varun Jampani, Kihwan Kim, Hendrik Lensch, and Jan Kautz. Two-shot spatially-varying BRDF and shape estimation. In Proc. of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 3982–3991, 2020.
[46]
Carolin Schmitt, Simon Donne, Gernot Riegler, Vladlen Koltun, and Andreas Geiger. . In Proc. of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020.
[47]
M. Haindl and J. Filip. Visual Texture. Springer-Verlag, 2013.
[48]
Duan Gao, Xiao Li, Yue Dong, Pieter Peers, Kun Xu, and Xin Tong. . ACM Trans. Graph., 38(4):134:1–134:15, 2019.
[49]
Yu Guo, Cameron Smith, Miloš Hašan, Kalyan Sunkavalli, and Shuang Zhao. . ACM Trans. Graph., 39(6):254:1–254:13, 2020.
[50]
Zhengqin Li, Mohammad Shafiei, Ravi Ramamoorthi, Kalyan Sunkavalli, and Manmohan Chandraker. Inverse rendering for complex indoor scenes: Shape, spatially-varying lighting and svbrdf from a single image. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 2475–2484, 2020.
[51]
Zhengqin Li, Zexiang Xu, Ravi Ramamoorthi, Kalyan Sunkavalli, and Manmohan Chandraker. . ACM Trans. Graph., 37(6):269:1–269:11, 2018.
[52]
Merlin Nimier-David, Zhao Dong, Wenzel Jakob, and Anton Kaplanyan. . In Eurographics Symposium on Rendering – DL-only Track, 2021.
[53]
Fujun Luan, Shuang Zhao, Kavita Bala, and Zhao Dong. . arXiv:2103.15208, 2021.
[54]
Yuxuan Zhang, Wenzheng Chen, Huan Ling, Jun Gao, Yinan Zhang, Antonio Torralba, and Sanja Fidler. . In International Conference on Learning Representations, 2021.
[55]
Jon Hasselgren, Jacob Munkberg, Jaakko Lehtinen, Miika Aittala, and Samuli Laine. Appearance-driven automatic 3d model simplification. In Eurographics Symposium on Rendering, 2021.
[56]
Mark Boss, Varun Jampani, Raphael Braun, Ce Liu, Jonathan T. Barron, and Hendrik P.A. Lensch. . In Advances in Neural Information Processing Systems (NeurIPS), pages 10691–10704, 2021.
[57]
Zian Wang, Jonah Philion, Sanja Fidler, and Jan Kautz. Learning indoor inverse rendering with 3d spatially-varying lighting. In Proceedings of International Conference on Computer Vision (ICCV), 2021.
[58]
Matthias Zwicker, Wojciech Jarosz, Jaakko Lehtinen, Bochang Moon, Ravi Ramamoorthi, Fabrice Rousselle, Pradeep Sen, Cyril Soler, and Sung-Eui Yoon. . Computer Graphics Forum, 34(2):667–681, 2015.
[59]
Samuli Laine, Janne Hellsten, Tero Karras, Yeongho Seol, Jaakko Lehtinen, and Timo Aila. Modular primitives for high-performance differentiable rendering. ACM Trans. Graph., 39(6):194:1–194:14, 2020.
[60]
Brent Burley. . In SIGGRAPH Courses: Practical Physically Based Shading in Film and Game Production, 2012.
[61]
Bruce Walter, Stephen R. Marschner, Hongsong Li, and Kenneth E. Torrance. . In Proceedings of the 18th Eurographics Conference on Rendering Techniques, page 195–206, 2007.
[62]
Diederik P. Kingma and Jimmy Ba. . In Proceedings of the 3rd International Conference for Learning Representations, 2015.
[63]
Smithsonian. , 2018. https://3d.si.edu/.
[64]
James T. Kajiya. The rendering equation. In Proceedings of the 13th annual conference on Computer graphics and interactive techniques - SIGGRAPH’86. ACM Press, 1986.
[65]
Brian Karis. Real shading in unreal engine 4. SIGGRAPH 2013 Course: Physically Based Shading in Theory and Practice, 2013.
[66]
Delio Vicini, Sébastien Speierer, and Wenzel Jakob. . ACM Trans. Graph., 41(4):125:1–125:18, 2022.
[67]
Kushagra Tiwary, Tzofi Klinghoffer, and Ramesh Raskar. Towards learning neural representations from shadows. arXiv:2203.15946, 2022.
[68]
Sai Bangaru, Tzu-Mao Li, and Frédo Durand. . ACM Trans. Graph., 39(6):245:1–245:18, 2020.
[69]
Matt Pharr and Greg Humphreys. Physically Based Rendering, Second Edition: From Theory To Implementation. Morgan Kaufmann Publishers Inc., 2nd edition, 2010.
[70]
Eric Heitz. . Journal of Computer Graphics Techniques (JCGT), 7(4):1–13, 2018.
[71]
Delio Vicini, Sébastien Speierer, and Wenzel Jakob. Path replay backpropagation: differentiating light paths using constant memory and linear time. ACM Trans. Graph., 40(4):108:1–108:14, 2021.
[72]
Attila T. Áfra. , 2022. https://www.openimagedenoise.org/.
[73]
Olaf Ronneberger, Philipp Fischer, and Thomas Brox. . In Medical Image Computing and Computer-Assisted Intervention – MICCAI 2015, pages 234–241, 2015.
[74]
Arno Knapitsch, Jaesik Park, Qian-Yi Zhou, and Vladlen Koltun. Tanks and temples: Benchmarking large-scale scene reconstruction. ACM Trans. Graph., 36(4):78:1–78:13, 2017.
[75]
Yao Yao, Zixin Luo, Shiwei Li, Jingyang Zhang, Yufan Ren, Lei Zhou, Tian Fang, and Long Quan. . Computer Vision and Pattern Recognition (CVPR), 2020.
[76]
Jonathan T. Barron, Ben Mildenhall, Matthew Tancik, Peter Hedman, Ricardo Martin-Brualla, and Pratul P. Srinivasan. . In International Conference on Computer Vision (ICCV), pages 5855–5864, 2021.
[77]
Michael Stokes, Matthew Anderson, Srinivasan Chandrasekar, and Ricardo Motta. , 1996.
[78]
Greg Zaal. polyhaven, 2021. https://polyhaven.com/hdris.