Real-time subsurface scattering with single pass variance-guided adaptive importance sampling

I3D, 2020

Real-time subsurface scattering with single pass variance-guided adaptive importance sampling


Proc. ACM Comput. Graph. Interact. Tech. 3, 1 (I3D, 2020)
University of Maryland, Baltimore County
University of Maryland, Baltimore County
Epic Games, Inc
Epic Games, Inc
Figure 1: Subsurface rendering comparison from close to far at 1920x1080 on NVIDIA Quadro P4000 (implemented in UE4). (a) our adaptive sampling algorithm ($σ\\_0^2$ = 0.001, κ = 0.2, $b\\_{min}$ = 8 spp, $b\\_{max}$ = 64 spp), (b) Golubev [2018]’s sampling model in our framework with 64spp, (c) a Baseline fixed 64-sample implementation without our proposed acceleration techniques, (d) Separable screen-space diffusion. (e) Visualization of our adaptive sample count for each view. Our quality is higher than Baseline in all three scenarios (close skin patch, ear, and front). Moreover, our algorithm runs faster on the close skin patch with an acceleration of up to 91.07× (2.78 ms vs 253.18 ms). In addition, our algorithm enables better quality with run time comparable or even better than Separable. Error measurements are PSNR for the subsurface, as compared to a reference image at 2k samples per pixel. Digital Mike ©Epic Games, Inc.

Abstract: In real-time applications, it is difficult to simulate realistic subsurface scattering with differing degrees translucency. Burley’s reflectance approximation by empirically fitting the diffusion profile as a whole makes it possible to achieve realistic looking subsurface scattering for different translucent materials in screen space. However, achieving a physically correct result requires real-time Monte Carlo sampling of the analytic importance function per pixel per frame, which seems prohibitive to achieve. In this paper, we propose an approximation of the importance function that can be evaluated in real-time. Since subsurface scattering is more pronounced in certain regions (e.g., with light gradient change), we propose an adaptive sampling method based on temporal variance to lower the required number of samples. We propose a one phase adaptive sampling pass that is unbiased, and able to adapt to scene changes due to motion and lighting. To further improve the quality, we explore temporal reuse with a guiding pass prior to the final temporal anti-aliasing (TAA) phase that further improves the quality. Our local guiding pass does not constrain the TAA implementation, and only requires one additional texture to be passed between frames. Our proposed variance-guided algorithm has the potential to make stochastic sampling algorithm effective for real-time rendering.


Major contributions

  • Real-time adaptive sampling algorithm ($ O(1) $ time and space complexity)
  • Real-time subsurface scattering sampling function approximation

News

  • 2020.09.16: I3D 2020 Day 3 Streaming Live (9:00am - 10:50am, PST)
  • 2020.05.11: Morgan Zepp, UMBC gaming researchers develop a new way to render characters with realistic skin. (EurekAlert!)

I3D Presentation

Video

BibTex

@article{xie2020real,
  title={Real-time subsurface scattering with single pass variance-guided adaptive importance sampling},
  author={Xie, Tiantian and Olano, Marc and Karis, Brian and Narkowicz, Krzysztof},
  journal={Proceedings of the ACM on Computer Graphics and Interactive Techniques},
  volume={3},
  number={1},
  pages={1--21},
  year={2020},
  publisher={ACM New York, NY, USA}
}

Adaptive sampling algorithm overview

algorithm overview

Update $\mathcal{H_i}$
$$\mu\\_i = (1-\alpha)\mathcal{C}(x\\_i,\Lambda)+ \alpha \mathcal{S}(p\\_i); \, \alpha=\mathcal{M}(\alpha\\_0,\Lambda); p\\_i = \mathcal{N}(x\\_i,f(i))$$ $$\bar n\\_{(i)} = (1-\alpha)\bar n\\_{(i-1)}+\alpha n\\_{(i)}$$ $$\sigma\\_i^2 = (1-\alpha)\sigma^2\\_{i-1} + \alpha(1-\alpha)(\mathcal{S}(p\\_i) - \mathcal{C}(x\\_i,\Lambda))^2$$
Sample estimation
$$\hat n\\_{(i)} = \kappa\cdot \Delta(i) + E ( \bar n\\_{(i)}), \kappa \in [0,1] $$ $$\Delta(i) = \frac{(\sigma^2\\_{M\\_{(i-1)}}-\sigma\\_0^2)}{\sigma\\_{0}^2}\cdot \bar n\\_{(i-1)} \cdot (k-1)$$ $$E ( \bar n\\_{(i)})=\sigma\\_{M\\_{(i-1)}}^2/\sigma\\_0^2\cdot \bar n\\_{(i-1)}$$

Disclaimer

© The Author(s) / ACM. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in Proceedings of the ACM on Computer Graphics and Interactive Techniques, https://doi.org/10.1145/3384536