• Separable Subsurface Scattering

Separable Subsurface Scattering – Abstract

In this paper we propose two real-time models for simulating subsurface scattering for a large variety of translucent materials, which need under 0.5 milliseconds per frame to execute. This makes them a practical option for real-time production scenarios. Current state-of-the-art, real-time approaches simulate subsurface light transport by approximating the radially symmetric non-separable diffusion kernel with a sum of separable Gaussians, which requires multiple (up to twelve) 1D convolutions. In this work we relax the requirement of radial symmetry to approximate a 2D diffuse reflectance profile by a single separable kernel. We first show that low-rank approximations based on matrix factorization outperform previous approaches, but they still need several passes to get good results. To solve this, we present two different separable models: the first one yields a high-quality diffusion simulation, while the second one offers an attractive trade-off between physical accuracy and artistic control. Both allow rendering subsurface scattering using only two 1D convolutions, reducing both execution time and memory consumption, while delivering results comparable to techniques with higher cost. Using our importance-sampling and jittering strategies, only seven samples per pixel are required. Our methods can be implemented as simple post-processing steps without intrusive changes to existing rendering pipelines.

Resources

Paper

Supplementary materials #1

Supplementary materials #2

Demo Binary

C++ code

Matlab code

Convolution kernels

Separable Subsurface Scattering in 4k

To demonstrate the simplicity of our approach, Christian Freude and Károly Zsolnai implemented Separable Subsurface Scattering in a less than 4 kilobyte executable (what does this mean?). Please note that this is a bare bones proof of concept, therefore the jittered sampling technique described in the paper has been omitted from this implementation. This means  that that more samples are required for visually pleasing results – we would like to point out that this is not representative of the original technique, and the reader is kindly referred to the paper for actual results with jittered sampling. You can run it yourself!

Also thanks for László Csöndes for saving an additional 100 bytes! 😉

4k binaries

Image of the binary

Screenshot

Acknowledgements

The authors want to thank the reviewers for their insightful comments; Infinity Realities, in particular Lee Perry-Smith, for his head model and for the Lauren model; the Institute of Creative Technologies at USC, in particular Paul Debevec, for the Ari and Bernardo models; and Bernardo Antoniazzi for letting us use his likeness. Furthermore, we want to thank the Stanford University Computer Graphics Laboratory for the Dragon model, and the following contributors from Blend Swap under CC-BY licence: longrender for the Dish model, metalix for the Green apple model, betomo16 for the Plant model, and PickleJones for the Grapes model. We also thank Felícia Fehér for editing the figures. This research has been partially funded by the European Commission, 7th Framework Programme, through projects GOLEM and VERVE, the Spanish Ministry of Economy and Competitiveness through project LIGHTSLICE, and project TAMA, and the Austrian Science Fund (FWF) through project no. P23700-N23.

Media coverage

The project was headlined in many different online magazines from around the world (including my former and current university and Kotaku). The following interviews about this work are also available:

– DSOGaming in English,
index.hu in Hungarian (it was featured in the headline news),
 SG.hu in Hungarian,
bme.hu in Hungarian,
PC Games Hardware in German,
der Standard in German.

The technique has won 1st place at the CGF Cover Contest (2016). It has also been implemented in Blender!

Publisher’s version

The publisher’s version is available here: Separable Subsurface Scattering.

BibTeX

@article {Jimenez2015,
author = {Jorge Jimenez, Károly Zsolnai, Adrian Jarabo, Christian Freude, Thomas Auzinger, Xian-Chun Wu, Javier von der Pahlen, Michael Wimmer and Diego Gutierrez},
title = {Separable Subsurface Scattering},
journal = {Computer Graphics Forum},
volume = {34},
number = {6},
issn = {1467-8659},
url = {http://dx.doi.org/10.1111/cgf.12529},
doi = {10.1111/cgf.12529},
pages = {188–197},
keywords = {real-time rendering, rendering, [Computing Methodologies]: Rendering},
year = {2015},
}