A bit of fuss was created over screenshots from Epic’s Unreal3 engine at GDC2011. Just two days ago, we released screenshots regarding the demo of their updated engine and its capabilities, but what is it really all about?
Today we’re going to look at one of the featured capabilities: subsurface scattering.
Subsurface scatting is a big deal. How big of a deal? In 2004, Professor Henrik Wann Jensen from the University of San Diego, was given an Academy Award for his work in developing proper simulations of subsurface scattering in computer graphics. For reference, this is the man in question:
The technology went on to become instrumental in the animation of Gollum in Lord of the Rings, as well and pretty much every other major CG Movie in existence now. But just what is subsurface scattering?
Essentially, subsurface scattering is how light behaves when it hits a semi-translucent object. The best way to illustrate this is to take a laser or a very bright light and cover it with your thumb. You’ll see your thumb glow as the light source, which initially originated from a single point, now diffuses through your thumb in all directions.
Prior to the development of subsurface scattering, light behaved the same across all materials and would bounce off as if the material was always metal, even though the material could be skin, or wood, or any other multitude of materials. This harsh reflection makes very distinct reflections and casts very hard shadows.
Notice how the left image appears more lifelike and less plastic. The deformations of the tomato near the stem are less pronounced and harsh compared to the one on the right. Also, note the softer shadows as the left image has more gradient type shadows where as the right image has a very distinct light/dark border.
So, we know it looks good, but outside of that, what’s the big deal if it’s been around for years? Well, this may be the first (if not the biggest) game graphics engine that will implement subsurface scattering. In the past, real time rendering with SSS was not possible and in most cases required multiple rendering passes in order to create the effect, passes which took far too much time to draw the necessary 24+ frames per second. With the advent of more powerful engines, and more powerful graphics processors, we can expect to see this effect in games very soon.