Hope you all don’t mind a plug for a cool skin paper written by Morten Mikkelsen. Morten is a programmer for the ICE team at Naughty Dog, and he has put together a technique getting faster skin shading using a full-screen buffer.
In Morton’s words:
Essentially, it’s a screen-space approach to simulate subtle effects of local subsurface scattering. Convolution is done in a separable way which makes it fast
and the cost of simulation is not affected by the amount of lights, light model or the amount of characters on screen.
The core idea to this work (which is derived in the paper) is that convolution by a Gaussian, across a surface, can be expressed as the cross bilateral filter (cbf)
in screen-space. The distinction between regular just blurring in screen-space and using the cbf is shown in figure 3. Using the idea to make results appear more skin like are shown in figures 4 and 5.
So if you are into skin shading you should check it out. For current-gen consoles, we can barely afford the most basic of lighting models (blinn-phong with fresnel), so it’s probably a little optimistic to hope for full-screen subsurface scattering in the near term. In the future though, anything is possible. In particular, what I like about the full-screen techniques is how they handle lightmap resolution.
In U2, for cutscenes, we render the lightmap into UV space, and then use the blurred version of that buffer for subsurface scattering. But when we have a closeup of Chloe’s hand, her fingers occupy such a small area in UV space that our approach doesn’t really work. With a fullscreen approach however, you always have enough resolution exactly where you need it.
As we start thinking about the next generation of consoles, it’s possible that we could afford some kind of subsurface scattering on all characters in realtime. Getting faster full-screen approaches seems like a promising avenue.
Anyways, check the paper out!