- explains gamut mapping techniques
- difference perceptual and clipping techniques
- shows how gamut mappings are derived

- shows how the fog in The Witcher 3 has been implemented
- combines aerial fog and an artist-controlled fog coloring based on a gradient from 3 colors (front to back)
- uses AO information to darken the fog in occluded areas

- list of sessions from SIGGRAPH 2019 that are related to ray tracing techniques

- new extensions in AMD driver
- VK_EXT_full_screen_exclusive, allows application to enter fullscreen mode such as IDXGISwapChain::SetFullscreenState
- VK_EXT_separate_stencil_usage allows separate depth and stencil states
- VK_AMD_display_native_hdr, better HDR support for FreeSync 2 monitors without requiring AMD libraries

- support for GPU timing data in the new timing capture view
- a lot of GPU capture improvements

- new glint integrator for specular surfaces using multiple-scattering patch-based BRDF
- addresses energy loss introduced from classical normal mapping
- uses normal maps and second moments of slopes as in LEADR mapping

- shows a new version of voxel-based path-tracing based graphics engine
- provides an overview of the implementation

- new path tracing sampler techniques
- distributed per-pixel samples so that errors are distributed as blue noise in screen space
- provides C++ source code
- comparison against other methods at various sample counts

- the paper builds on the techniques described in the previous article
- introduces a temporal algorithm that locally permutes the pixel sequences
- improves error distribution for a series of frames

- describes how to support unbounded arrays of textures in Vulkan
- presents two techniques to solve validation errors
- first fills unused slots with a know valid texture descriptor
- second shows the required extensions to enable partially filled descriptor sets

- shows how to implement raytracing against a Signed Distance Field (SDF)
- extends this to use sphere tracing

- a master thesis that describes a progressively path-traced solution for indirect illumination lightmaps on the GPU
- covers parameterizing geometry into lightmaps, improving coherence in a path tracer, reducing variance and spherical basis functions
- presents a new way to store diffuse and specular irradiance using an Ambient Dice encoding scheme (additional post below)

- explains how to extend the Ambient Dice basis function to store and evaluate both diffuse and specular irradiance

- explains how branching on GPUs is commonly implemented
- explains what divergence is, impact on performance and how to reduce it
- GPUs use an execution mask to hide results from inactive threads
- shows how this looks in GCN ISA and AVX512

- describes the surface gradient framework
- a framework for robust processing of height maps, height volumes, and normal maps
- explains the Preliminaries (Tangent Frame, Height Maps, and Volumes, Wrinkled Surfaces)

Thanks to Jon Greenberg for support of this series.
Would you like to see your name here too? Become a Patreon of this series.