Subsurface Scattering and the Quest For Real-Time Photorealism.

Although sounding like yet another obscure animation term, subsurface scattering is truly bringing us to the cutting edge of real-time computer graphics, and is a penchant of the latest CryEngine 3 game engine, which powers the recent Crysis 2. The technology is able to realistically render materials that have befuddled game engines since the dawn of time, such as skin, marble, leather, milk, and wax.  Subsurface scattering has to do with how light truly reflects off of surfaces, and, like the name implies, it actually reflects off of subsurfaces within a material.  Well what does that mean?

Interestingly enough, many materials we come across are actually slightly translucent.  Skin is a great example – if you have ever pressed your fingers against a flashlight, you’ll notice how they look red and glowing, and you feel as though you could almost see through them.  Thats an extreme example of how light enters a translucent surface, is absorbed, scattered, and re-emitted back out again.  Most of the time, the effect is much more subtle, and only when trying to recreate it through a graphics engine do we notice how integral subsurface scattering is to our everyday perceptions.  These are the kinds of subtleties that separate graphics that look like graphics, and those that look indistinguishable from real life.

Even under normal daylight, skin is scattering light under the surface, giving it such a unique quality unlike any other opaque materials.  The light will generally penetrate the surface and be reflected a number of times at irregular angles inside the material, before passing back out of the material at an angle other than the angle it would have if it had been reflected directly off the surface.  This is also what lends many sea shells their perplexing shine.

On the other side of the spectrum, metal is completely opaque. With metal, everything that meets the eye is actually there.  This is why graphics engines have accurately represented metals long before than other materials.  For instance, Gran Turismo 3 seemed to master the sheen and shine of souped-up race cars way back at the beginning of the Playstation 2 era.

Reflection, of course, has been a trial in itself to recreate, and only since a few years ago has real-time reflection of surfaces (water, metal, tile, etc) become the standard in most game engines.  Subsurface scattering is the next step in true reflection.  Whereas before we could only reflect light from the surface layer, and modify the intensity – now its possible to reflect from multiple layers using depth maps.  Because light doesn’t just reflect off of shiny things – it reflects off of everything.

Offline rendering, as it is used in film, is already indistinguishable from reality.  Real-time rendering has always been forced behind the curve, as games don’t have hours and hours of compile time for every split-second frame.  But the quality is catching up.

Leave a Reply

Your email address will not be published. Required fields are marked *