Separable Subsurface Scattering

I’ve recently implemented Screen-Space Separable Subsurface Scattering into my rendering engine.  This implementation is based off the incredible work that’s been done over the past several years, and documented here and here.  I’m quite pleased with the results I’m getting from the effect and so am posting a few screenshots of it in action.

The first screenshot shows the effect in daylight.  Hopefully it’s quite obvious which head in the picture has the new technique applied and which is being lit with the engine’s standard lighting model.

SSSonSSSoff

The second screenshot shows another part of the overall effect, which is the transmittance of light through very thin slabs of materials, such as ears.

TransmittanceAndSSS1

The next screenshot better shows both subsurface scattering and transmittance working together.  In particular, notice how the light behaves along the ridge of the nose.

TransmittanceAndSSS2

Finally, I cobbled together a quick setup showing how this technique could be used to create a nice effect for candles.  In truth, I cheated a little in that I have not yet incorporated a wax kernel for the subsurface scattering technique, so instead I aimed a bright spotlight straight down at a cylinder using the same skin kernel as used in the above screenshots.  Even with such a simple (and quite lazy) setup, the result is still decent looking, and it bodes well for creating a proper candle in an actual scene using a correct SSS kernel.

SSSCandle

Update:  I didn’t like that I had left the post at “think about how nice a candle could look”, so I went ahead and brought in a more wax-like kernel.  The setup is basically the same in that it’s just a cylinder with a light shining down on it, but now it definitely exhibits light interactions much more like an actual candle.

SSSWaxCandle

References

http://www.iryoku.com/separable-sss-released

http://cg.tuwien.ac.at/~zsolnai/gfx/separable-subsurface-scattering-with-activision-blizzard/