Self Shadow



Physically Based Shading in Theory and Practice (SIGGRAPH 2020)

Physically Based Shading in Theory and Practice (SIGGRAPH 2017)

Physically Based Shading in Theory and Practice (SIGGRAPH 2016)

Physically Based Shading in Theory and Practice (SIGGRAPH 2015)

Physically Based Shading in Theory and Practice (SIGGRAPH 2014)

Physically Based Shading in Theory and Practice (SIGGRAPH 2013)

Practical Physically Based Shading in Film and Game Production (SIGGRAPH 2012)

This SIGGRAPH Course is the spiritual successor to Physically-Based Shading Models in Film and Game Production. It’s a tough act to follow, but Steve McAuley and I decided to organise the followup based on strong interest from the game development community, in addition to our own.

We owe a debt of graditude both to Naty Hoffman for putting us in contact with the other speakers, and naturally to the speakers themselves. Not only did they enthusiastically dedicate their time to presenting, but they also produced thoroughly excellent course material that will surely influence and inspire practitioners, just as the 2010 course did.


Combining Analytic Direct Illumination and Stochastic Shadows (I3D 2018)

Real-Time Polygonal-Light Shading with Linearly Transformed Cosines (SIGGRAPH 2016)

Filtering Distributions of Normals for Shading Antialiasing (HPG, 2016. Best paper award)


Real-Time Ray Tracing of Correct* Soft Shadows (Advances in Real-Time Rendering course, SIGGRAPH 2018)

Powering Up ILMxLAB’s Location-Based VR Experiences (GDC 2018)

Real-Time Line- and Disk-Light Shading with Linearly Transformed Cosines (Physically Based Shading course, SIGGRAPH 2017)

Real-Time Area Lighting: a Journey from Research to Production (Advances in Real-Time Rendering course, SIGGRAPH 2016)

Game Rendering: Past, Present… and Future? (Invited Talk, EGSR 2015)

Rock-Solid Shading: Image Stability Without Sacrificing Detail (Advances in Real-Time Rendering course, SIGGRAPH 2012)

Even the best looking games still lack the visual cleanness of animated movies from the mid ’90s, despite exceeding them in level of detail. One reason is the lack of solid anti-aliasing in our shaders. To help redress the balance, Dan Baker and I cover techniques for dealing with different facets of the problem, drawing from recent research and production experience.

Latest slides: ppt pdf

Rendering With Conviction (Gamefest, GDC and GDC Canada, 2010)

For this talk, I decided to focus on two key rendering systems developed for Splinter Cell: Conviction that I thought would be interesting to discuss because they were both fairly different from established solutions. The first of these was our GPU-based hierarchical visibility system, which not only gave us great culling at very low cost, but also simplified the renderer design and the lives of our artists. The second was our semi-dynamic Ambient Occlusion solution, that we actually had up and running well in advance of the publication of Crytek’s SSAO approach (SIGGRAPH 2007), but couldn’t talk about until several years later.


Linear-Light Shading with Linearly Transformed Cosines (GPU Zen, 2017)

Blending in Detail, July 2012

This article, written with Colin Barré-Brisebois, compares various existing methods of combining normal maps, along with a new technique dubbed Reoriented Normal Mapping that Colin developed and I helped to optimise.

Overdraw in Overdrive (Xbox Developer Journal, 2011)

The genesis of this article was an appeal on Twitter from Steve Anichini, asking if it was possible to display, in-engine, the overshading of pixel quads, as shown in the recent Reducing Shading on GPUs using Quad-Fragment Merging paper. It turns out that there is a way to achieve this efficiently on Xbox 360, leading to a real-time debug view that’s even more accurate than PIX.

Practical, Dynamic Visibility for Games (GPU Pro 2, 2011)

I had some great correspondence with various developers following my Gamefest/GDC talk, and it became clear that I really ought to publish a full account of our visibility system, both to clarify a couple of points and to offer a little more implementation advice. I’d also been informed that the game Warhawk had taken a somewhat similar approach on PS3 a few years back, albeit via the SPUs and without using a z-pyramid. Unfortunately, details on this are sketchy at best if you’re not a PS3 developer, but I was aware of DICE doing the same kind of thing for Battlefield: Bad Company, and they were happy to share more details. One thing lead to another and I ended up co-authoring a chapter for GPU Pro 2 with Daniel Collin about our respective solutions.

Hardware Accelerating Art Production (Gamasutra, 2004)

This was an article that I wrote quite some time ago that helped me gain a proper foothold within the videogame industry. Although certain aspects relating to Shader Model 1.1 hardware are antiquated now, the central idea of using the GPU to speed up Ambient Occlusion baking (or higher order PRT) is still very relevant today. We used an evolution of this technique to generate static AO textures during the production of Splinter Cell: Conviction, resulting in rapid iteration times for artists, without compromising fidelity.