Pages

Saturday, December 26, 2009

Fast Skin Shading (ShaderX 7)

I bought ShaderX 7 a couple of months back, but only recently then i found the time to read through it and one of the articles that got my attention was chapter 2.4 Fast Skin Shading by John Hable, George Borshukov, and Jim Hejl. In the chapter, they proposed a lightweight skin shading technique based off the one that was used in the NVIDIA human head demo. One of the major differences was replacing the expensive 5 pass gaussian blurs (14 taps per pass) with a single blur pass (with 12 uniquely positioned and weighted taps). This change significantly improves the performance and in my opinion makes this technique actually usable in current games. Albeit the quality is still not as great as the original.

In my implementation, i have replaced the usual phong specular with a more physically accurate kelemen/szirmay-kalos specular model as described here. Shadows are rendered into the light map and blurred together, softening the jagged edges. SSAO is then added in the final pass to give more depth to the final render.

There is still some improvements that could be done, like implementing the stretch correction map to prevent over blurring around the ears and having a better dilation implementation. All in all, I am pretty satisfied with the result achieved in terms of both quality and performance.

Time for some screenshots!


Hmm...mean looking


Bald and shiny!


Nice detail around and in the nostrils...

No comments: