Adventures in Deferred Rendering: Volumetric Lighting

I like god rays. They're easy to implement and yet they add so much detail to a scene. Volumetric lighting is typically driven by a single-phase function that determines how much of the total scattered light is scattered toward the camera. The angle between the incoming light direction and the vector from our camera to … Continue reading Adventures in Deferred Rendering: Volumetric Lighting

Skin Rendering with Texture-Space Diffusion for Subsurface Scattering

I was reading about pre-integrated skin shading and screen-space subsurface scattering in the associated GPU Pro 360 books, which got me really interested in learning about ways to represent subsurface scattering—a type of diffuse lighting—in a rendering pipeline. I came across another article on realistic real-time skin rendering on mobile, and it occurred to me … Continue reading Skin Rendering with Texture-Space Diffusion for Subsurface Scattering

Hair Rendering Part 1: The Shading Model

Given my proclivity to pore over material from recent GDCs and GPU Pro articles, I've been meaning to write up a more accessible concept as a way to segue from the early to mid 2000s techniques to the state-of-the-art ideas that find their way into modern AAA titles. I think it's also important to demonstrate … Continue reading Hair Rendering Part 1: The Shading Model

Reflective Shadow Maps

This post is going to a brief one on a nice little extension to shadow mapping for the rendering of plausible indirect illumination. It's not quite as state-of-the-art or even as performant as voxel cone tracing, which I wrote about in a previous entry, but the theoretical foundations lend some insight into ways that we … Continue reading Reflective Shadow Maps

Spherical Harmonics

The rendering equation consists of two major components—the diffuse and specular lighting integrals—that can each be approximated in a number of ways. At the end of the day, physically based rendering is all about representing the precise interactions of light in the most accurate manner possible with the goal of presenting scenes in a way … Continue reading Spherical Harmonics

Adventures in Deferred Rendering: Tiled Deferred Shading and Compute Shaders

Tiled deferred shading is one of my favorite techniques because it introduces many concepts that are easy to take for granted when we rely on rasterization and the flow of the graphics pipeline. In basic deferred shading, we evaluate each light separately and add the results to the output buffer, which if you remember from … Continue reading Adventures in Deferred Rendering: Tiled Deferred Shading and Compute Shaders

Percentage-Closer Soft Shadows

I've implemented quite a few shadow mapping concepts, and so far, percentage-closer soft shadows (PCSS) is my favorite one. It was a great exercise in Poisson disk sampling, and the contact hardening that is characteristic of its output makes for compelling spatial relationship information. For comparison's sake, here's what I did for cascaded shadow mapping … Continue reading Percentage-Closer Soft Shadows

Adventures in Deferred Rendering: Screen Space Reflections

I intend for this post to be the first in a series of blog posts on techniques that are greatly facilitated by deferred rendering capabilities. The second post in the series will deal with tiled deferred shading, which is one of several possible solutions to the problem of light culling. The third will be about … Continue reading Adventures in Deferred Rendering: Screen Space Reflections

Global Illumination Using Voxel Cone Tracing

Facilitating a reasonable and ideally physical description of light in the presence of real-time constraints has sort of been the driver of recent work in the field of interactive computer graphics. Lord knows that there are various deferred shading techniques dedicated to increasing the photorealism of a scene by leveraging computations from preceding frames. For … Continue reading Global Illumination Using Voxel Cone Tracing