Advanced Skin Shading with FaceWorks
NVIDIA FaceWorks is a middleware library I've been building for the last year or so, the goal of which is to enable game developers to add high-end skin and eye rendering to their game engines. It's still a work in progress, but FaceWorks currently includes an efficient, one-pass subsurface scattering implementation based on Eric Penner's 2010 SIGGRAPH paper "Pre-Integrated Skin Shading". It also contains an implementation of deep scatter (translucency) based on estimating the thickness of a model from a shadow map.
This talk gives a high-level overview of how FaceWorks' rendering features operate, how it can be integrated into a game engine, and the roadmap for future development.
Ambient Occlusion Fields and Decals in Infamous 2
Two main ambient occlusion (AO) technologies are commonly used in game engines: baked AO (either per-vertex or with lightmaps) and screen-space AO (SSAO). Baked AO is well-suited for large-scale occlusion and SSAO for fine-scale occlusion; however, neither baked AO nor SSAO is well-suited for the medium scale.
In Sucker Punch's 2011 game Infamous 2, we added a couple of new ambient occlusion (AO) technologies to our engine to fill this gap. Called AO Fields and AO Decals, they work by precomputing the occlusion an object casts onto the space around it and storing that data in a texture, which is then applied in real-time much like a light in deferred shading.
AO Fields and AO Decals offer greater detail than per-vertex baked AO at a modest performance and memory cost, and they avoid some of the drawbacks of SSAO while still being partly dynamic.