Programmer nails real-time rendering of ultra-realistic human skin
February 9, 2012
Graphics researcher Jorge Jimenez has cracked the problem of rendering what he calls "ultra realistic skin" in real-time with consumer-level computer and graphics hardware. It's a breakthrough made possible by the process of separable subsurface scattering (SSS) which quickly renders the translucent properties of skin and its effect on light in two post-processing passes. The code is based wholly on original research using DirectX 10. Jimenez describes the achievement as the result of hours of "research, desperation, excitement, happiness, pride, sadness and extreme dedication."
Though Jimenez has released a high definition video of the effect, he's gone two better by releasing downloadable executable demo files that will run on a home PC provided it has a powerful enough GPU, as well as making the source code available on GitHub.
Though the code runs on consumer-level hardware, it'll take more than an everyday PC to run well. On his GeForce GTX 580-equipped machine Jimenez was able to run the demo at a mean of 112.5 frames per second, varying between 80 and 160 FPS. It's worth bearing in mind that that's a graphics card that costs about US$470 from Amazon.
And it may be too early to salivate at the prospect of a Call of Duty, Mass Effect or Elder Scrolls sequel with such realistic characters. The demo consists of a single, stationary head and shoulders - literally a world apart from the dynamic, character-filled environments of modern video games. If the principles are applied to games in the near future, it may be that the results are significantly watered down simply because the graphics processors have a lot more on their plate (unless Attack of the Gigantic Mutant Killer Head from Venus is released any time soon).
And SSS alone is not sufficient for rendering realistic character models. "Efforts towards rendering ultra realistic skin are futile if they are not coupled with HDR, high quality bloom, depth of field, film grain, tone mapping, ultra high quality models, parametrization maps, high quality shadow maps (which are lacking on my demo) and a high quality antialiasing solution," writes Jimenez on his blog. "If you fail on any of them, the illusion of looking at a real human will be broken." The task of rendering realistic skin is especially challenging close up at 1080p, he adds.
It's an impressive achievement, and one you can observe in all its HD glory in the video below. Of course, if you've got the hardware, you can run the demo for yourself.