SIGGRAPH 2015 • Posted 2015-08-17

GameWorks VR is a suite of technologies I've been helping to build at NVIDIA for the better part of the last year. It's an SDK for VR game, engine, and headset developers, aimed at cutting down graphics latency and accelerating stereo rendering on NVIDIA GPUs. In this talk, I explain the features of this SDK, including VR SLI, multi-resolution rendering, context priorities and direct mode.

Slides: pptx, 10.6 MB or pdf, 7.9 MB (both include speaker notes)

GameWorks VR was previously known as VRDirect. Old VRDirect slides from GDC 2015 (superseded by the above): pptx, 5.8 MB or pdf, 16.2 MB

Advanced Skin Shading with NVIDIA FaceWorks

GTC 2014 • Posted 2014-03-24

FaceWorks is a middleware library I've been building at NVIDIA for the last year or so. Its goal 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.

Slides: pptx, 12.8 MB or pdf, 1.9 MB (both include speaker notes; the pptx has higher-quality images)

Ambient Occlusion Fields and Decals in Infamous 2

GDC 2012 • Posted 2012-03-09

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.