Pre-Integrated Deferred Subsurface Scattering is a screen-space shader method to get fast and scalable subsurface scattering. It is based off Pre-Integrated Skin Shading (Penner and Borshukov, SIGGRAPH 2011, and adapts it to a deferred rendering pipeline. By reusing the curvature calculations from skin shading, it’s possible to get dynamic screen-space ambient occlusion (SSAO) for pretty much free!
This was my UNSW Computer Science honours thesis project, and will be presented as a poster at SIGGRAPH 2014.
An overview of our PDSS approach is as follows:
- Render the scene to G-Buffers, same as in ordinary deferred lighting.
- Calculate curvature by taking central differences in world space.
- After this, diffuse curvature and normals with a cross-bilateral filter.
- Then we calculate all the lighting similarly to PSS, reusing curvature for ambient occlusion.
For the details, please have a look at the poster in the download section below. Otherwise, feel free to grab the shader code for a TLDR version.
Source code files:
Full demo project code will be up for download soon!